Flags¶
Flags — это коллекция флагов команды. Её основная задача — группировать и управлять набором флагов, зарегистрированных для конкретной команды. Flags служит контейнером, который позволяет удобно добавлять, извлекать, итерировать флаги и проверять их наличие.
См. также
Документация по отдельным флагам (Flag, InputFlag)
Документация по InputFlags — коллекция обработанных флагов, введённых пользователем.
Общая информация о флагах и их использовании в приложении Argenta
Инициализация¶
1__init__(self, flags: list[Flag] | None = None) -> None
Создаёт новую коллекцию флагов.
flags: Необязательный список флагов типаFlagдля инициализации коллекции. Если не указан, создаётся пустая коллекция.
Атрибуты:
- flags
Список всех зарегистрированных флагов типа
Flag.
Пример использования:
1import re
2from argenta.command import Command, Flag, Flags
3
4flags = Flags(
5 [
6 Flag("host", possible_values=re.compile(r"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$")),
7 Flag("port", possible_values=re.compile(r"^\d{1,5}$")),
8 ]
9)
10
11cmd = Command("start", description="Start the server", flags=flags)
Методы¶
add_flag¶
1add_flag(self, flag: Flag) -> None
Добавляет флаг в коллекцию.
- param flag:
Флаг типа
Flagдля добавления.- return:
None.
Используется для динамического расширения набора флагов.
Пример использования:
1from argenta.command import Flag, Flags
2
3flags: Flags = Flags()
4
5flags.add_flag(Flag("config"))
6flags.add_flag(Flag("debug"))
7flags.add_flag(Flag("log-level", possible_values=["INFO", "DEBUG", "ERROR"]))
8
9print(len(flags)) # 3
add_flags¶
1add_flags(self, flags: list[Flag]) -> None
Добавляет в коллекцию список флагов.
- param flags:
Список флагов типа
Flagдля добавления.- return:
None.
Метод расширяет коллекцию, добавляя в неё все флаги из переданного списка. Эффективен для пакетного добавления.
Пример использования:
1from argenta.command import Flag, Flags
2from argenta.command.flag.defaults import PredefinedFlags
3
4flags = Flags([PredefinedFlags.HOST])
5
6additional_flags = [
7 PredefinedFlags.PORT,
8 Flag("database"),
9 Flag("ssl"),
10 Flag("verbose"),
11]
12
13flags.add_flags(additional_flags)
14
15print(len(flags)) # 5
get_flag_by_name¶
1get_flag_by_name(self, name: str) -> Flag | None
Возвращает флаг по имени.
- param name:
Имя искомого флага.
- return:
Объект
FlagилиNone, если флаг не найден.
Метод возвращает флаг с соответствующим именем. Если флаг не найден, возвращается None.
Пример использования:
1from argenta.command import Flag, Flags
2from argenta.command.flag.defaults import PredefinedFlags
3
4
5flags = Flags([PredefinedFlags.HOST, PredefinedFlags.PORT, Flag("verbose")])
6
7host_flag = flags.get_flag_by_name("host")
8if host_flag:
9 print(f"Found flag: {host_flag.name}")
10
11unknown_flag = flags.get_flag_by_name("nonexistent")
12if unknown_flag is None:
13 print("Flag not found")