PossibleValues

PossibleValues — это перечисление, которое определяет специальные режимы валидации для значений флагов. PossibleValues используется в параметре possible_values класса Flag, чтобы указать, может ли флаг принимать значения и какие ограничения на них накладываются.

PossibleValues содержит два основных значения: NEITHER (для флагов, которые не могут принимать значения) и ALL (для флагов, принимающих любые значения). Это перечисление используется вместе со списками строк и регулярными выражениями для создания гибкой системы валидации.

Примечание

Результат валидации доступен через атрибут status у экземпляра InputFlag. Подробнее см. здесь.

См. также

Документация по Flag — класс флага, использующий PossibleValues.

Документация по ValidationStatus — результат валидации ввёденного флага.

Общая информация о флагах и их использовании в приложении Argenta


NEITHER

1PossibleValues.NEITHER = 'NEITHER'

Указывает, что флаг не должен иметь значения.

Флаги с этим значением работают как булевы переключатели: их наличие в командной строке само по себе является информацией. Попытка передать такому флагу значение приведёт к ошибке валидации.

Примеры флагов с NEITHER:

  • --help — флаг справки

  • --verbose — флаг подробного вывода

  • --force — флаг принудительного выполнения

  • -A / --all — флаг выбора всех элементов

Пример использования:

1from argenta.command import Flag, PossibleValues
2
3# Creating flags without values
4help_flag = Flag(name="help", possible_values=PossibleValues.NEITHER)
5verbose_flag = Flag(name="verbose", possible_values=PossibleValues.NEITHER)
6force_flag = Flag(name="force", possible_values=PossibleValues.NEITHER)

ALL

1PossibleValues.ALL = 'ALL'

Указывает, что флаг может принимать любое значение.

Флаги с этим значением универсальны и не накладывают ограничений на передаваемые данные. Валидация всегда будет успешной.

Примеры флагов с ALL:

  • --message — произвольное текстовое сообщение

  • --name — произвольное имя

Пример использования:

1from argenta.command import Flag, PossibleValues
2
3# Creating flags with any values
4message_flag = Flag(name="message", possible_values=PossibleValues.ALL)
5name_flag = Flag(name="name", possible_values=PossibleValues.ALL)

Параметр possible_values

PossibleValues используется как один из возможных типов для параметра possible_values при создании экземпляра Flag.

Доступные типы для possible_values:

  1. PossibleValues.NEITHER: флаг без значения.

  2. PossibleValues.ALL: флаг с любым значением (по умолчанию).

  3. list[str]: флаг с ограниченным набором значений.

  4. Pattern[str]: флаг со значением, проверяемым по регулярному выражению.

Пример комбинированного использования:

 1import re
 2from argenta.command import Flag, PossibleValues
 3
 4# Flag without value
 5verbose_flag = Flag(name="verbose", possible_values=PossibleValues.NEITHER)
 6
 7# Flag with any value
 8output_flag = Flag(name="output", possible_values=PossibleValues.ALL)
 9
10# Flag with a list of valid values
11format_flag = Flag(name="format", possible_values=["json", "xml", "csv", "yaml"])
12
13# Flag with regular expression
14email_flag = Flag(name="email", possible_values=re.compile(r"^[\w\.-]+@[\w\.-]+\.\w+$"))