Arguments

Модуль Arguments предоставляет классы для работы с аргументами командной строки. Они позволяют настраивать поведение приложения в момент его запуска, передавая различные параметры конфигурации.

Аргументы регистрируются в ArgParser и после обработки становятся доступными в объекте ArgSpace.


ValueArgument

Класс для аргументов, требующих передачи значения.

class ValueArgument(BaseArgument)
1__init__(self, name: str, *,
2         prefix: Literal["-", "--", "---"] = "--",
3         help: str = "Help message for the value argument",
4         possible_values: list[str] | None = None,
5         default: str | None = None,
6         is_required: bool = False,
7         is_deprecated: bool = False) -> None

Создаёт аргумент командной строки, требующий значения.

param name:

Имя аргумента

param prefix:

Префикс (по умолчанию --)

param help:

Сообщение для справки (--help)

param possible_values:

Список допустимых значений

param default:

Значение по умолчанию, если аргумент не передан

param is_required:

Если True, аргумент становится обязательным. Если не передать при запуске, приложение не запустится

param is_deprecated:

Если True, помечает аргумент как устаревший. Если передать при запуске, будет выведено предупреждение в консоль

Пример использования:

 1from argenta.orchestrator.argparser import ArgParser, ValueArgument
 2
 3# Create arguments
 4config_arg = ValueArgument("config", help="Path to configuration file", default="config.yaml")
 5
 6log_level_arg = ValueArgument(
 7    "log-level",
 8    help="Logging level",
 9    possible_values=["DEBUG", "INFO", "WARNING", "ERROR"],
10    default="INFO",
11)
12
13host_arg = ValueArgument("host", help="Server host address", is_required=True)
14
15# Register in ArgParser
16parser = ArgParser(
17    processed_args=[config_arg, log_level_arg, host_arg],
18    name="MyApp",
19    description="My application with CLI arguments",
20)

Запуск приложения:

python app.py --host 127.0.0.1
python app.py --host 127.0.0.1 --config custom.yaml --log-level DEBUG

BooleanArgument

Класс для булевых аргументов, не требующих значения. Их наличие при запуске устанавливает значение в True, отсутствие — в False.

class BooleanArgument(BaseArgument)
1__init__(self, name: str, *,
2         prefix: Literal["-", "--", "---"] = "--",
3         help: str = "Help message for the boolean argument",
4         is_deprecated: bool = False) -> None

Создаёт булев аргумент командной строки без значения.

param name:

Имя аргумента

param prefix:

Префикс (по умолчанию --)

param help:

Сообщение для справки (--help)

param is_deprecated:

Если True, помечает аргумент как устаревший

Пример использования:

1from argenta.orchestrator.argparser import ArgParser, BooleanArgument
2
3# Create boolean arguments
4verbose_arg = BooleanArgument("verbose", help="Enable verbose output")
5debug_arg = BooleanArgument("debug", help="Enable debug mode")
6no_cache_arg = BooleanArgument("no-cache", help="Disable caching")
7
8# Register in ArgParser
9parser = ArgParser(processed_args=[verbose_arg, debug_arg, no_cache_arg], name="MyApp")

Запуск приложения:

python app.py --verbose
python app.py --debug --no-cache
python app.py  # without arguments

InputArgument

См. также

InputArgument напрямую связан с контейнером ArgSpace и является его наполнителем. Подробнее о нём см. здесь.

Представляет собой обработанный аргумент командной строки. Этот класс используется внутри ArgSpace для хранения значений, полученных после парсинга.

class InputArgument
1__init__(self, name: str,
2         value: str | Literal[True],
3         founder_class: type[BaseArgument]) -> None

Создаёт экземпляр обработанного входного аргумента.

param name:

Имя аргумента

param value:

Значение аргумента. Для BooleanArgumentTrue, если аргумент передан, и False, если нет; для ValueArgument — введённая строка

param founder_class:

Класс-родитель, из которого был создан аргумент (BooleanArgument или ValueArgument)

Атрибуты:

name

Имя аргумента, указанное при создании ValueArgument или BooleanArgument.

value

Значение аргумента. Тип зависит от исходного класса:

  • Для BooleanArgument: True, если аргумент был передан

  • Для ValueArgument: строка с переданным значением или значением по умолчанию

founder_class

Ссылка на класс-родитель. Используется для определения типа и фильтрации.