Files
Argenta/docs/root/api/command/possible_values.rst
kolo ce7e24b924 feat: impl docs (#4)
The entire public api is covered with documentation in two languages - Russian and English.

the library now supports the latest three versions of python - 3.12, 3.13 and 3.14

minor design changes: now, when a Boolean flag is entered, its value is an empty string, not None.

tests have been adapted to the supported versions of python, readmi has been redesigned in two languages, German is no longer available.
2025-12-04 21:55:19 +03:00

93 lines
4.2 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
.. _root_api_command_possible_values:
PossibleValues
==============
``PossibleValues`` — это перечисление, которое определяет специальные режимы валидации для значений флагов. ``PossibleValues`` используется в параметре ``possible_values`` класса ``Flag``, чтобы указать, может ли флаг принимать значения и какие ограничения на них накладываются.
``PossibleValues`` содержит два основных значения: ``NEITHER`` (для флагов, которые не могут принимать значения) и ``ALL`` (для флагов, принимающих любые значения). Это перечисление используется вместе со списками строк и регулярными выражениями для создания гибкой системы валидации.
.. note::
Результат валидации доступен через атрибут ``status`` у экземпляра ``InputFlag``. Подробнее см. :ref:`здесь <root_api_command_input_flag>`.
.. seealso::
Документация по :ref:`Flag <root_api_command_flag>` — класс флага, использующий ``PossibleValues``.
Документация по :ref:`ValidationStatus <root_api_command_validation_status>` — результат валидации ввёденного флага.
:ref:`Общая информация <root_flags>` о флагах и их использовании в приложении ``Argenta``
-----
NEITHER
~~~~~~~
.. code-block:: python
:linenos:
PossibleValues.NEITHER = 'NEITHER'
Указывает, что флаг **не должен** иметь значения.
Флаги с этим значением работают как булевы переключатели: их наличие в командной строке само по себе является информацией. Попытка передать такому флагу значение приведёт к ошибке валидации.
**Примеры флагов с** ``NEITHER``:
* ``--help`` — флаг справки
* ``--verbose`` — флаг подробного вывода
* ``--force`` — флаг принудительного выполнения
* ``-A`` / ``--all`` — флаг выбора всех элементов
**Пример использования:**
.. literalinclude:: ../../../code_snippets/possible_values/neither.py
:linenos:
:language: python
-----
ALL
~~~
.. code-block:: python
:linenos:
PossibleValues.ALL = 'ALL'
Указывает, что флаг может принимать **любое** значение.
Флаги с этим значением универсальны и не накладывают ограничений на передаваемые данные. Валидация всегда будет успешной.
**Примеры флагов с** ``ALL``:
* ``--message`` — произвольное текстовое сообщение
* ``--name`` — произвольное имя
**Пример использования:**
.. literalinclude:: ../../../code_snippets/possible_values/all.py
:linenos:
:language: python
-----
Параметр possible_values
~~~~~~~~~~~~~~~~~~~~~~~~~
``PossibleValues`` используется как один из возможных типов для параметра ``possible_values`` при создании экземпляра ``Flag``.
**Доступные типы для** ``possible_values``:
1. ``PossibleValues.NEITHER``: флаг без значения.
2. ``PossibleValues.ALL``: флаг с любым значением (по умолчанию).
3. ``list[str]``: флаг с ограниченным набором значений.
4. ``Pattern[str]``: флаг со значением, проверяемым по регулярному выражению.
**Пример комбинированного использования:**
.. literalinclude:: ../../../code_snippets/possible_values/combined.py
:linenos:
:language: python