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:
Значение аргумента. Для
BooleanArgument— True, если аргумент передан, и False, если нет; дляValueArgument— введённая строка- param founder_class:
Класс-родитель, из которого был создан аргумент (
BooleanArgumentилиValueArgument)
Атрибуты:
- name
Имя аргумента, указанное при создании
ValueArgumentилиBooleanArgument.
- value¶
Значение аргумента. Тип зависит от исходного класса:
Для
BooleanArgument: True, если аргумент был переданДля
ValueArgument: строка с переданным значением или значением по умолчанию
- founder_class¶
Ссылка на класс-родитель. Используется для определения типа и фильтрации.