mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 18:15:28 +03:00
104 lines
3.4 KiB
ReStructuredText
104 lines
3.4 KiB
ReStructuredText
.. _root_api_orchestrator_argspace:
|
|
|
|
ArgSpace
|
|
==========
|
|
|
|
``ArgSpace`` — это контейнер для хранения и управления обработанными аргументами командной строки. Его основная задача — предоставить удобный интерфейс для доступа к значениям, переданным при запуске приложения.
|
|
|
|
``ArgSpace`` создаётся автоматически после обработки аргументов с помощью ``ArgParser`` и содержит коллекцию объектов ``InputArgument``.
|
|
|
|
-----
|
|
|
|
Инициализация
|
|
-------------
|
|
|
|
Создание экземпляров класса ``ArgSpace`` происходит под `капотом`, вам не нужно создавать их вручную.
|
|
|
|
**Атрибуты:**
|
|
|
|
.. py:attribute:: all_arguments
|
|
|
|
Список всех обработанных аргументов типа ``InputArgument``.
|
|
|
|
-----
|
|
|
|
Методы
|
|
------
|
|
|
|
get_by_name
|
|
~~~~~~~~~~~
|
|
|
|
.. code-block:: python
|
|
:linenos:
|
|
|
|
get_by_name(self, name: str) -> InputArgument | None
|
|
|
|
Возвращает аргумент по имени.
|
|
|
|
:param name: Имя искомого аргумента.
|
|
:return: Объект ``InputArgument`` или ``None``, если аргумент не найден.
|
|
|
|
**Пример использования:**
|
|
|
|
.. literalinclude:: ../../../code_snippets/argspace/snippet4.py
|
|
:linenos:
|
|
|
|
-----
|
|
|
|
get_by_type
|
|
~~~~~~~~~~~
|
|
|
|
.. code-block:: python
|
|
:linenos:
|
|
|
|
get_by_type(self, arg_type: type[BaseArgument]) -> list[InputArgument] | list[Never]
|
|
|
|
Возвращает все аргументы определённого типа.
|
|
|
|
:param arg_type: Тип аргумента (``BooleanArgument`` или ``ValueArgument``).
|
|
:return: Список аргументов указанного типа или пустой список.
|
|
|
|
Метод фильтрует ``all_arguments`` по атрибуту ``founder_class`` и возвращает аргументы, созданные из указанного типа.
|
|
|
|
**Пример использования:**
|
|
|
|
.. literalinclude:: ../../../code_snippets/argspace/snippet3.py
|
|
:linenos:
|
|
|
|
-----
|
|
|
|
InputArgument
|
|
-------------
|
|
|
|
.. seealso ::
|
|
Документация по ``InputArgument`` находится :ref:`здесь <root_api_orchestrator_arguments_inputargument>`.
|
|
|
|
-----
|
|
|
|
Примеры использования
|
|
---------------------
|
|
|
|
``ArgSpace`` используется для доступа к значениям аргументов после запуска приложения. Типичный сценарий включает обработку аргументов через ``ArgParser`` и последующее извлечение значений из ``ArgSpace``.
|
|
|
|
**Полный пример:**
|
|
|
|
.. literalinclude:: ../../../code_snippets/argspace/snippet.py
|
|
:linenos:
|
|
|
|
Доступ к аргументам из обработчиков осуществляется с помощью DI. Подробнее см. :ref:`здесь <root_dependency_injection>`.
|
|
|
|
**Пример использования:**
|
|
|
|
.. literalinclude:: ../../../code_snippets/argspace/snippet2.py
|
|
:linenos:
|
|
|
|
**Запуск приложения:**
|
|
|
|
.. code-block:: bash
|
|
|
|
python server.py --host 0.0.0.0 --port 9000
|
|
# Output:
|
|
# Server configuration:
|
|
# Host: 0.0.0.0
|
|
# Port: 9000
|