Updated for ascii

This commit is contained in:
Dimitris Zlatanidis 2023-01-04 12:15:10 +02:00
parent cd4c902c59
commit b440eff5f4
4 changed files with 63 additions and 36 deletions

View file

@ -4,6 +4,7 @@
from progress.spinner import PixelSpinner from progress.spinner import PixelSpinner
from slpkg.configs import Configs from slpkg.configs import Configs
from slpkg.views.ascii import Ascii
from slpkg.queries import SBoQueries from slpkg.queries import SBoQueries
@ -14,6 +15,11 @@ class Dependees:
self.packages = packages self.packages = packages
self.flags = flags self.flags = flags
self.configs = Configs self.configs = Configs
self.ascii = Ascii()
self.llc = self.ascii.lower_left_corner
self.hl = self.ascii.horizontal_line
self.var = self.ascii.vertical_and_right
self.colors = self.configs.colour
self.colors = self.configs.colour self.colors = self.configs.colour
self.color = self.colors() self.color = self.colors()
self.bold = self.color['bold'] self.bold = self.color['bold']
@ -43,13 +49,13 @@ class Dependees:
found.append(sbo) found.append(sbo)
dependees[package] = found dependees[package] = found
last = ' └─' last = f' {self.llc}{self.hl}'
print('\n') print('\n')
if dependees: if dependees:
for key, value in dependees.items(): for key, value in dependees.items():
print(f'{self.yellow}{key}{self.endc}') print(f'{self.yellow}{key}{self.endc}')
print(end=f'\r{last}') print(end=f'\r{last}')
char = ' ├─' char = f' {self.var}{self.hl}'
for i, v in enumerate(value, start=1): for i, v in enumerate(value, start=1):
if i == len(value): if i == len(value):

View file

@ -2,6 +2,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from slpkg.configs import Configs from slpkg.configs import Configs
from slpkg.views.ascii import Ascii
from slpkg.dependencies import Requires from slpkg.dependencies import Requires
@ -10,19 +11,21 @@ class Tracking:
def __init__(self): def __init__(self):
self.configs = Configs self.configs = Configs
self.ascii = Ascii()
self.llc = self.ascii.lower_left_corner
self.hl = self.ascii.horizontal_line
self.colors = self.configs.colour self.colors = self.configs.colour
self.color = self.colors()
self.cyan = self.color['cyan']
self.grey = self.color['grey']
self.yellow = self.color['yellow']
self.endc = self.color['endc']
def packages(self, packages: list): def packages(self, packages: list):
""" Prints the packages dependencies. """ """ Prints the packages dependencies. """
color = self.colors()
cyan = color['cyan']
grey = color['grey']
yellow = color['yellow']
endc = color['endc']
print(f"The list below shows the packages with dependencies:\n") print(f"The list below shows the packages with dependencies:\n")
char = ' └─' char = f' {self.llc}{self.hl}'
for i, package in enumerate(packages): for i, package in enumerate(packages):
requires = Requires(package).resolve() requires = Requires(package).resolve()
how_many = len(requires) how_many = len(requires)
@ -30,6 +33,6 @@ class Tracking:
if not requires: if not requires:
requires = ['No dependencies'] requires = ['No dependencies']
print(f'{yellow}{package}{endc}') print(f'{self.yellow}{package}{self.endc}')
print(f'{char} {cyan}{" ".join([req for req in requires])}{endc}') print(f'{char} {self.cyan}{" ".join([req for req in requires])}{self.endc}')
print(f'\n{grey}{how_many} dependencies for {package}{endc}\n') print(f'\n{self.grey}{how_many} dependencies for {package}{self.endc}\n')

19
slpkg/views/ascii.py Normal file
View file

@ -0,0 +1,19 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
from dataclasses import dataclass
@dataclass
class Ascii:
vertical_line = ''
horizontal_line = ''
horizontal_vertical = ''
upper_right_corner = ''
lower_left_corner = ''
lower_right_corner = ''
upper_left_corner = ''
horizontal_and_up = ''
horizontal_and_down = ''
vertical_and_right = ''
vertical_and_left = ''

View file

@ -6,6 +6,7 @@ import shutil
from typing import Any from typing import Any
from slpkg.configs import Configs from slpkg.configs import Configs
from slpkg.views.ascii import Ascii
from slpkg.queries import SBoQueries from slpkg.queries import SBoQueries
from slpkg.utilities import Utilities from slpkg.utilities import Utilities
from slpkg.blacklist import Blacklist from slpkg.blacklist import Blacklist
@ -14,19 +15,6 @@ from slpkg.models.models import LogsDependencies
from slpkg.models.models import session as Session from slpkg.models.models import session as Session
# '│' vertical_line
# '─' horizontal_line
# '┼' horizontal_vertical
# '┐' upper_right_corner
# '└' lower_left_corner
# ' ┘' lower_right_corner
# '┌' upper_left_corner
# '┴' horizontal_and_up
# '┬' horizontal_and_down
# '├' vertical_and_right
# '┤' vertical_and_left
class ViewMessage: class ViewMessage:
""" Print some messages before. """ """ Print some messages before. """
@ -50,34 +38,45 @@ class ViewMessage:
self.endc = self.color['endc'] self.endc = self.color['endc']
self.installed_packages = [] self.installed_packages = []
self.columns, self.rows = shutil.get_terminal_size() self.columns, self.rows = shutil.get_terminal_size()
self.ascii = Ascii()
self.ulc = self.ascii.upper_left_corner
self.hl = self.ascii.horizontal_line
self.urc = self.ascii.upper_right_corner
self.vl = self.ascii.vertical_line
self.var = self.ascii.vertical_and_right
self.val = self.ascii.vertical_and_left
self.llc = self.ascii.lower_left_corner
self.lrc = self.ascii.lower_right_corner
def draw_title_box(self, message, title): def draw_title_box(self, message, title):
""" Drawing title message. """ """ Drawing title message. """
middle_title = int((self.columns / 2) - len(title) + 2) middle_title = int((self.columns / 2) - len(title) + 2)
print(f'{self.bgreen}' + '' * (self.columns - 2) + '') print(f'{self.bgreen}{self.ulc}' + f'{self.hl}' * (self.columns - 2) + f'{self.urc}')
print('' + ' ' * middle_title + f'{title}' + ' ' * (self.columns - middle_title - len(title) - 2) + f'') print(f'{self.vl}' + ' ' * middle_title + f'{title}' + ' ' * (self.columns - middle_title - len(title) - 2) +
f'{self.vl}')
self.draw_middle_line() self.draw_middle_line()
print(f'{self.endc} {message}' + ' ' * (self.columns - len(message) - 3) + f'{self.bgreen}') print(f'{self.vl}{self.endc} {message}' + ' ' * (self.columns - len(message) - 3) + f'{self.bgreen}{self.vl}')
self.draw_middle_line() self.draw_middle_line()
print(f'{self.bgreen}{self.endc} Package:' + ' ' * 27 + 'Version:' + ' ' * (self.columns - 51) + print(f'{self.bgreen}{self.vl}{self.endc} Package:' + ' ' * 27 + 'Version:' + ' ' * (self.columns - 51) +
f'Size{self.bgreen} {self.endc}') f'Size{self.bgreen} {self.vl}{self.endc}')
def draw_middle_line(self): def draw_middle_line(self):
""" Drawing a middle line. """ """ Drawing a middle line. """
print(f'{self.bgreen}' + '' * (self.columns - 2) + f'') print(f'{self.bgreen}{self.var}' + f'{self.hl}' * (self.columns - 2) + f'{self.val}')
def draw_dependency_line(self): def draw_dependency_line(self):
""" Drawing the dependencies line. """ """ Drawing the dependencies line. """
print(f'{self.bgreen}{self.endc} Dependencies:' + ' ' * (self.columns - 16) + f'{self.bgreen}{self.endc}') print(f'{self.bgreen}{self.vl}{self.endc} Dependencies:' + ' ' * (self.columns - 16) +
f'{self.bgreen}{self.vl}{self.endc}')
def view_packages(self, package, version): def view_packages(self, package, version):
""" Printing the main packages. """ """ Printing the main packages. """
print(f'{self.bgreen} {self.bcyan}{package}{self.endc}' + ' ' * (35 - len(package)) + f'{version}' + print(f'{self.bgreen}{self.vl} {self.bcyan}{package}{self.endc}' + ' ' * (35 - len(package)) + f'{version}' +
' ' * ((self.columns - 37) - len(version) - 1) + f'{self.bgreen}{self.endc}') ' ' * ((self.columns - 37) - len(version) - 1) + f'{self.bgreen}{self.vl}{self.endc}')
def draw_bottom_line(self): def draw_bottom_line(self):
""" Drawing the bottom line. """ """ Drawing the bottom line. """
print(f'{self.bold}{self.green}' + f'' * (self.columns - 2) + f'{self.endc}') print(f'{self.bold}{self.green}{self.llc}' + f'{self.hl}' * (self.columns - 2) + f'{self.lrc}{self.endc}')
def view_skipping_packages(self, sbo, version): def view_skipping_packages(self, sbo, version):
print(f'[ {self.yellow}Skipping{self.endc} ] {sbo}-{version} {self.red}(already installed){self.endc}') print(f'[ {self.yellow}Skipping{self.endc} ] {sbo}-{version} {self.red}(already installed){self.endc}')
@ -233,7 +232,7 @@ class ViewMessage:
for dep in dependencies: for dep in dependencies:
print(f'{self.cyan}{dep[0]}{self.endc}') print(f'{self.cyan}{dep[0]}{self.endc}')
print(f' └─{self.cyan} {dep[1]}{self.endc}\n') print(f' {self.llc}{self.hl}{self.cyan} {dep[1]}{self.endc}\n')
print('Note: After cleaning you should remove them one by one.') print('Note: After cleaning you should remove them one by one.')
def question(self): def question(self):