This commit is contained in:
2025-11-02 00:17:28 +03:00
parent acddb1fbc6
commit df7313912c
26 changed files with 501 additions and 566 deletions
+21 -23
View File
@@ -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: