From 414c065df477af80a4ab1bcb779e8bf0c7c9bd5a Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Thu, 16 Apr 2026 16:00:58 +0200 Subject: [PATCH] refactor(printing): Improve handling of list printing --- commands/util/printing/diff.py | 64 +++++++++++++++++++ .../util/{printer.py => printing/list.py} | 0 2 files changed, 64 insertions(+) create mode 100644 commands/util/printing/diff.py rename commands/util/{printer.py => printing/list.py} (100%) diff --git a/commands/util/printing/diff.py b/commands/util/printing/diff.py new file mode 100644 index 0000000..3c79039 --- /dev/null +++ b/commands/util/printing/diff.py @@ -0,0 +1,64 @@ +from typing import List +import colorama as cl + +from commands.util.printing.list import print_list + + +def print_diff(add: List[str], remove: List[str]): + if len(add) == 0 and len(remove) == 0: + print( + cl.Fore.BLUE + + "-->" + + cl.Style.DIM + + cl.Fore.GREEN + + " No packages changes" + + cl.Style.RESET_ALL, + ) + # Packages to be installed + if len(add) == 0: + print( + cl.Fore.BLUE + + "-->" + + cl.Style.DIM + + cl.Fore.GREEN + + " No packages to be installed" + + cl.Style.RESET_ALL, + ) + else: + print( + cl.Fore.GREEN + "==>", + cl.Style.RESET_ALL + "Packages that will be", + cl.Fore.GREEN + "installed" + cl.Style.RESET_ALL, + ) + print_list(add) + print() + + # Packages to be removed + if len(remove) == 0: + print( + cl.Fore.BLUE + + "-->" + + cl.Style.DIM + + cl.Fore.GREEN + + " No packages to be uninstalled" + + cl.Style.RESET_ALL, + ) + else: + print( + cl.Fore.GREEN + "==>", + cl.Style.RESET_ALL + "Packages that will be", + cl.Fore.RED + "uninstalled" + cl.Style.RESET_ALL, + ) + print_list(remove) + print() + + # Ask user to confirm + print( + cl.Fore.GREEN + "==>", + cl.Style.RESET_ALL + + f"Transaction (packages): {cl.Fore.BLUE + str(len(add)) + cl.Style.RESET_ALL}", + cl.Fore.GREEN + "installed", + cl.Style.RESET_ALL + + f"and {cl.Fore.BLUE + str(len(remove)) + cl.Style.RESET_ALL}", + cl.Fore.RED + "uninstalled" + cl.Style.RESET_ALL, + ) diff --git a/commands/util/printer.py b/commands/util/printing/list.py similarity index 100% rename from commands/util/printer.py rename to commands/util/printing/list.py