diff --git a/docs/code_snippets/argspace/snippet.py b/docs/code_snippets/argspace/snippet.py index c40553b..f7f8e40 100644 --- a/docs/code_snippets/argspace/snippet.py +++ b/docs/code_snippets/argspace/snippet.py @@ -1,15 +1,15 @@ from argenta import App, Orchestrator from argenta.orchestrator.argparser import ArgParser, ValueArgument -# Определение аргументов приложения arguments = [ - ValueArgument("host", help="Server host", default="localhost"), - ValueArgument("port", help="Server port", default="8080"), + ValueArgument("host", help="Server host", is_required=True), + ValueArgument("port", help="Server port", is_required=True), ] -# Создание и запуск парсера argparser = ArgParser( - processed_args=arguments, name="WebServer", description="Simple web server" + processed_args=arguments, + name="WebServer", + description="Simple web server" ) app = App() @@ -17,10 +17,8 @@ orchestrator = Orchestrator(argparser) def main(): - # Получение аргументов только после инициализации Orchestrator argspace = argparser.parsed_argspace - # Получение конкретных аргументов host = argspace.get_by_name("host") port = argspace.get_by_name("port") diff --git a/docs/code_snippets/argspace/snippet4.py b/docs/code_snippets/argspace/snippet4.py new file mode 100644 index 0000000..efb3180 --- /dev/null +++ b/docs/code_snippets/argspace/snippet4.py @@ -0,0 +1,11 @@ +config_arg = argspace.get_by_name("config") +if config_arg: + print(f"Config path: {config_arg.value}") + +verbose_arg = argspace.get_by_name("verbose") +if verbose_arg and verbose_arg.value: + print("Verbose mode enabled") + +unknown_arg = argspace.get_by_name("nonexistent") +if unknown_arg is None: + print("Argument not found") diff --git a/docs/root/api/orchestrator/argspace.rst b/docs/root/api/orchestrator/argspace.rst index 90f1f34..082d733 100644 --- a/docs/root/api/orchestrator/argspace.rst +++ b/docs/root/api/orchestrator/argspace.rst @@ -5,27 +5,20 @@ ArgSpace ``ArgSpace`` — это контейнер для хранения и управления обработанными аргументами командной строки. Его основная задача — предоставить удобный интерфейс для доступа к значениям, переданным при запуске приложения. -``ArgSpace`` создаётся автоматически после обработки аргументов с помощью `ArgParser` и содержит коллекцию объектов `InputArgument`. +``ArgSpace`` создаётся автоматически после обработки аргументов с помощью ``ArgParser`` и содержит коллекцию объектов ``InputArgument``. ----- Инициализация ------------- -.. code-block:: python - :linenos: - - __init__(self, all_arguments: list[InputArgument]) -> None - -Создаёт новое пространство аргументов. - -* ``all_arguments``: Список обработанных аргументов в виде объектов `InputArgument`. Каждый элемент содержит имя, значение и тип исходного аргумента. +Создание экземпляров класса ``ArgSpace`` происходит под `капотом`, вам не нужно создавать их вручную. **Атрибуты:** .. py:attribute:: all_arguments - Список всех обработанных аргументов типа `InputArgument`, включая значения по умолчанию для не указанных параметров. + Список всех обработанных аргументов типа ``InputArgument``. ----- @@ -43,29 +36,13 @@ get_by_name Возвращает аргумент по имени. :param name: Имя искомого аргумента. -:return: Объект `InputArgument` или `None`, если аргумент не найден. - -Метод выполняет линейный поиск по списку `all_arguments`. Если аргумент не найден, возвращается `None`. +:return: Объект ``InputArgument`` или ``None``, если аргумент не найден. **Пример использования:** -.. code-block:: python +.. literalinclude:: ../../../code_snippets/argspace/snippet4.py :linenos: - # Получение значения конкретного аргумента - config_arg = argspace.get_by_name("config") - if config_arg: - print(f"Config path: {config_arg.value}") - - verbose_arg = argspace.get_by_name("verbose") - if verbose_arg and verbose_arg.value: - print("Verbose mode enabled") - - # Обработка отсутствующего аргумента - unknown_arg = argspace.get_by_name("nonexistent") - if unknown_arg is None: - print("Argument not found") - ----- get_by_type @@ -78,10 +55,10 @@ get_by_type Возвращает все аргументы определённого типа. -:param arg_type: Тип аргумента (`BooleanArgument` или `ValueArgument`). +:param arg_type: Тип аргумента (``BooleanArgument`` или ``ValueArgument``). :return: Список аргументов указанного типа или пустой список. -Метод фильтрует `all_arguments` по атрибуту `founder_class` и возвращает аргументы, созданные из указанного типа. +Метод фильтрует ``all_arguments`` по атрибуту ``founder_class`` и возвращает аргументы, созданные из указанного типа. **Пример использования:** @@ -101,14 +78,14 @@ InputArgument Примеры испольования -------------------- -`ArgSpace` используется для доступа к значениям аргументов после запуска приложения. Типичный сценарий включает обработку аргументов через `ArgParser` и последующее извлечение значений из `ArgSpace`. +``ArgSpace`` используется для доступа к значениям аргументов после запуска приложения. Типичный сценарий включает обработку аргументов через ``ArgParser`` и последующее извлечение значений из ``ArgSpace``. **Полный пример:** .. literalinclude:: ../../../code_snippets/argspace/snippet.py :linenos: -Доступ к аргументам из обработчиков осуществляется с помощью DI. Подробнее см. :ref:`здесь `. +Доступ к аргументам из обработчиков осуществляется с помощью ``di``. Подробнее см. :ref:`здесь `. .. literalinclude:: ../../../code_snippets/argspace/snippet2.py :linenos: @@ -117,14 +94,6 @@ InputArgument .. code-block:: bash - # С параметрами по умолчанию - python server.py - # Output: - # Server configuration: - # Host: localhost - # Port: 8080 - - # С кастомными параметрами python server.py --host 0.0.0.0 --port 9000 # Output: # Server configuration: