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:
PossibleValues.NEITHER: флаг без значения.PossibleValues.ALL: флаг с любым значением (по умолчанию).list[str]: флаг с ограниченным набором значений.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+$"))