From 54992e55cb4f124d61748dd3833100be250aff21 Mon Sep 17 00:00:00 2001 From: kolo Date: Tue, 1 Apr 2025 23:49:17 +0300 Subject: [PATCH] some changes in readme --- README.md | 13 +++++++++++++ argenta/app/entity.py | 19 ++++++------------- argenta/command/exceptions.py | 12 ++++++++---- imgs/mock_app_preview.png | Bin 0 -> 61891 bytes mock/mock_app/handlers/routers.py | 8 ++++---- mock/mock_app/main.py | 7 ++++--- 6 files changed, 35 insertions(+), 24 deletions(-) create mode 100644 imgs/mock_app_preview.png diff --git a/README.md b/README.md index abb7dfe..b164bb8 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,19 @@ ## Описание **Argenta** — Python library for creating custom shells +![prewiev](imgs/mock_app_preview.png) +Пример внешнего вида TUI, написанного с помощью Argenta +Рекомендуемая библиотека для форматирования текста - [rich](https://github.com/Textualize/rich) +```python +from argenta.app import App +from rich.console import Console + +app = App(print_func=Console().print) # default: builtins.print + +# code... +``` + + --- # Установка diff --git a/argenta/app/entity.py b/argenta/app/entity.py index 2e91c8f..9c5285e 100644 --- a/argenta/app/entity.py +++ b/argenta/app/entity.py @@ -6,8 +6,9 @@ from argenta.command.models import Command, InputCommand from argenta.router import Router from argenta.router.defaults import system_router from argenta.command.exceptions import (UnprocessedInputFlagException, - RepeatedInputFlagsException, - EmptyInputCommandException) + RepeatedInputFlagsException, + EmptyInputCommandException, + BaseInputCommandException) from argenta.app.exceptions import (InvalidRouterInstanceException, InvalidDescriptionMessagePatternException, NoRegisteredRoutersException, @@ -79,9 +80,7 @@ class App: try: input_command: InputCommand = InputCommand.parse(raw_command=raw_command) - except (UnprocessedInputFlagException, - RepeatedInputFlagsException, - EmptyInputCommandException) as error: + except BaseInputCommandException as error: self.print_func(self.line_separate) self._error_handler(error, raw_command) self.print_func(self.line_separate) @@ -240,17 +239,11 @@ class App: for command_handler in registered_router.get_command_handlers(): self.print_func(self._description_message_pattern.format( command=command_handler.get_handled_command().get_trigger(), - description=command_handler.get_handled_command().get_description() - ) - ) + description=command_handler.get_handled_command().get_description())) self.print_func(self.command_group_description_separate) - def _error_handler(self, - error: UnprocessedInputFlagException | - RepeatedInputFlagsException | - EmptyInputCommandException, - raw_command: str) -> None: + def _error_handler(self, error: BaseInputCommandException, raw_command: str) -> None: match error: case UnprocessedInputFlagException(): self._invalid_input_flags_handler(raw_command) diff --git a/argenta/command/exceptions.py b/argenta/command/exceptions.py index 3437c8d..faf7cf2 100644 --- a/argenta/command/exceptions.py +++ b/argenta/command/exceptions.py @@ -1,12 +1,16 @@ from argenta.command.flag.models import InputFlag, Flag -class UnprocessedInputFlagException(Exception): +class BaseInputCommandException(Exception): + pass + + +class UnprocessedInputFlagException(BaseInputCommandException): def __str__(self): return "Unprocessed Input Flags" -class RepeatedInputFlagsException(Exception): +class RepeatedInputFlagsException(BaseInputCommandException): def __init__(self, flag: Flag | InputFlag): self.flag = flag def __str__(self): @@ -14,6 +18,6 @@ class RepeatedInputFlagsException(Exception): f"Duplicate flag was detected in the input: '{self.flag.get_string_entity()}'") -class EmptyInputCommandException(Exception): +class EmptyInputCommandException(BaseInputCommandException): def __str__(self): - return "Input Command is empty" \ No newline at end of file + return "Input Command is empty" diff --git a/imgs/mock_app_preview.png b/imgs/mock_app_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..1be0ae7e4812e26d4e2d3bea9973cd1afb913571 GIT binary patch literal 61891 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
    wuA`WJ4?AdoY7=inRlK=?#@1{M{exbc=;~H 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�hi>!0uvJwLq_VW6DqOub$nWX7i^?kFj;vnr4w$c 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 mU*F`jQLf5Oo3rI42>bwP74%a7t^P6q0000KY8 literal 0 HcmV?d00001 diff --git a/mock/mock_app/handlers/routers.py b/mock/mock_app/handlers/routers.py index eeb40c0..da57c98 100644 --- a/mock/mock_app/handlers/routers.py +++ b/mock/mock_app/handlers/routers.py @@ -2,13 +2,13 @@ from pprint import pprint from rich.console import Console from argenta.command import Command -from argenta.command.flag import Flags, InputFlags, Flag +from argenta.command.flag import Flags, InputFlags from argenta.command.flag.defaults import PredeterminedFlags from argenta.router import Router from .handlers_implementation.help_command import help_command -work_router: Router = Router(title='Work nts:') +work_router: Router = Router(title='Work points:') work_router.set_invalid_input_flag_handler(lambda flag: print(f'Invalid input flag: {flag.get_string_entity()} {flag.get_value() if flag.get_value() else ''}')) settings_router: Router = Router(title='Settings points:') @@ -22,14 +22,14 @@ def command_help(): help_command() -@work_router.command(Command(trigger='P', description='Start Solving', flags=Flags(PredeterminedFlags.HOST, PredeterminedFlags.PORT))) +@work_router.command(Command(trigger='S', description='Start Solving', flags=Flags(PredeterminedFlags.HOST, PredeterminedFlags.PORT))) def command_start_solving(args: InputFlags): print('Solving...') pprint(args.get_flag('host')) #start_solving_command() -@settings_router.command(Command(trigger='G', description='Update WordMath')) +@settings_router.command(Command(trigger='U', description='Update WordMath')) def command_update(): print('Command update') diff --git a/mock/mock_app/main.py b/mock/mock_app/main.py index c899a99..22d502b 100644 --- a/mock/mock_app/main.py +++ b/mock/mock_app/main.py @@ -9,7 +9,7 @@ app: App = App(prompt='[italic white bold]What do you want to do(enter number of line_separate=f'\n{"[bold green]-[/bold green][bold red]-[/bold red]"*25}\n', print_func=Console().print, command_group_description_separate='', - repeat_command_groups=True) + repeat_command_groups=False) def main(): @@ -24,13 +24,14 @@ def main(): app.set_initial_message(initial_greeting) app.set_farewell_message(goodbye_message) - app.add_message_on_startup('--help for get helping\n\n') + app.add_message_on_startup('[b dim]Usage[/b dim]: [i] <[green]flags[/green]>[/i]\n') + app.add_message_on_startup('[b dim]Help[/b dim]: [i][/i] [b red]--help[/b red]\n\n') app.set_invalid_input_flags_handler(lambda raw_command: print(f"Invalid input flags: {raw_command}")) app.set_unknown_command_handler(lambda command: print(f"Unknown command: {command.get_trigger()}")) app.set_repeated_input_flags_handler(lambda raw_command: print(f"Repeated input flags: {raw_command}")) - app.set_description_message_pattern('[bold red][{command}][/bold red] [blue]*=*=*[/blue] [bold yellow italic]{description}') + app.set_description_message_pattern('[bold red][{command}][/bold red] [blue dim]*=*=*[/blue dim] [bold yellow italic]{description}') app.start_polling()