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")