mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
docs
This commit is contained in:
@@ -3,13 +3,13 @@
|
||||
Flag
|
||||
=====
|
||||
|
||||
Объект ``Flag`` представляет собой сущность флага, регистрируемого для последующей обработки в приложении ``Argenta``. Его основная задача — определить параметры флага команды, включая имя, префикс и допустимые значения. ``Flag`` используется при создании команд с флагами и предоставляет механизм валидации входящих значений от пользователя.
|
||||
``Flag`` — это сущность, описывающая флаг команды. Её основная задача — определить параметры флага, включая его имя, префикс и правила валидации. `Flag` используется при создании команд и предоставляет механизм для проверки значений, введённых пользователем.
|
||||
|
||||
.. seealso::
|
||||
|
||||
Документация по :ref:`PossibleValues <root_api_command_possible_values>` — сущность, определяющая допустимые значения флага.
|
||||
Документация по :ref:`PossibleValues <root_api_command_possible_values>` — перечисление, определяющее типы допустимых значений.
|
||||
|
||||
Документация по :ref:`InputFlag <root_api_command_input_flag>` — объект распаршенного введённого флага.
|
||||
Документация по :ref:`InputFlag <root_api_command_input_flag>` — объект обработанного флага, введённого пользователем.
|
||||
|
||||
:ref:`Общая информация <root_flags>` о флагах и их использовании в приложении ``Argenta``
|
||||
|
||||
@@ -27,11 +27,11 @@ Flag
|
||||
possible_values: list[str] | Pattern[str] | PossibleValues = PossibleValues.ALL,
|
||||
) -> None
|
||||
|
||||
Создает новый флаг для регистрации в команде.
|
||||
Создаёт новый флаг для регистрации в команде.
|
||||
|
||||
* ``name`` : Имя флага (обязательный параметр)
|
||||
* ``prefix`` : Префикс флага. По умолчанию ``"--"``. Возможные значения: ``"-"``, ``"--"``, ``"---"``
|
||||
* ``possible_values`` : Допустимые значения флага. По умолчанию ``PossibleValues.ALL``. Может быть списком строк, регулярным выражением или значением из enum ``PossibleValues``
|
||||
* ``name``: Имя флага (обязательный параметр).
|
||||
* ``prefix``: Префикс флага (``-``, ``--``, ``---``). По умолчанию ``--``.
|
||||
* ``possible_values``: Правила валидации значения. Может быть списком строк, регулярным выражением или значением из `PossibleValues`. По умолчанию `PossibleValues.ALL`.
|
||||
|
||||
**Атрибуты:**
|
||||
|
||||
@@ -45,12 +45,12 @@ Flag
|
||||
|
||||
.. py:attribute:: possible_values
|
||||
|
||||
Определяет допустимые значения для флага. Может быть:
|
||||
|
||||
* Списком строк — флаг принимает только значения из этого списка
|
||||
* Регулярным выражением (``Pattern[str]``) — значение проверяется на соответствие паттерну
|
||||
* Значением ``PossibleValues.ALL`` — флаг принимает любое значение
|
||||
* Значением ``PossibleValues.NEITHER`` — флаг не должен иметь значения
|
||||
Определяет допустимые значения для флага:
|
||||
|
||||
* Список строк: флаг принимает только значения из этого списка.
|
||||
* Регулярное выражение (`Pattern[str]`): значение проверяется на соответствие паттерну.
|
||||
* `PossibleValues.ALL`: флаг принимает любое значение.
|
||||
* `PossibleValues.NEITHER`: флаг не должен иметь значения.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -72,11 +72,11 @@ string_entity
|
||||
@property
|
||||
string_entity(self) -> str
|
||||
|
||||
Возвращает строковое представление флага в формате ``prefix + name``.
|
||||
Возвращает строковое представление флага в формате `prefix + name`.
|
||||
|
||||
:return: Строковое представление флага
|
||||
|
||||
Это свойство объединяет префикс и имя флага в единую строку, которая представляет, как флаг будет выглядеть в командной строке.
|
||||
Это свойство объединяет префикс и имя в единую строку, которая представляет флаг так, как он выглядел бы в командной строке.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -97,7 +97,7 @@ __str__
|
||||
|
||||
__str__(self) -> str
|
||||
|
||||
Возвращает строковое представление флага (аналогично ``string_entity``).
|
||||
Возвращает строковое представление флага (аналогично `string_entity`).
|
||||
|
||||
:return: Строковое представление флага
|
||||
|
||||
@@ -117,9 +117,9 @@ __repr__
|
||||
|
||||
__repr__(self) -> str
|
||||
|
||||
Возвращает отладочное представление объекта флага.
|
||||
Возвращает отладочное представление объекта.
|
||||
|
||||
:return: Строка в формате ``Flag<prefix=..., name=...>``
|
||||
:return: Строка в формате `Flag<prefix=..., name=...>`.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -137,13 +137,13 @@ __eq__
|
||||
|
||||
__eq__(self, other: object) -> bool
|
||||
|
||||
Сравнивает два флага на равенство по их строковому представлению.
|
||||
Сравнивает два флага на равенство по их строковому представлению (`string_entity`).
|
||||
|
||||
:param other: Объект для сравнения
|
||||
:return: ``True``, если флаги равны, иначе ``False``
|
||||
:raises NotImplementedError: Если ``other`` не является экземпляром ``Flag``
|
||||
:raises NotImplementedError: Если `other` не является экземпляром `Flag`.
|
||||
|
||||
Два флага считаются равными, если их ``string_entity`` идентичны.
|
||||
Два флага считаются равными, если их `string_entity` идентичны.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -160,9 +160,9 @@ PredefinedFlags
|
||||
|
||||
``argenta.command.flag.defaults.PredefinedFlags``
|
||||
|
||||
Класс ``PredefinedFlags`` предоставляет набор предопределенных флагов, которые можно использовать в приложениях без необходимости их ручного создания. Эти флаги покрывают наиболее распространенные сценарии использования и следуют общепринятым соглашениям командной строки.
|
||||
Класс `PredefinedFlags` предоставляет набор готовых флагов для использования в приложениях без их ручного создания. Эти флаги покрывают наиболее распространённые сценарии и следуют общепринятым соглашениям.
|
||||
|
||||
Все предопределенные флаги являются атрибутами класса и представляют собой готовые экземпляры ``Flag``.
|
||||
Все предопределённые флаги являются атрибутами класса и представляют собой готовые экземпляры `Flag`.
|
||||
|
||||
-----
|
||||
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
Flags
|
||||
======
|
||||
|
||||
Объект ``Flags`` представляет собой коллекцию флагов команды в приложении ``Argenta``. Его основная задача — группировать и управлять набором флагов, зарегистрированных для конкретной команды. ``Flags`` служит контейнером, который позволяет удобно добавлять, извлекать и итерировать флаги, а также проверять их наличие.
|
||||
`Flags` — это коллекция флагов команды. Её основная задача — группировать и управлять набором флагов, зарегистрированных для конкретной команды. `Flags` служит контейнером, который позволяет удобно добавлять, извлекать, итерировать флаги и проверять их наличие.
|
||||
|
||||
``Flags`` наследуется от базового класса ``BaseFlags`` и специализируется для работы с объектами типа ``Flag``. Этот класс используется при создании команд с множественными флагами и предоставляет интерфейс для управления ими.
|
||||
`Flags` наследуется от базового класса `BaseFlags` и специализируется на работе с объектами типа `Flag`. Этот класс используется при создании команд с несколькими флагами и предоставляет интерфейс для управления ими.
|
||||
|
||||
.. seealso::
|
||||
|
||||
Документация по отдельным флагам (:ref:`Flag <root_api_command_flag>`, :ref:`InputFlag <root_api_command_input_flag>`)
|
||||
|
||||
Документация по :ref:`InputFlags <root_api_command_input_flags>` — коллекции распаршенных флагов пользователя
|
||||
Документация по :ref:`InputFlags <root_api_command_input_flags>` — коллекция обработанных флагов, введённых пользователем.
|
||||
|
||||
:ref:`Общая информация <root_flags>` о флагах и их использовании в приложении ``Argenta``
|
||||
|
||||
@@ -25,15 +25,16 @@ Flags
|
||||
|
||||
__init__(self, flags: list[Flag] | None = None) -> None
|
||||
|
||||
Создает новую коллекцию флагов.
|
||||
Создаёт новую коллекцию флагов.
|
||||
|
||||
* ``flags`` : Необязательный список флагов типа ``Flag`` для инициализации коллекции. Если не указан, создается пустая коллекция.
|
||||
* ``flags``: Необязательный список флагов типа `Flag` для инициализации коллекции. Если не указан, создаётся пустая коллекция.
|
||||
|
||||
**Атрибуты:**
|
||||
|
||||
.. py:attribute:: flags
|
||||
:no-index:
|
||||
|
||||
Список всех зарегистрированных флагов типа ``Flag``. Пустой список, если флаги не были переданы при инициализации.
|
||||
Список всех зарегистрированных флагов типа `Flag`. Пуст, если флаги не были переданы при инициализации.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -54,12 +55,12 @@ add_flag
|
||||
|
||||
add_flag(self, flag: Flag) -> None
|
||||
|
||||
Добавляет один флаг в коллекцию.
|
||||
Добавляет флаг в коллекцию.
|
||||
|
||||
:param flag: Флаг типа ``Flag`` для добавления в коллекцию
|
||||
:return: None
|
||||
:param flag: Флаг типа `Flag` для добавления.
|
||||
:return: None.
|
||||
|
||||
Метод добавляет переданный флаг в конец списка ``flags``. Используется для динамического расширения набора флагов после создания коллекции.
|
||||
Метод добавляет флаг в конец списка `flags`. Используется для динамического расширения набора флагов.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -77,12 +78,12 @@ add_flags
|
||||
|
||||
add_flags(self, flags: list[Flag]) -> None
|
||||
|
||||
Добавляет список флагов в коллекцию.
|
||||
Добавляет в коллекцию список флагов.
|
||||
|
||||
:param flags: Список флагов типа ``Flag`` для добавления
|
||||
:return: None
|
||||
:param flags: Список флагов типа `Flag` для добавления.
|
||||
:return: None.
|
||||
|
||||
Метод расширяет текущую коллекцию, добавляя все флаги из переданного списка. Эффективен для пакетного добавления множества флагов.
|
||||
Метод расширяет коллекцию, добавляя в неё все флаги из переданного списка. Эффективен для пакетного добавления.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -100,12 +101,12 @@ get_flag_by_name
|
||||
|
||||
get_flag_by_name(self, name: str) -> Flag | None
|
||||
|
||||
Получает флаг по его имени.
|
||||
Возвращает флаг по имени.
|
||||
|
||||
:param name: Имя искомого флага
|
||||
:return: Объект ``Flag`` с указанным именем или ``None``, если флаг не найден
|
||||
:param name: Имя искомого флага.
|
||||
:return: Объект `Flag` или `None`, если флаг не найден.
|
||||
|
||||
Метод выполняет поиск по списку ``flags`` и возвращает первый флаг с соответствующим именем. Если флаг не найден, возвращается ``None``.
|
||||
Метод выполняет поиск по списку `flags` и возвращает первый флаг с соответствующим именем. Если флаг не найден, возвращается `None`.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -126,9 +127,9 @@ __iter__
|
||||
|
||||
__iter__(self) -> Iterator[Flag]
|
||||
|
||||
Делает коллекцию итерируемой, позволяя использовать её в циклах.
|
||||
Делает коллекцию итерируемой для использования в циклах.
|
||||
|
||||
:return: Итератор по списку флагов
|
||||
:return: Итератор по списку флагов.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -146,10 +147,10 @@ __getitem__
|
||||
|
||||
__getitem__(self, flag_index: int) -> Flag
|
||||
|
||||
Позволяет получать флаги по индексу.
|
||||
Позволяет получать флаг по индексу.
|
||||
|
||||
:param flag_index: Индекс флага в списке
|
||||
:return: Флаг с указанным индексом
|
||||
:param flag_index: Индекс флага в списке.
|
||||
:return: Флаг по указанному индексу.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
Command
|
||||
=======
|
||||
|
||||
Объект ``Command`` представляет собой основную единицу функциональности в приложении ``Argenta``. Каждая команда определяет конкретное действие, которое пользователь может выполнить, введя соответствующий триггер. Команды регистрируются в роутерах и образуют интерфейс взаимодействия с приложением.
|
||||
``Command`` — это основная единица функциональности в приложении. Каждая команда определяет действие, которое пользователь может выполнить, введя соответствующий триггер. Команды регистрируются в роутерах и формируют интерфейс взаимодействия с приложением.
|
||||
|
||||
``Command`` инкапсулирует всю необходимую информацию о команде: её триггер (ключевое слово для вызова), описание, набор флагов для настройки поведения и список псевдонимов для альтернативных способов вызова.
|
||||
``Command`` инкапсулирует всю информацию о команде: её триггер (ключевое слово для вызова), описание, набор флагов и список псевдонимов.
|
||||
|
||||
-----
|
||||
|
||||
@@ -20,33 +20,30 @@ Command
|
||||
flags: Flag | Flags = DEFAULT_WITHOUT_FLAGS,
|
||||
aliases: list[str] | None = None) -> None
|
||||
|
||||
Создает новую команду для регистрации в роутере.
|
||||
Создаёт новую команду для регистрации в роутере.
|
||||
|
||||
* ``trigger`` : Строковый триггер команды, который пользователь должен ввести для её вызова. Это основной идентификатор команды в системе.
|
||||
|
||||
* ``description`` : Необязательное описание команды, объясняющее её назначение. Если не указано, используется значение по умолчанию ``"Command without description"``. Отображается в справке и списке доступных команд.
|
||||
|
||||
* ``flags`` : Набор флагов команды для настройки её поведения. Может быть одиночным объектом ``Flag`` или коллекцией ``Flags``. По умолчанию команда создается без флагов.
|
||||
|
||||
* ``aliases`` : Список строковых синонимов для основного триггера. Позволяет вызывать команду альтернативными способами. По умолчанию список пуст.
|
||||
* ``trigger``: Строковый триггер, который пользователь вводит для вызова команды. Является основным идентификатором.
|
||||
* ``description``: Необязательное описание, объясняющее назначение команды. Отображается в справке.
|
||||
* ``flags``: Набор флагов для настройки поведения. Может быть одиночным объектом `Flag` или коллекцией `Flags`.
|
||||
* ``aliases``: Список строковых псевдонимов для основного триггера.
|
||||
|
||||
**Атрибуты:**
|
||||
|
||||
.. py:attribute:: trigger
|
||||
|
||||
Основной триггер команды в виде строки. Используется для идентификации команды при парсинге пользовательского ввода.
|
||||
Основной триггер команды. Используется для её идентификации при обработке пользовательского ввода.
|
||||
|
||||
.. py:attribute:: description
|
||||
|
||||
Текстовое описание команды. Если не было передано при инициализации, содержит значение ``"Command without description"``.
|
||||
Текстовое описание команды. Если не передано, используется значение по умолчанию.
|
||||
|
||||
.. py:attribute:: registered_flags
|
||||
|
||||
Объект ``Flags``, содержащий все зарегистрированные флаги команды. Автоматически конвертируется из одиночного ``Flag`` в коллекцию при инициализации.
|
||||
Объект `Flags`, содержащий все зарегистрированные флаги. Автоматически конвертируется из одиночного `Flag` в коллекцию при инициализации.
|
||||
|
||||
.. py:attribute:: aliases
|
||||
|
||||
Список строк с альтернативными триггерами команды. Пустой список, если псевдонимы не заданы.
|
||||
Список строковых псевдонимов. Пуст, если псевдонимы не заданы.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -61,7 +58,7 @@ Command
|
||||
Регистрация команд
|
||||
------------------
|
||||
|
||||
Команды регистрируются в роутерах с помощью декоратора ``@router.command()``. После регистрации команда становится доступной пользователям для вызова.
|
||||
Команды регистрируются в роутерах с помощью декоратора ``@router.command()``, после чего становятся доступными для вызова.
|
||||
|
||||
**Базовый пример:**
|
||||
|
||||
@@ -78,7 +75,7 @@ Command
|
||||
Работа с псевдонимами
|
||||
---------------------
|
||||
|
||||
Псевдонимы позволяют вызывать один и тот же хэндлер разными триггерами, сохраняя при этом флаги команды и описание.
|
||||
Псевдонимы позволяют вызывать один и тот же обработчик разными триггерами, сохраняя флаги и описание команды.
|
||||
|
||||
**Пример с псевдонимами:**
|
||||
|
||||
@@ -115,26 +112,27 @@ Command
|
||||
InputCommand
|
||||
------------
|
||||
|
||||
Класс ``InputCommand`` представляет собой распаршенную команду, введенную пользователем. Это внутренний класс, который создается автоматически при парсинге пользовательского ввода. Непосредственная работа с данным классом возможна при создании кастомного хэндлера для обработки неизвестных команд.
|
||||
``InputCommand`` представляет собой обработанную команду, введённую пользователем. Этот внутренний класс создаётся автоматически при обработке пользовательского ввода. Прямая работа с ним возможна при создании пользовательского обработчика для неизвестных команд.
|
||||
|
||||
.. seealso ::
|
||||
Подробнее про кастомные хэндлеры обработки исключений ввода :ref:`тут <root_error_handling>`
|
||||
Подробнее о пользовательских обработчиках исключений см. :ref:`здесь <root_error_handling>`.
|
||||
|
||||
Создает экземпляр распарсенной команды.
|
||||
Создаёт экземпляр обработанной команды.
|
||||
|
||||
:param trigger: Триггер команды, извлеченный из пользовательского ввода
|
||||
:param input_flags: Флаги, переданные пользователем при вызове команды
|
||||
:param trigger: Триггер команды, извлечённый из пользовательского ввода.
|
||||
:param input_flags: Флаги, переданные пользователем.
|
||||
|
||||
**Атрибуты:**
|
||||
|
||||
.. py:attribute:: trigger
|
||||
:no-index:
|
||||
|
||||
Строковый триггер команды, введенный пользователем.
|
||||
Строковый триггер, введённый пользователем.
|
||||
|
||||
.. py:attribute:: input_flags
|
||||
:no-index:
|
||||
|
||||
Объект ``InputFlags``, содержащий все флаги, переданные с командой. Автоматически конвертируется из одиночного ``InputFlag`` в коллекцию.
|
||||
Объект `InputFlags`, содержащий все переданные с командой флаги. Автоматически конвертируется из одиночного `InputFlag` в коллекцию.
|
||||
|
||||
.. toctree ::
|
||||
:hidden:
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
InputFlag
|
||||
=========
|
||||
|
||||
Объект ``InputFlag`` представляет собой сущность флага введённой команды. Он создаётся в результате парсинга пользовательского ввода и содержит информацию о распознанном флаге, включая его имя, префикс, введённое значение и статус валидации.
|
||||
Объект `InputFlag` представляет собой флаг, введённый пользователем. Он создаётся в результате обработки пользовательского ввода и содержит информацию о распознанном флаге: его имя, префикс, значение и статус валидации.
|
||||
|
||||
.. seealso::
|
||||
|
||||
Документация по :ref:`Flag <root_api_command_flag>` — сущность флага, регистрируемого для последующей обработки.
|
||||
Документация по :ref:`Flag <root_api_command_flag>` — класс для регистрации флага.
|
||||
|
||||
Документация по :ref:`ValidationStatus <root_api_command_validation_status>` — статусы валидации флагов.
|
||||
|
||||
@@ -28,33 +28,34 @@ InputFlag
|
||||
|
||||
Создаёт новый объект введённого флага.
|
||||
|
||||
* ``name`` : Имя введённого флага (обязательный параметр)
|
||||
* ``prefix`` : Префикс флага. По умолчанию ``"--"``. Возможные значения: ``"-"``, ``"--"``, ``"---"``
|
||||
* ``input_value`` : Значение введённого флага. Может быть ``None`` если флаг не принимает значения
|
||||
* ``status`` : Статус валидации флага из перечисления ``ValidationStatus``
|
||||
* ``name``: Имя введённого флага.
|
||||
* ``prefix``: Префикс флага (``-``, ``--``, ``---``). По умолчанию ``--``.
|
||||
* ``input_value``: Значение, переданное с флагом. Может быть `None`.
|
||||
* ``status``: Статус валидации из перечисления `ValidationStatus`.
|
||||
|
||||
.. warning ::
|
||||
Экземпляры класса не предназначены для их прямого создания, они содержаться в контейнере :ref:`Response <root_api_response>`
|
||||
Экземпляры этого класса не предназначены для прямого создания. Они содержатся в объекте :ref:`Response <root_api_response>`.
|
||||
|
||||
**Атрибуты:**
|
||||
|
||||
.. py:attribute:: name
|
||||
:no-index:
|
||||
|
||||
Имя введённого флага в виде строки.
|
||||
Имя введённого флага.
|
||||
|
||||
.. py:attribute:: prefix
|
||||
:no-index:
|
||||
|
||||
Префикс флага. Один из: ``"-"``, ``"--"``, ``"---"``.
|
||||
Префикс флага: ``-``, ``--`` или ``---``.
|
||||
|
||||
.. py:attribute:: input_value
|
||||
|
||||
Значение, переданное с флагом в командной строке. Может быть ``None`` для флагов без значений.
|
||||
Значение, переданное с флагом. Может быть `None` для флагов без значений.
|
||||
|
||||
.. py:attribute:: status
|
||||
:no-index:
|
||||
|
||||
Статус валидации флага. Один из: ``ValidationStatus.VALID``, ``ValidationStatus.INVALID``, ``ValidationStatus.UNDEFINED``.
|
||||
Статус валидации флага: `ValidationStatus.VALID`, `ValidationStatus.INVALID` или `ValidationStatus.UNDEFINED`.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -76,11 +77,11 @@ string_entity
|
||||
@property
|
||||
string_entity(self) -> str
|
||||
|
||||
Возвращает строковое представление флага в формате ``prefix + name``.
|
||||
Возвращает строковое представление флага в формате `prefix + name`.
|
||||
|
||||
:return: Строковое представление флага
|
||||
|
||||
Это свойство объединяет префикс и имя флага в единую строку, которая представляет, как флаг был введён в командной строке.
|
||||
Это свойство объединяет префикс и имя в строку, представляющую флаг так, как он был введён в командной строке.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -101,9 +102,9 @@ __str__
|
||||
|
||||
__str__(self) -> str
|
||||
|
||||
Возвращает строковое представление введённого флага вместе с его значением.
|
||||
Возвращает строковое представление флага вместе с его значением.
|
||||
|
||||
:return: Строка в формате ``флаг значение``
|
||||
:return: Строка в формате `флаг значение`.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -121,9 +122,9 @@ __repr__
|
||||
|
||||
__repr__(self) -> str
|
||||
|
||||
Возвращает отладочное представление объекта введённого флага.
|
||||
Возвращает отладочное представление объекта.
|
||||
|
||||
:return: Строка в формате ``InputFlag<prefix=..., name=..., value=..., status=...>``
|
||||
:return: Строка в формате `InputFlag<prefix=..., name=..., value=..., status=...>`.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -141,13 +142,13 @@ __eq__
|
||||
|
||||
__eq__(self, other: object) -> bool
|
||||
|
||||
Сравнивает два введённых флага на равенство по их имени.
|
||||
Сравнивает два введённых флага на равенство по имени.
|
||||
|
||||
:param other: Объект для сравнения
|
||||
:return: ``True``, если имена флагов совпадают, иначе ``False``
|
||||
:raises NotImplementedError: Если ``other`` не является экземпляром ``InputFlag``
|
||||
:param other: Объект для сравнения.
|
||||
:return: `True`, если имена флагов совпадают, иначе `False`.
|
||||
:raises NotImplementedError: Если `other` не является экземпляром `InputFlag`.
|
||||
|
||||
Два введённых флага считаются равными, если их имена идентичны.
|
||||
Два введённых флага считаются равными, если их имена совпадают.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
|
||||
@@ -3,18 +3,18 @@
|
||||
InputFlags
|
||||
==========
|
||||
|
||||
Объект ``InputFlags`` представляет собой коллекцию введённых флагов команды в приложении ``Argenta``. Его основная задача — группировать и управлять набором флагов, которые были введены пользователем вместе с командой. ``InputFlags`` служит контейнером, который позволяет удобно извлекать, итерировать и проверять наличие введённых флагов, а также работать с их значениями и статусами валидации.
|
||||
`InputFlags` — это коллекция флагов, введённых пользователем. Её основная задача — группировать и управлять набором флагов, переданных вместе с командой. `InputFlags` служит контейнером, который позволяет удобно извлекать, итерировать и проверять наличие флагов, а также работать с их значениями и статусами валидации.
|
||||
|
||||
``InputFlags`` наследуется от базового класса ``BaseFlags`` и специализируется для работы с объектами типа ``InputFlag``. Этот класс автоматически создаётся системой при парсинге пользовательского ввода и передаётся в обработчики команд через объект ``Response``.
|
||||
`InputFlags` наследуется от `BaseFlags` и специализируется на работе с объектами типа `InputFlag`. Этот класс создаётся автоматически при обработке пользовательского ввода и передаётся в обработчики команд через объект `Response`.
|
||||
|
||||
.. seealso::
|
||||
|
||||
Документация по отдельным флагам (:ref:`Flag <root_api_command_flag>`, :ref:`InputFlag <root_api_command_input_flag>`)
|
||||
|
||||
Документация по :ref:`Flags <root_api_command_flags>` — коллекции зарегистрированных флагов команды
|
||||
|
||||
|
||||
Документация по :ref:`InputFlags <root_api_command_input_flags>` — коллекция обработанных флагов, введённых пользователем.
|
||||
|
||||
Документация по :ref:`Response <root_api_response>` — объект ответа, содержащий ``InputFlags``
|
||||
|
||||
|
||||
:ref:`Общая информация <root_flags>` о флагах и их использовании в приложении ``Argenta``
|
||||
|
||||
-----
|
||||
@@ -27,18 +27,19 @@ InputFlags
|
||||
|
||||
__init__(self, flags: list[InputFlag] | None = None) -> None
|
||||
|
||||
Создает новую коллекцию введённых флагов.
|
||||
Создаёт новую коллекцию введённых флагов.
|
||||
|
||||
* ``flags`` : Необязательный список введённых флагов типа ``InputFlag`` для инициализации коллекции. Если не указан, создается пустая коллекция.
|
||||
* ``flags``: Необязательный список флагов типа `InputFlag` для инициализации коллекции. Если не указан, создаётся пустая коллекция.
|
||||
|
||||
.. warning ::
|
||||
Экземпляры класса обычно не создаются напрямую. Они автоматически формируются системой при парсинге пользовательского ввода и доступны через атрибут ``input_flags`` объекта ``Response`` в обработчиках команд.
|
||||
Экземпляры этого класса обычно не создаются напрямую. Они автоматически формируются системой при обработке пользовательского ввода и доступны через атрибут `input_flags` объекта `Response`.
|
||||
|
||||
**Атрибуты:**
|
||||
|
||||
.. py:attribute:: flags
|
||||
:no-index:
|
||||
|
||||
Список всех введённых флагов типа ``InputFlag``. Пустой список, если флаги не были переданы при инициализации или пользователь не ввёл флагов с командой.
|
||||
Список всех введённых флагов типа `InputFlag`. Пуст, если флаги не были переданы при инициализации или пользователь не ввёл их с командой.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -59,12 +60,12 @@ get_flag_by_name
|
||||
|
||||
get_flag_by_name(self, name: str) -> InputFlag | None
|
||||
|
||||
Получает введённый флаг по его имени.
|
||||
Возвращает введённый флаг по имени.
|
||||
|
||||
:param name: Имя искомого флага (без префикса)
|
||||
:return: Объект ``InputFlag`` с указанным именем или ``None``, если флаг не найден
|
||||
:param name: Имя искомого флага (без префикса).
|
||||
:return: Объект `InputFlag` или `None`, если флаг не найден.
|
||||
|
||||
Метод выполняет поиск по списку ``flags`` и возвращает первый флаг с соответствующим именем. Поиск происходит по атрибуту ``name`` объекта ``InputFlag``, сравнивая только имена флагов, без учёта префикса.
|
||||
Метод выполняет поиск по списку `flags` и возвращает первый флаг с соответствующим именем (без учёта префикса).
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -82,15 +83,15 @@ add_flag
|
||||
|
||||
add_flag(self, flag: InputFlag) -> None
|
||||
|
||||
Добавляет один введённый флаг в коллекцию.
|
||||
Добавляет введённый флаг в коллекцию.
|
||||
|
||||
:param flag: Флаг типа ``InputFlag`` для добавления в коллекцию
|
||||
:return: None
|
||||
:param flag: Флаг типа `InputFlag` для добавления.
|
||||
:return: None.
|
||||
|
||||
Метод добавляет переданный флаг в конец списка ``flags``. Используется для динамического расширения набора флагов после создания коллекции.
|
||||
Метод добавляет флаг в конец списка `flags`. Используется для динамического расширения коллекции.
|
||||
|
||||
.. note::
|
||||
Этот метод используется редко, так как ``InputFlags`` обычно создаётся автоматически системой при парсинге пользовательского ввода. Однако он может быть полезен для тестирования или ручного создания коллекций флагов.
|
||||
Этот метод используется редко, так как `InputFlags` обычно создаётся автоматически. Однако он может быть полезен для тестирования или ручного создания коллекций.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -108,12 +109,12 @@ add_flags
|
||||
|
||||
add_flags(self, flags: list[InputFlag]) -> None
|
||||
|
||||
Добавляет список введённых флагов в коллекцию.
|
||||
Добавляет в коллекцию список введённых флагов.
|
||||
|
||||
:param flags: Список флагов типа ``InputFlag`` для добавления
|
||||
:return: None
|
||||
:param flags: Список флагов типа `InputFlag` для добавления.
|
||||
:return: None.
|
||||
|
||||
Метод расширяет текущую коллекцию, добавляя все флаги из переданного списка. Эффективен для пакетного добавления множества флагов.
|
||||
Метод расширяет коллекцию, добавляя в неё все флаги из переданного списка. Эффективен для пакетного добавления.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -134,11 +135,11 @@ __iter__
|
||||
|
||||
__iter__(self) -> Iterator[InputFlag]
|
||||
|
||||
Делает коллекцию итерируемой, позволяя использовать её в циклах.
|
||||
Делает коллекцию итерируемой для использования в циклах.
|
||||
|
||||
:return: Итератор по списку введённых флагов
|
||||
:return: Итератор по списку введённых флагов.
|
||||
|
||||
Позволяет перебирать все введённые флаги команды, что особенно полезно для проверки статусов валидации или обработки всех флагов.
|
||||
Позволяет перебирать все введённые флаги, что полезно для проверки их статусов или пакетной обработки.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -156,12 +157,12 @@ __getitem__
|
||||
|
||||
__getitem__(self, flag_index: int) -> InputFlag
|
||||
|
||||
Позволяет получать введённые флаги по индексу.
|
||||
Позволяет получать введённый флаг по индексу.
|
||||
|
||||
:param flag_index: Индекс флага в списке
|
||||
:return: Флаг с указанным индексом
|
||||
:param flag_index: Индекс флага в списке.
|
||||
:return: Флаг по указанному индексу.
|
||||
|
||||
Позволяет обращаться к флагам по их позиции в списке, что может быть полезно для обработки флагов в определённом порядке.
|
||||
Позволяет обращаться к флагам по их позиции, что может быть полезно для их обработки в определённом порядке.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -179,11 +180,11 @@ __bool__
|
||||
|
||||
__bool__(self) -> bool
|
||||
|
||||
Определяет, содержит ли коллекция какие-либо флаги.
|
||||
Определяет, содержит ли коллекция флаги.
|
||||
|
||||
:return: ``True``, если в коллекции есть хотя бы один флаг, иначе ``False``
|
||||
:return: `True`, если в коллекции есть хотя бы один флаг, иначе `False`.
|
||||
|
||||
Позволяет проверять наличие флагов в команде, что удобно для условной логики.
|
||||
Позволяет проверять наличие флагов в команде для условной логики.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -203,11 +204,11 @@ __eq__
|
||||
|
||||
Сравнивает две коллекции введённых флагов на равенство.
|
||||
|
||||
:param other: Объект для сравнения
|
||||
:return: ``True``, если коллекции равны, иначе ``False``
|
||||
:raises NotImplementedError: Если ``other`` не является экземпляром ``InputFlags``
|
||||
:param other: Объект для сравнения.
|
||||
:return: `True`, если коллекции равны, иначе `False`.
|
||||
:raises NotImplementedError: Если `other` не является экземпляром `InputFlags`.
|
||||
|
||||
Две коллекции считаются равными, если они содержат одинаковое количество флагов и все соответствующие флаги равны (сравнение происходит по правилам ``InputFlag.__eq__``, то есть по имени).
|
||||
Две коллекции считаются равными, если они содержат одинаковое количество флагов и все соответствующие флаги равны (сравнение по имени, см. `InputFlag.__eq__`).
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -225,13 +226,13 @@ __contains__
|
||||
|
||||
__contains__(self, ingressable_item: object) -> bool
|
||||
|
||||
Проверяет, содержится ли указанный введённый флаг в коллекции.
|
||||
Проверяет, содержится ли введённый флаг в коллекции.
|
||||
|
||||
:param ingressable_item: Объект ``InputFlag`` для проверки
|
||||
:return: ``True``, если флаг найден в коллекции, иначе ``False``
|
||||
:raises TypeError: Если ``ingressable_item`` не является экземпляром ``InputFlag``
|
||||
:param ingressable_item: Объект `InputFlag` для проверки.
|
||||
:return: `True`, если флаг найден, иначе `False`.
|
||||
:raises TypeError: Если `ingressable_item` не является экземпляром `InputFlag`.
|
||||
|
||||
Позволяет использовать оператор ``in`` для проверки наличия флага в коллекции.
|
||||
Позволяет использовать оператор `in` для проверки наличия флага в коллекции.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -247,7 +248,7 @@ __contains__
|
||||
Обработка всех флагов с проверкой статусов
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Пример демонстрирует, как итерироваться по всем введённым флагам и проверять их статусы валидации:
|
||||
Пример демонстрирует итерацию по всем введённым флагам с проверкой их статусов валидации:
|
||||
|
||||
.. literalinclude:: ../../../code_snippets/input_flags/snippet10.py
|
||||
:linenos:
|
||||
|
||||
@@ -4,18 +4,18 @@
|
||||
PossibleValues
|
||||
==============
|
||||
|
||||
Enum ``PossibleValues`` представляет собой перечисление, определяющее специальные режимы валидации значений флагов в приложении ``Argenta``. Его основная задача — предоставить стандартизированные константы для управления поведением флагов в отношении допустимых значений. ``PossibleValues`` используется в параметре ``possible_values`` класса ``Flag`` для определения того, может ли флаг принимать значения и какие ограничения на них накладываются.
|
||||
`PossibleValues` — это перечисление (`Enum`), которое определяет специальные режимы валидации для значений флагов. Его задача — предоставить стандартные константы для управления поведением флагов. `PossibleValues` используется в параметре `possible_values` класса `Flag`, чтобы указать, может ли флаг принимать значения и какие ограничения на них накладываются.
|
||||
|
||||
``PossibleValues`` наследуется от стандартного класса ``Enum`` и содержит два основных значения: ``NEITHER`` для флагов без значений и ``ALL`` для флагов, принимающих любые значения. Этот enum используется совместно со списками строк и регулярными выражениями для создания гибкой системы валидации флагов.
|
||||
`PossibleValues` наследуется от `Enum` и содержит два основных значения: `NEITHER` (для флагов без значений) и `ALL` (для флагов, принимающих любые значения). Это перечисление используется вместе со списками строк и регулярными выражениями для создания гибкой системы валидации.
|
||||
|
||||
.. note::
|
||||
Результат валидации значений введенных флагов можно получить через атрибут ``status`` у экземпляра ``InputFlag``. Подробнее :ref:`тут <root_api_command_input_flag>`
|
||||
Результат валидации доступен через атрибут `status` у экземпляра `InputFlag`. Подробнее см. :ref:`здесь <root_api_command_input_flag>`.
|
||||
|
||||
.. seealso::
|
||||
|
||||
Документация по :ref:`Flag <root_api_command_flag>` — сущности флага, использующей ``PossibleValues``
|
||||
Документация по :ref:`Flag <root_api_command_flag>` — класс флага, использующий `PossibleValues`.
|
||||
|
||||
Документация по :ref:`PredefinedFlags <root_api_command_flag_predefined_flags>` — предопределенным флагам с примерами использования ``PossibleValues``
|
||||
Документация по :ref:`PredefinedFlags <root_api_command_flag_predefined_flags>` — готовые флаги с примерами использования `PossibleValues`.
|
||||
|
||||
:ref:`Общая информация <root_flags>` о флагах и их использовании в приложении ``Argenta``
|
||||
|
||||
@@ -34,7 +34,7 @@ NEITHER
|
||||
|
||||
Указывает, что флаг **не должен** иметь значения.
|
||||
|
||||
Флаги с этим значением работают как булевы переключатели — их наличие в командной строке само по себе является информацией. Попытка передать значение такому флагу приведёт к ошибке валидации.
|
||||
Флаги с этим значением работают как булевы переключатели: их наличие в командной строке само по себе является информацией. Попытка передать такому флагу значение приведёт к ошибке валидации.
|
||||
|
||||
**Примеры флагов с** ``NEITHER``:
|
||||
|
||||
@@ -59,9 +59,9 @@ ALL
|
||||
|
||||
PossibleValues.ALL = 'ALL'
|
||||
|
||||
Указывает, что флаг может принимать **любое** значение без ограничений.
|
||||
Указывает, что флаг может принимать **любое** значение.
|
||||
|
||||
Флаги с этим значением являются универсальными и не накладывают никаких ограничений на передаваемые данные. Валидация всегда успешна для любой строки или её отсутствия.
|
||||
Флаги с этим значением универсальны и не накладывают ограничений на передаваемые данные. Валидация всегда будет успешной.
|
||||
|
||||
**Примеры флагов с** ``ALL``:
|
||||
|
||||
@@ -84,14 +84,14 @@ ALL
|
||||
Параметр possible_values
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
``PossibleValues`` используется в качестве одного из возможных типов для параметра ``possible_values`` при создании экземпляра ``Flag``.
|
||||
`PossibleValues` используется как один из возможных типов для параметра `possible_values` при создании экземпляра `Flag`.
|
||||
|
||||
**Доступные типы для** ``possible_values``:
|
||||
**Доступные типы для** `possible_values`:
|
||||
|
||||
1. ``PossibleValues.NEITHER`` — флаг без значения
|
||||
2. ``PossibleValues.ALL`` — флаг с любым значением (по умолчанию)
|
||||
3. ``list[str]`` — флаг с ограниченным набором допустимых значений
|
||||
4. ``Pattern[str]`` — флаг со значением, проверяемым регулярным выражением
|
||||
1. `PossibleValues.NEITHER`: флаг без значения.
|
||||
2. `PossibleValues.ALL`: флаг с любым значением (по умолчанию).
|
||||
3. `list[str]`: флаг с ограниченным набором значений.
|
||||
4. `Pattern[str]`: флаг со значением, проверяемым по регулярному выражению.
|
||||
|
||||
**Пример комбинированного использования:**
|
||||
|
||||
@@ -104,7 +104,7 @@ ALL
|
||||
Использование в PredefinedFlags
|
||||
-------------------------------
|
||||
|
||||
Многие предопределенные флаги используют ``PossibleValues.NEITHER``:
|
||||
Многие предопределённые флаги используют `PossibleValues.NEITHER`:
|
||||
|
||||
.. literalinclude:: ../../../code_snippets/possible_values/predefined.py
|
||||
:linenos:
|
||||
|
||||
@@ -3,21 +3,21 @@
|
||||
ValidationStatus
|
||||
================
|
||||
|
||||
Enum ``ValidationStatus`` представляет собой перечисление, определяющее состояние валидации значений флагов в приложении ``Argenta``. Его основная задача — предоставить стандартизированные константы для отображения результата проверки введённых пользователем флагов и их значений. ``ValidationStatus`` используется в атрибуте ``status`` класса ``InputFlag`` для информирования о том, прошёл ли флаг валидацию успешно.
|
||||
`ValidationStatus` — это перечисление (`Enum`), которое определяет состояние валидации флага. Его задача — предоставить стандартные константы для отображения результата проверки. `ValidationStatus` используется в атрибуте `status` класса `InputFlag`, чтобы сообщить, прошла ли валидация успешно.
|
||||
|
||||
``ValidationStatus`` наследуется от стандартного класса ``Enum`` и содержит три основных значения: ``VALID`` для корректных флагов, ``INVALID`` для некорректных флагов и ``UNDEFINED`` для незарегистрированных флагов.
|
||||
`ValidationStatus` наследуется от `Enum` и содержит три значения: `VALID` (корректный флаг), `INVALID` (некорректный) и `UNDEFINED` (незарегистрированный).
|
||||
|
||||
.. note::
|
||||
|
||||
Статус валидации устанавливается автоматически при создании экземпляра ``InputFlag`` на основе проверки через соответствующий ``Flag``.
|
||||
Статус валидации устанавливается автоматически при создании экземпляра `InputFlag` на основе правил, заданных в соответствующем `Flag`.
|
||||
|
||||
.. seealso::
|
||||
|
||||
Документация по :ref:`InputFlag <root_api_command_input_flag>` — сущности входного флага, использующей ``ValidationStatus``
|
||||
Документация по :ref:`InputFlag <root_api_command_input_flag>` — класс введённого флага, использующий `ValidationStatus`.
|
||||
|
||||
Документация по :ref:`Flag <root_api_command_flag>` — сущности флага с методом валидации
|
||||
Документация по :ref:`Flag <root_api_command_flag>` — класс флага с правилами валидации.
|
||||
|
||||
Документация по :ref:`PossibleValues <root_api_command_possible_values>` — типам допустимых значений флагов
|
||||
Документация по :ref:`PossibleValues <root_api_command_possible_values>` — типы допустимых значений.
|
||||
|
||||
-----
|
||||
|
||||
@@ -32,16 +32,16 @@ VALID
|
||||
|
||||
ValidationStatus.VALID = 'VALID'
|
||||
|
||||
Указывает, что флаг и его значение **прошли** валидацию успешно.
|
||||
Указывает, что флаг и его значение **прошли** валидацию.
|
||||
|
||||
Флаги с этим статусом полностью соответствуют правилам, заданным в параметре ``possible_values`` соответствующего ``Flag``. Такие флаги могут быть безопасно использованы в логике приложения без дополнительных проверок.
|
||||
Флаги с этим статусом соответствуют правилам, заданным в `possible_values` соответствующего `Flag`. Их можно безопасно использовать в логике приложения без дополнительных проверок.
|
||||
|
||||
**Условия получения статуса** ``VALID``:
|
||||
|
||||
* Флаг с ``PossibleValues.NEITHER`` передан без значения
|
||||
* Флаг с ``PossibleValues.ALL`` передан с любым значением или без него
|
||||
* Флаг со списком значений передан с одним из допустимых значений
|
||||
* Флаг с регулярным выражением передан со значением, соответствующим паттерну
|
||||
* Флаг с `PossibleValues.NEITHER` передан без значения.
|
||||
* Флаг с `PossibleValues.ALL` передан с любым значением или без него.
|
||||
* Значение флага входит в список разрешённых.
|
||||
* Значение флага соответствует регулярному выражению.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -61,14 +61,14 @@ INVALID
|
||||
|
||||
Указывает, что флаг или его значение **не прошли** валидацию.
|
||||
|
||||
Флаги с этим статусом нарушают правила, установленные в ``possible_values`` соответствующего ``Flag``. Такие флаги должны быть обработаны как ошибочные, и их использование может привести к некорректной работе приложения.
|
||||
Флаги с этим статусом нарушают правила, заданные в `possible_values` соответствующего `Flag`. Их следует обрабатывать как ошибочные.
|
||||
|
||||
**Условия получения статуса** ``INVALID``:
|
||||
|
||||
* Флаг с ``PossibleValues.NEITHER`` передан со значением
|
||||
* Флаг со списком значений передан с недопустимым значением
|
||||
* Флаг с регулярным выражением передан со значением, не соответствующим паттерну
|
||||
* Флаг требует значение, но передан без него (для определённых типов валидации)
|
||||
* Флаг с `PossibleValues.NEITHER` передан со значением.
|
||||
* Значение флага не входит в список разрешённых.
|
||||
* Значение флага не соответствует регулярному выражению.
|
||||
* Флаг требует значение, но передан без него.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
@@ -86,11 +86,11 @@ UNDEFINED
|
||||
|
||||
ValidationStatus.UNDEFINED = 'UNDEFINED'
|
||||
|
||||
Указывает, что флаг был введён, но не зарегистрирован.
|
||||
Указывает, что введённый флаг не был зарегистрирован в команде.
|
||||
|
||||
**Условия получения статуса** ``UNDEFINED``:
|
||||
|
||||
* Флаг был введён с любым значением, но не зарегистрирован
|
||||
* Введённый флаг не найден среди зарегистрированных для данной команды.
|
||||
|
||||
-----
|
||||
|
||||
@@ -101,7 +101,7 @@ UNDEFINED
|
||||
Комплексный пример валидации
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Пример демонстрирует использование всех статусов в реальном сценарии:
|
||||
Пример демонстрирует использование всех статусов в реальном сценарии.
|
||||
|
||||
.. literalinclude:: ../../../code_snippets/validation_status/comprehensive.py
|
||||
:linenos:
|
||||
|
||||
Reference in New Issue
Block a user