From 7281fdeabfb83936411f1a06b125fa682932387d Mon Sep 17 00:00:00 2001 From: kolo Date: Wed, 23 Apr 2025 20:50:31 +0300 Subject: [PATCH] new app preview img in docs --- README2.md | 1199 ----------------- argenta/__init__.py | 0 .../{argparse => argparser}/__init__.py | 0 .../arguments/__init__.py | 0 .../arguments/models.py | 15 +- .../{argparse => argparser}/entity.py | 14 +- ..._app_preview.png => mock_app_preview1.png} | Bin ...preview_last.png => mock_app_preview2.png} | Bin imgs/mock_app_preview3.png | Bin 0 -> 55464 bytes 9 files changed, 16 insertions(+), 1212 deletions(-) delete mode 100644 README2.md delete mode 100644 argenta/__init__.py rename argenta/orchestrator/{argparse => argparser}/__init__.py (100%) rename argenta/orchestrator/{argparse => argparser}/arguments/__init__.py (100%) rename argenta/orchestrator/{argparse => argparser}/arguments/models.py (74%) rename argenta/orchestrator/{argparse => argparser}/entity.py (86%) rename imgs/{mock_app_preview.png => mock_app_preview1.png} (100%) rename imgs/{mock_app_preview_last.png => mock_app_preview2.png} (100%) create mode 100644 imgs/mock_app_preview3.png diff --git a/README2.md b/README2.md deleted file mode 100644 index 4842937..0000000 --- a/README2.md +++ /dev/null @@ -1,1199 +0,0 @@ -# Argenta - -Python library for creating TUI - -![preview](https://github.com/koloideal/Argenta/blob/kolo/imgs/mock_app_preview_last.png?raw=True) -Пример внешнего вида TUI, написанного с помощью Argenta - ---- - -# Installing -```bash -pip install argenta -``` -or -```bash -poetry add argenta -``` - ---- - -# Quick start - -Example of the simplest TUI with a single command -```python -# routers.py -from argenta.router import Router -from argenta.command import Command - - -router = Router() - -@router.command(Command("hello")) -def handler(): - print("Hello, world!") -``` - -```python -# main.py -from argenta.app import App -from argenta.orchestrator import Orchestrator -from routers import router - -app: App = App() -orchestrator: Orchestrator = Orchestrator() - - -def main() -> None: - app.include_router(router) - orchestrator.start_polling(app) - - -if __name__ == '__main__': - main() -``` -Example TUI with a command that has processed flags - -```python -# routers.py -import re -from argenta.router import Router -from argenta.command import Command -from argenta.orchestrator import Orchestrator -from argenta.command.flag.defaults import PredefinedFlags -from argenta.command.flag import Flags, Flag, InputFlags - -router = Router() - -registered_flags = Flags(PredefinedFlags.HOST, - Flag('port', '--', re.compile(r'^[0-9]{1,4}$'))) - - -@router.command(Command("hello")) -def handler(): - print("Hello, world!") - - -@router.command(Command(trigger="ssh", - description='connect via ssh', - flags=registered_flags)) -def handler_with_flags(flags: InputFlags): - for flag in flags: - print(f'Flag name: {flag.get_name()}\n' - f'Flag value: {flag.get_value()}') -``` - ---- - - - -# `argenta.app.autocompleter` - - - -## AutoCompleter Objects - -```python -class AutoCompleter() -``` - - - -#### \_\_init\_\_ - -```python -def __init__(history_filename: str = False, - autocomplete_button: str = 'tab') -> None -``` - -Public. Configures and implements auto-completion of input command - -**Arguments**: - -- `history_filename`: the name of the file for saving the history of the autocompleter -- `autocomplete_button`: the button for auto-completion - -**Returns**: - -None - ---- - - - -# `argenta.app.defaults` - - - -## PredefinedMessages Objects - -```python -@dataclass -class PredefinedMessages() -``` - -Public. A dataclass with predetermined messages for quick use - ---- - - - -# `argenta.app.dividing_line` - - - -## StaticDividingLine Objects - -```python -class StaticDividingLine(BaseDividingLine) -``` - - - -#### \_\_init\_\_ - -```python -def __init__(unit_part: str = '-', length: int = 25) -> None -``` - -Public. The static dividing line - -**Arguments**: - -- `unit_part`: the single part of the dividing line -- `length`: the length of the dividing line - -**Returns**: - -None - ---- - - - -## DynamicDividingLine Objects - -```python -class DynamicDividingLine(BaseDividingLine) -``` - - - -#### \_\_init\_\_ - -```python -def __init__(unit_part: str = '-') -> None -``` - -Public. The dynamic dividing line - -**Arguments**: - -- `unit_part`: the single part of the dividing line - -**Returns**: - -None - - - -#### get\_full\_dynamic\_line - -```python -def get_full_dynamic_line(length: int, is_override: bool) -> str -``` - -Private. Returns the full line of the dividing line - -**Arguments**: - -- `length`: the length of the dividing line -- `is_override`: has the default text layout been redefined - -**Returns**: - -full line of dividing line as str - - - -# argenta.app.dividing\_line - - - -# argenta.app.exceptions - - - -## NoRegisteredHandlersException Objects - -```python -class NoRegisteredHandlersException(Exception) -``` - -The router has no registered handlers - - - -# argenta.app.models - - - -## BaseApp Objects - -```python -class BaseApp() -``` - - - -#### set\_description\_message\_pattern - -```python -def set_description_message_pattern( - pattern: Callable[[str, str], str]) -> None -``` - -Public. Sets the output pattern of the available commands - -**Arguments**: - -- `pattern`: output pattern of the available commands - -**Returns**: - -None - - - -#### set\_invalid\_input\_flags\_handler - -```python -def set_invalid_input_flags_handler(handler: Callable[[str], None]) -> None -``` - -Public. Sets the handler for incorrect flags when entering a command - -**Arguments**: - -- `handler`: handler for incorrect flags when entering a command - -**Returns**: - -None - - - -#### set\_repeated\_input\_flags\_handler - -```python -def set_repeated_input_flags_handler(handler: Callable[[str], None]) -> None -``` - -Public. Sets the handler for repeated flags when entering a command - -**Arguments**: - -- `handler`: handler for repeated flags when entering a command - -**Returns**: - -None - - - -#### set\_unknown\_command\_handler - -```python -def set_unknown_command_handler(handler: Callable[[str], None]) -> None -``` - -Public. Sets the handler for unknown commands when entering a command - -**Arguments**: - -- `handler`: handler for unknown commands when entering a command - -**Returns**: - -None - - - -#### set\_empty\_command\_handler - -```python -def set_empty_command_handler(handler: Callable[[], None]) -> None -``` - -Public. Sets the handler for empty commands when entering a command - -**Arguments**: - -- `handler`: handler for empty commands when entering a command - -**Returns**: - -None - - - -#### set\_exit\_command\_handler - -```python -def set_exit_command_handler(handler: Callable[[], None]) -> None -``` - -Public. Sets the handler for exit command when entering a command - -**Arguments**: - -- `handler`: handler for exit command when entering a command - -**Returns**: - -None - - - -## App Objects - -```python -class App(BaseApp) -``` - - - -#### \_\_init\_\_ - -```python -def __init__(prompt: str = '[italic dim bold]What do you want to do?\n', - initial_message: str = '\nArgenta\n', - farewell_message: str = '\nSee you\n', - exit_command: Command = Command('Q', 'Exit command'), - system_router_title: str | None = 'System points:', - ignore_command_register: bool = True, - dividing_line: StaticDividingLine - | DynamicDividingLine = StaticDividingLine(), - repeat_command_groups: bool = True, - override_system_messages: bool = False, - autocompleter: AutoCompleter = AutoCompleter(), - print_func: Callable[[str], None] = Console().print) -> None -``` - -Public. The essence of the application itself. - -Configures and manages all aspects of the behavior and presentation of the user interacting with the user - -**Arguments**: - -- `prompt`: displayed before entering the command -- `initial_message`: displayed at the start of the app -- `farewell_message`: displayed at the end of the app -- `exit_command`: the entity of the command that will be terminated when entered -- `system_router_title`: system router title -- `ignore_command_register`: whether to ignore the case of the entered commands -- `dividing_line`: the entity of the dividing line -- `repeat_command_groups`: whether to repeat the available commands and their description -- `override_system_messages`: whether to redefine the default formatting of system messages -- `autocompleter`: the entity of the autocompleter -- `print_func`: system messages text output function - -**Returns**: - -None - - - -#### run\_polling - -```python -def run_polling() -> None -``` - -Private. Starts the user input processing cycle - -**Returns**: - -None - - - -#### include\_router - -```python -def include_router(router: Router) -> None -``` - -Public. Registers the router in the application - -**Arguments**: - -- `router`: registered router - -**Returns**: - -None - - - -#### include\_routers - -```python -def include_routers(*routers: Router) -> None -``` - -Public. Registers the routers in the application - -**Arguments**: - -- `routers`: registered routers - -**Returns**: - -None - - - -#### add\_message\_on\_startup - -```python -def add_message_on_startup(message: str) -> None -``` - -Public. Adds a message that will be displayed when the application is launched - -**Arguments**: - -- `message`: the message being added - -**Returns**: - -None - - - -# argenta.app.registered\_routers.entity - - - -## RegisteredRouters Objects - -```python -class RegisteredRouters() -``` - - - -#### \_\_init\_\_ - -```python -def __init__(registered_routers: list[Router] = None) -> None -``` - -Private. Combines registered routers - -**Arguments**: - -- `registered_routers`: list of the registered routers - -**Returns**: - -None - - - -#### get\_registered\_routers - -```python -def get_registered_routers() -> list[Router] -``` - -Private. Returns the registered routers - -**Returns**: - -registered routers as list[Router] - - - -#### add\_registered\_router - -```python -def add_registered_router(router: Router) -> None -``` - -Private. Adds a new registered router - -**Arguments**: - -- `router`: registered router - -**Returns**: - -None - - - -#### add\_registered\_routers - -```python -def add_registered_routers(*routers: Router) -> None -``` - -Private. Adds new registered routers - -**Arguments**: - -- `routers`: registered routers - -**Returns**: - -None - - - -# argenta.app.registered\_routers - - - -# argenta.app - - - -# argenta.command.exceptions - - - -## BaseInputCommandException Objects - -```python -class BaseInputCommandException(Exception) -``` - -Private. Base exception class for all exceptions raised when parse input command - - - -## UnprocessedInputFlagException Objects - -```python -class UnprocessedInputFlagException(BaseInputCommandException) -``` - -Private. Raised when an unprocessed input flag is detected - - - -## RepeatedInputFlagsException Objects - -```python -class RepeatedInputFlagsException(BaseInputCommandException) -``` - -Private. Raised when repeated input flags are detected - - - -## EmptyInputCommandException Objects - -```python -class EmptyInputCommandException(BaseInputCommandException) -``` - -Private. Raised when an empty input command is detected - - - -# argenta.command.flag.defaults - - - -## PredefinedFlags Objects - -```python -@dataclass -class PredefinedFlags() -``` - -Public. A dataclass with predefined flags and most frequently used flags for quick use - - - -# argenta.command.flag.models - - - -## BaseFlag Objects - -```python -class BaseFlag(ABC) -``` - - - -#### \_\_init\_\_ - -```python -def __init__(name: str, prefix: Literal['-', '--', '---'] = '--') -> None -``` - -Private. Base class for flags - -**Arguments**: - -- `name`: the name of the flag -- `prefix`: the prefix of the flag - -**Returns**: - -None - - - -#### get\_string\_entity - -```python -def get_string_entity() -> str -``` - -Public. Returns a string representation of the flag - -**Returns**: - -string representation of the flag as str - - - -#### get\_name - -```python -def get_name() -> str -``` - -Public. Returns the name of the flag - -**Returns**: - -the name of the flag as str - - - -#### get\_prefix - -```python -def get_prefix() -> str -``` - -Public. Returns the prefix of the flag - -**Returns**: - -the prefix of the flag as str - - - -## InputFlag Objects - -```python -class InputFlag(BaseFlag) -``` - - - -#### \_\_init\_\_ - -```python -def __init__(name: str, - prefix: Literal['-', '--', '---'] = '--', - value: str = None) -``` - -Public. The entity of the flag of the entered command - -**Arguments**: - -- `name`: the name of the input flag -- `prefix`: the prefix of the input flag -- `value`: the value of the input flag - -**Returns**: - -None - - - -#### get\_value - -```python -def get_value() -> str | None -``` - -Public. Returns the value of the flag - -**Returns**: - -the value of the flag as str - - - -#### set\_value - -```python -def set_value(value) -``` - -Private. Sets the value of the flag - -**Arguments**: - -- `value`: the fag value to set - -**Returns**: - -None - - - -## Flag Objects - -```python -class Flag(BaseFlag) -``` - - - -#### \_\_init\_\_ - -```python -def __init__(name: str, - prefix: Literal['-', '--', '---'] = '--', - possible_values: list[str] | Pattern[str] | False = True) -> None -``` - -Public. The entity of the flag being registered for subsequent processing - -**Arguments**: - -- `name`: The name of the flag -- `prefix`: The prefix of the flag -- `possible_values`: The possible values of the flag, if False then the flag cannot have a value - -**Returns**: - -None - - - -#### validate\_input\_flag\_value - -```python -def validate_input_flag_value(input_flag_value: str | None) -``` - -Private. Validates the input flag value - -**Arguments**: - -- `input_flag_value`: The input flag value to validate - -**Returns**: - -whether the entered flag is valid as bool - - - -## BaseFlags Objects - -```python -class BaseFlags(ABC) -``` - -Private. Base class for groups of flags - - - -#### get\_flags - -```python -@abstractmethod -def get_flags() -``` - -Public. Returns a list of flags - -**Returns**: - -list of flags - - - -#### add\_flag - -```python -@abstractmethod -def add_flag(flag: Flag | InputFlag) -``` - -Public. Adds a flag to the list of flags - -**Arguments**: - -- `flag`: flag to add - -**Returns**: - -None - - - -#### add\_flags - -```python -@abstractmethod -def add_flags(flags: list[Flag] | list[InputFlag]) -``` - -Public. Adds a list of flags to the list of flags - -**Arguments**: - -- `flags`: list of flags to add - -**Returns**: - -None - - - -#### get\_flag - -```python -@abstractmethod -def get_flag(name: str) -``` - -Public. Returns the flag entity by its name or None if not found - -**Arguments**: - -- `name`: the name of the flag to get - -**Returns**: - -entity of the flag or None - - - -# argenta.command.flag - - - -# argenta.command.models - - - -## BaseCommand Objects - -```python -class BaseCommand() -``` - - - -#### \_\_init\_\_ - -```python -def __init__(trigger: str) -> None -``` - -Private. Base class for all commands - -**Arguments**: - -- `trigger`: A string trigger, which, when entered by the user, indicates that the input corresponds to the command - - - -#### get\_trigger - -```python -def get_trigger() -> str -``` - -Returns the trigger of the command - -**Returns**: - -the trigger of the command as str - - - -## Command Objects - -```python -class Command(BaseCommand) -``` - - - -#### \_\_init\_\_ - -```python -def __init__(trigger: str, - description: str = None, - flags: Flag | Flags = None, - aliases: list[str] = None) -``` - -Public. The command that can and should be registered in the Router - -**Arguments**: - -- `trigger`: A string trigger, which, when entered by the user, indicates that the input corresponds to the command -- `description`: the description of the command -- `flags`: processed commands -- `aliases`: string synonyms for the main trigger - - - -# argenta.command - - - -# argenta.orchestrator.argparse.arguments.models - - - -## BaseArgument Objects - -```python -class BaseArgument(ABC) -``` - - - -#### get\_string\_entity - -```python -@abstractmethod -def get_string_entity() -``` - -Returns the string representation of the argument - - - - -## PositionalArgument Objects - -```python -class PositionalArgument(BaseArgument) -``` - - - -#### \_\_init\_\_ - -```python -def __init__(name: str) -``` - -Required argument at startup - -**Arguments**: - -- `name`: name of the argument, must not start with minus (-) - - - -## OptionalArgument Objects - -```python -class OptionalArgument(BaseArgument) -``` - - - -#### \_\_init\_\_ - -```python -def __init__(name: str, prefix: Literal['-', '--', '---'] = '--') -``` - -Optional argument, must have the value - -**Arguments**: - -- `name`: name of the argument -- `prefix`: prefix of the argument - - - -## BooleanArgument Objects - -```python -class BooleanArgument(BaseArgument) -``` - - - -#### \_\_init\_\_ - -```python -def __init__(name: str, prefix: Literal['-', '--', '---'] = '--') -``` - -Boolean argument, does not require a value - -**Arguments**: - -- `name`: name of the argument -- `prefix`: prefix of the argument - - - -# argenta.orchestrator.argparse.arguments - - - -# argenta.orchestrator.argparse.entity - - - -## ArgParse Objects - -```python -class ArgParse() -``` - - - -#### \_\_init\_\_ - -```python -def __init__( - processed_args: list[PositionalArgument | OptionalArgument - | BooleanArgument], - name: str = 'Argenta', - description: str = 'Argenta available arguments', - epilog: str = 'github.com/koloideal/Argenta | made by kolo') -> None -``` - -Cmd argument parser and configurator at startup - -**Arguments**: - -- `name`: the name of the ArgParse instance -- `description`: the description of the ArgParse instance -- `epilog`: the epilog of the ArgParse instance -- `processed_args`: registered and processed arguments - - - -#### set\_args - -```python -def set_args(*args: PositionalArgument | OptionalArgument | BooleanArgument) -``` - -Sets the arguments to be processed - -**Arguments**: - -- `args`: processed arguments - - - -#### register\_args - -```python -def register_args() -``` - -Registers initialized command line arguments - - - - -# argenta.orchestrator.argparse - - - -# argenta.orchestrator.entity - - - -## Orchestrator Objects - -```python -class Orchestrator() -``` - - - -#### \_\_init\_\_ - -```python -def __init__(arg_parser: ArgParse = False) -``` - -An orchestrator and configurator that defines the behavior of an integrated system, one level higher than the App - -**Arguments**: - -- `arg_parser`: Cmd argument parser and configurator at startup - - - -#### start\_polling - -```python -@staticmethod -def start_polling(app: App) -> None -``` - -Starting the user input processing cycle - -**Arguments**: - -- `app`: a running application - - - -#### get\_input\_args - -```python -def get_input_args() -> Namespace | None -``` - -Returns the arguments parsed - - - - -# argenta.orchestrator - - - -# argenta.router.command\_handler.entity - - - -# argenta.router.command\_handler - - - -# argenta.router.defaults - - - -# argenta.router.entity - - - -# argenta.router.exceptions - - - -# argenta.router - diff --git a/argenta/__init__.py b/argenta/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/argenta/orchestrator/argparse/__init__.py b/argenta/orchestrator/argparser/__init__.py similarity index 100% rename from argenta/orchestrator/argparse/__init__.py rename to argenta/orchestrator/argparser/__init__.py diff --git a/argenta/orchestrator/argparse/arguments/__init__.py b/argenta/orchestrator/argparser/arguments/__init__.py similarity index 100% rename from argenta/orchestrator/argparse/arguments/__init__.py rename to argenta/orchestrator/argparser/arguments/__init__.py diff --git a/argenta/orchestrator/argparse/arguments/models.py b/argenta/orchestrator/argparser/arguments/models.py similarity index 74% rename from argenta/orchestrator/argparse/arguments/models.py rename to argenta/orchestrator/argparser/arguments/models.py index 6cf6980..af6ec4c 100644 --- a/argenta/orchestrator/argparse/arguments/models.py +++ b/argenta/orchestrator/argparser/arguments/models.py @@ -3,11 +3,14 @@ from typing import Literal class BaseArgument(ABC): + """ + Private. Base class for all arguments + """ @abstractmethod - def get_string_entity(self): + def get_string_entity(self) -> str: """ - Returns the string representation of the argument - :return: + Public. Returns the string representation of the argument + :return: the string representation as a str """ pass @@ -15,7 +18,7 @@ class BaseArgument(ABC): class PositionalArgument(BaseArgument): def __init__(self, name: str): """ - Required argument at startup + Public. Required argument at startup :param name: name of the argument, must not start with minus (-) """ self.name = name @@ -27,7 +30,7 @@ class PositionalArgument(BaseArgument): class OptionalArgument(BaseArgument): def __init__(self, name: str, prefix: Literal['-', '--', '---'] = '--'): """ - Optional argument, must have the value + Public. Optional argument, must have the value :param name: name of the argument :param prefix: prefix of the argument """ @@ -41,7 +44,7 @@ class OptionalArgument(BaseArgument): class BooleanArgument(BaseArgument): def __init__(self, name: str, prefix: Literal['-', '--', '---'] = '--'): """ - Boolean argument, does not require a value + Public. Boolean argument, does not require a value :param name: name of the argument :param prefix: prefix of the argument """ diff --git a/argenta/orchestrator/argparse/entity.py b/argenta/orchestrator/argparser/entity.py similarity index 86% rename from argenta/orchestrator/argparse/entity.py rename to argenta/orchestrator/argparser/entity.py index 8055a7e..7c11119 100644 --- a/argenta/orchestrator/argparse/entity.py +++ b/argenta/orchestrator/argparser/entity.py @@ -12,7 +12,7 @@ class ArgParse: description: str = 'Argenta available arguments', epilog: str = 'github.com/koloideal/Argenta | made by kolo') -> None: """ - Cmd argument parser and configurator at startup + Public. Cmd argument parser and configurator at startup :param name: the name of the ArgParse instance :param description: the description of the ArgParse instance :param epilog: the epilog of the ArgParse instance @@ -25,18 +25,18 @@ class ArgParse: self.entity: ArgumentParser = ArgumentParser(prog=name, description=description, epilog=epilog) self.args: list[PositionalArgument | OptionalArgument | BooleanArgument] | None = processed_args - def set_args(self, *args: PositionalArgument | OptionalArgument | BooleanArgument): + def set_args(self, *args: PositionalArgument | OptionalArgument | BooleanArgument) -> None: """ - Sets the arguments to be processed + Public. Sets the arguments to be processed :param args: processed arguments - :return: + :return: None """ self.args.extend(args) - def register_args(self): + def register_args(self) -> None: """ - Registers initialized command line arguments - :return: + Private. Registers initialized command line arguments + :return: None """ if not self.args: return diff --git a/imgs/mock_app_preview.png b/imgs/mock_app_preview1.png similarity index 100% rename from imgs/mock_app_preview.png rename to imgs/mock_app_preview1.png diff --git a/imgs/mock_app_preview_last.png b/imgs/mock_app_preview2.png similarity index 100% rename from imgs/mock_app_preview_last.png rename to imgs/mock_app_preview2.png diff --git a/imgs/mock_app_preview3.png b/imgs/mock_app_preview3.png new file mode 100644 index 0000000000000000000000000000000000000000..c8a9fc33ff5caaaaf81cc66e853500c19fb992bb GIT binary patch literal 55464 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 z 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 J%O&&!{s(lB>^J}b literal 0 HcmV?d00001