Response¶
Response — это объект, который передаётся в обработчик команды. Он создаётся автоматически при обработке пользовательского ввода и содержит статус валидации, введённые флаги.
См. также
Документация по InputFlags — коллекция введённых флагов команды.
Документация по ResponseStatus — статусы валидации флагов команды.
Документация по InputFlag — отдельный введённый флаг.
Инициализация¶
1__init__(
2 self, status: ResponseStatus,
3 input_flags: InputFlags = EMPTY_INPUT_FLAGS,
4)
Создаёт новый объект ответа.
status: Общий статус валидации флагов из перечисленияResponseStatus.input_flags: Коллекция введённых флагов (InputFlags). По умолчанию — пустая.
Предупреждение
Экземпляры этого класса не предназначены для прямого создания. Они автоматически формируются системой и передаются в обработчик команды в качестве первого обязательного аргумента.
Атрибуты:
- status
Общий статус валидации всех флагов команды (
ResponseStatus). Указывает, были ли среди введённых флагов некорректные или незарегистрированные.
- input_flags
Коллекция всех флагов, переданных с командой (
InputFlags). Содержит все обработанные флаги с их значениями и статусами валидации.
Пример использования:
1from argenta import Command, Response, Router
2from argenta.response import ResponseStatus
3
4router = Router(title="Example")
5
6
7@router.command(Command("greet", description="Greet the user"))
8def greet_handler(response: Response):
9 if response.status == ResponseStatus.ALL_FLAGS_VALID:
10 print("Hello! All flags are valid.")
11 else:
12 print("Warning: Some flags have issues.")
Работа с флагами¶
Response предоставляет доступ к введённым флагам через атрибут input_flags. Вы можете проверять их наличие, получать значения и статусы валидации.
Пример работы с флагами:
1from argenta import Command, Response, Router
2from argenta.command import Flag, Flags
3from argenta.command.flag import ValidationStatus
4from argenta.response import ResponseStatus
5
6router = Router(title="Flags Example")
7
8
9@router.command(
10 Command(
11 "process",
12 description="Process with flags",
13 flags=Flags([Flag("format", possible_values=["json", "xml"]), Flag("verbose")]),
14 )
15)
16def process_handler(response: Response):
17 print(f"Status: {response.status}")
18
19 format_flag = response.input_flags.get_flag_by_name("format")
20 verbose_flag = response.input_flags.get_flag_by_name("verbose")
21
22 if format_flag:
23 format_value = format_flag.input_value
24 print(f"Format: {format_value}")
25
26 if verbose_flag:
27 print("Verbose mode enabled")
28
29 if response.status == ResponseStatus.ALL_FLAGS_VALID:
30 print("All flags are valid, proceeding...")
31 elif response.status == ResponseStatus.INVALID_VALUE_FLAGS:
32 print("Warning: Some flags have invalid values")
33 for flag in response.input_flags:
34 if flag.status == ValidationStatus.INVALID:
35 print(f" Invalid flag: {flag.string_entity} = {flag.input_value}")
ResponseStatus¶
ResponseStatus — это перечисление, которое определяет общий статус валидации всех флагов команды. Используется в атрибуте status объекта Response.
ALL_FLAGS_VALID¶
1ResponseStatus.ALL_FLAGS_VALID = 'ALL_FLAGS_VALID'
Все введённые флаги прошли валидацию. Нет ни некорректных, ни незарегистрированных флагов.
UNDEFINED_FLAGS¶
1ResponseStatus.UNDEFINED_FLAGS = 'UNDEFINED_FLAGS'
Среди введённых флагов есть незарегистрированные, но нет флагов с некорректными значениями.
INVALID_VALUE_FLAGS¶
1ResponseStatus.INVALID_VALUE_FLAGS = 'INVALID_VALUE_FLAGS'
Среди введённых флагов есть флаги с некорректными значениями, но нет незарегистрированных.
UNDEFINED_AND_INVALID_FLAGS¶
1ResponseStatus.UNDEFINED_AND_INVALID_FLAGS = 'UNDEFINED_AND_INVALID_FLAGS'
Среди введённых флагов есть как незарегистрированные, так и флаги с некорректными значениями.