From 46981d41e08ef9b23d3941f764bf549c6a0472ab Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Mon, 27 Mar 2023 13:20:23 +0300 Subject: [PATCH] Updated for file size --- slpkg/utilities.py | 18 ++++++++++++++++++ slpkg/views/ascii.py | 8 ++++++-- slpkg/views/views.py | 3 ++- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/slpkg/utilities.py b/slpkg/utilities.py index f408f4cf..4b7b1b54 100644 --- a/slpkg/utilities.py +++ b/slpkg/utilities.py @@ -184,3 +184,21 @@ class Utilities: def raise_error_message(self, message: str) -> None: """ A general method to raise an error message and exit. """ raise SystemExit(f"\n{self.configs.prog_name}: {self.bred}Error{self.endc}: {message}.\n") + + @staticmethod + def get_file_size(file): + """ Get the file size and converted to units. """ + unit: str = 'KB' + file_size = Path(file).stat().st_size + mb = file_size / 1024**2 + gb = file_size / 1024 ** 3 + + if mb >= 1: + file_size = mb + unit: str = 'MB' + + if gb >= 1: + file_size = mb + unit: str = 'GB' + + return f'{str(round(file_size, 2))} {unit}' diff --git a/slpkg/views/ascii.py b/slpkg/views/ascii.py index 010520e7..d5a2bb5f 100644 --- a/slpkg/views/ascii.py +++ b/slpkg/views/ascii.py @@ -71,9 +71,13 @@ class Ascii(Configs): def draw_view_package(self, package: str, version: str, size: str, color: str, repo: str) -> None: """ Draw nad print the packages. """ + if self.columns <= 80 and len(version) >= 11: + version: str = f'{version[:10]}...' + if self.columns <= 80 and len(package) >= 25: + package: str = f'{package[:24]}...' print(f'{self.bgreen}{self.vertical_line} {self.bold}{color}{package}{self.endc}' + ' ' * (30 - len(package)) + - f'{self.bgreen}{version}' + ' ' * ((self.columns - 50) - len(version) - len(repo)) + - f'{self.endc}{size}' + ' ' * (16 - len(size)) + + f'{self.bgreen}{version}' + ' ' * ((self.columns - 53) - len(version) - len(size)) + + f'{self.endc}{size}' + ' ' * (19 - len(repo)) + f'{self.blue}{repo} {self.bgreen}{self.vertical_line}{self.endc}') def draw_log_package(self, package: str) -> None: diff --git a/slpkg/views/views.py b/slpkg/views/views.py index d15f79ff..dd600c91 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -167,7 +167,8 @@ class ViewMessage(Configs): if installed: pkg: list = self.utils.split_binary_pkg(installed) self.installed_packages.append(installed) - self.ascii.draw_view_package(pkg[0], pkg[1], self.red, '') + size: str = self.utils.get_file_size(f'{self.log_packages}/{installed}') + self.ascii.draw_view_package(pkg[0], pkg[1], size, self.red, '') def choose_dependencies_for_remove(self, dependencies: list) -> list: """ Choose packages for remove using the dialog box. """