mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 18:15:28 +03:00
ce7e24b924
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.
93 lines
4.2 KiB
ReStructuredText
93 lines
4.2 KiB
ReStructuredText
.. _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
|