.. _root_api_command_possible_values: PossibleValues ============== ``PossibleValues`` — это перечисление, которое определяет специальные режимы валидации для значений флагов. ``PossibleValues`` используется в параметре ``possible_values`` класса ``Flag``, чтобы указать, может ли флаг принимать значения и какие ограничения на них накладываются. ``PossibleValues`` содержит два основных значения: ``NEITHER`` (для флагов, которые не могут принимать значения) и ``ALL`` (для флагов, принимающих любые значения). Это перечисление используется вместе со списками строк и регулярными выражениями для создания гибкой системы валидации. .. note:: Результат валидации доступен через атрибут ``status`` у экземпляра ``InputFlag``. Подробнее см. :ref:`здесь `. .. seealso:: Документация по :ref:`Flag ` — класс флага, использующий ``PossibleValues``. Документация по :ref:`ValidationStatus ` — результат валидации ввёденного флага. :ref:`Общая информация ` о флагах и их использовании в приложении ``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