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
+10 -11
View File
@@ -3,21 +3,20 @@
Флаги вводимых команд
=====================
Флаги (или параметры) — это специальные аргументы, которые конечный юзер может добавлять к командам, чтобы управлять их поведением.
Флаги (или параметры) — это специальные аргументы, которые пользователь может добавлять к командам для управления их поведением.
-----
Синтаксис флагов
-----------------
Обобщённый синтаксис выглядит так:
Общий синтаксис выглядит так:
.. code-block:: py
<command_name> <flag_prefix: Literal['-', '--', '---']><flag_name> <flag_value: Optional>
То есть у флага обязательно должен быть префикс, который может быть одним, двумя или тремя минусами. После префикса следует имя флага, без
пробела, после чего, через пробел, идёт значение флага, если оно есть.
Флаг состоит из префикса (``-``, ``--`` или ``---``), имени и, опционально, значения, которое указывается через пробел.
-----
@@ -27,9 +26,9 @@
Флаги бывают двух основных видов: без значений (переключатели) и со значениями. ``Argenta`` позволяет регистрировать и вводить флаги обоих типов в любой последовательности для одной команды.
.. note::
Ошибки валидации значений являются пассивными, их не нужно обрабатывать явно. У каждого инстанса :ref:`InputFlag <root_api_command_input_flag>` есть поле ``status``, по которому можно определить результат валидации флага. **Конкретная реализация и описание API вы можете найти в разделе** :ref:`Flag <root_api_command_flag>`.
Ошибки валидации не выбрасывают исключений. Вместо этого у каждого объекта :ref:`InputFlag <root_api_command_input_flag>` есть атрибут ``status``, по которому можно определить, прошла ли валидация успешно. Подробное описание API для создания флагов находится в разделе :ref:`Flag <root_api_command_flag>`.
При регистрации флага вы можете указать допустимые для него значения, по умолчанию любое введённое значение для флага будет валидным. Допустимые значения можно указать различными способами:
При регистрации флага можно задать правила валидации для его значения. По умолчанию любое значение считается корректным. Валидацию можно настроить несколькими способами:
-----
@@ -48,7 +47,7 @@
# Эта команда сработает
export --format json
# А эта вызовет ошибку валидации, так как "csv" нет в списке разрешённых
# А эта команда не пройдёт валидацию, так как значение "csv" не входит в список разрешённых
export --format csv
-----
@@ -56,7 +55,7 @@
Проверка с помощью регулярных выражений
-----------------------------------------
Для более сложных проверок вы можете использовать регулярные выражения. Это особенно полезно, когда значение должно соответствовать определённому формату, например, быть email-адресом, датой или номером телефона.
Для более сложных проверок можно использовать регулярные выражения. Это полезно, когда значение должно соответствовать определённому формату (например, email-адрес, дата или номер телефона).
**Пример:**
@@ -65,10 +64,10 @@
.. code-block:: bash
:linenos:
# Сработает, так как значение соответствует формату email
# Эта команда выполнится, так как значение соответствует формату email
send --email "user@example.com"
# Вызовет ошибку валидации, так как "user_example.com" — некорректный email
# Эта команда не пройдёт валидацию, так как "user_example.com" — некорректный email
send --email "user_example.com"
Встроенная валидация избавляет вас от необходимости писать ручные проверки и делает ваш код более декларативным.
Встроенная валидация избавляет от необходимости писать проверки вручную и делает код более декларативным.