mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
docs
This commit is contained in:
@@ -3,21 +3,20 @@ from argenta.command import Flag, Flags
|
||||
|
||||
router = Router(title="Example")
|
||||
|
||||
@router.command(Command(
|
||||
"example",
|
||||
description="Example command with flags",
|
||||
flags=Flags([
|
||||
Flag("name"),
|
||||
Flag("age")
|
||||
])
|
||||
))
|
||||
|
||||
@router.command(
|
||||
Command(
|
||||
"example",
|
||||
description="Example command with flags",
|
||||
flags=Flags([Flag("name"), Flag("age")]),
|
||||
)
|
||||
)
|
||||
def example_handler(response: Response):
|
||||
# response.input_flags содержит коллекцию InputFlags
|
||||
input_flags = response.input_flags
|
||||
|
||||
|
||||
# Проверяем наличие флагов
|
||||
if input_flags:
|
||||
print(f"Received {len(input_flags.flags)} flag(s)")
|
||||
else:
|
||||
print("No flags provided")
|
||||
|
||||
|
||||
@@ -4,25 +4,30 @@ from argenta.command.flag import ValidationStatus
|
||||
|
||||
router = Router(title="Comprehensive Example")
|
||||
|
||||
@router.command(Command(
|
||||
"validate",
|
||||
description="Validate all flags",
|
||||
flags=Flags([
|
||||
Flag("format", possible_values=["json", "xml"]),
|
||||
Flag("output"),
|
||||
Flag("force")
|
||||
])
|
||||
))
|
||||
|
||||
@router.command(
|
||||
Command(
|
||||
"validate",
|
||||
description="Validate all flags",
|
||||
flags=Flags(
|
||||
[
|
||||
Flag("format", possible_values=["json", "xml"]),
|
||||
Flag("output"),
|
||||
Flag("force"),
|
||||
]
|
||||
),
|
||||
)
|
||||
)
|
||||
def validate_handler(response: Response):
|
||||
input_flags = response.input_flags
|
||||
|
||||
|
||||
# Итерируемся по всем флагам и проверяем их статусы
|
||||
print("Flag validation results:")
|
||||
|
||||
|
||||
valid_flags = []
|
||||
invalid_flags = []
|
||||
undefined_flags = []
|
||||
|
||||
|
||||
for flag in input_flags:
|
||||
if flag.status == ValidationStatus.VALID:
|
||||
valid_flags.append(flag)
|
||||
@@ -33,16 +38,15 @@ def validate_handler(response: Response):
|
||||
elif flag.status == ValidationStatus.UNDEFINED:
|
||||
undefined_flags.append(flag)
|
||||
print(f" ? {flag.string_entity}: {flag.input_value} (UNDEFINED)")
|
||||
|
||||
|
||||
# Выводим сводку
|
||||
print("\nSummary:")
|
||||
print(f" Valid flags: {len(valid_flags)}")
|
||||
print(f" Invalid flags: {len(invalid_flags)}")
|
||||
print(f" Undefined flags: {len(undefined_flags)}")
|
||||
|
||||
|
||||
# Обрабатываем только валидные флаги
|
||||
if valid_flags:
|
||||
print("\nProcessing valid flags:")
|
||||
for flag in valid_flags:
|
||||
print(f" Processing {flag.name} = {flag.input_value}")
|
||||
|
||||
|
||||
@@ -3,34 +3,32 @@ from argenta.command import Flag, Flags
|
||||
|
||||
router = Router(title="Get Flag Example")
|
||||
|
||||
@router.command(Command(
|
||||
"config",
|
||||
description="Configure settings",
|
||||
flags=Flags([
|
||||
Flag("host"),
|
||||
Flag("port"),
|
||||
Flag("debug")
|
||||
])
|
||||
))
|
||||
|
||||
@router.command(
|
||||
Command(
|
||||
"config",
|
||||
description="Configure settings",
|
||||
flags=Flags([Flag("host"), Flag("port"), Flag("debug")]),
|
||||
)
|
||||
)
|
||||
def config_handler(response: Response):
|
||||
input_flags = response.input_flags
|
||||
|
||||
|
||||
# Получаем флаг по имени
|
||||
host_flag = input_flags.get_flag_by_name("host")
|
||||
port_flag = input_flags.get_flag_by_name("port")
|
||||
debug_flag = input_flags.get_flag_by_name("debug")
|
||||
|
||||
|
||||
if host_flag:
|
||||
print(f"Host: {host_flag.input_value}")
|
||||
|
||||
|
||||
if port_flag:
|
||||
print(f"Port: {port_flag.input_value}")
|
||||
|
||||
|
||||
if debug_flag:
|
||||
print("Debug mode enabled")
|
||||
|
||||
|
||||
# Если флаг не найден, get_flag_by_name вернёт None
|
||||
missing_flag = input_flags.get_flag_by_name("nonexistent")
|
||||
if missing_flag is None:
|
||||
print("Flag 'nonexistent' not found")
|
||||
|
||||
|
||||
@@ -3,20 +3,17 @@ from argenta.command.flag import InputFlag, InputFlags, ValidationStatus
|
||||
|
||||
router = Router(title="Add Flag Example")
|
||||
|
||||
|
||||
@router.command(Command("test", description="Test command"))
|
||||
def test_handler(response: Response):
|
||||
# Создаём новую коллекцию InputFlags
|
||||
new_flags = InputFlags()
|
||||
|
||||
|
||||
# Добавляем один флаг
|
||||
test_flag = InputFlag(
|
||||
name="test",
|
||||
prefix="--",
|
||||
input_value="value",
|
||||
status=ValidationStatus.VALID
|
||||
name="test", prefix="--", input_value="value", status=ValidationStatus.VALID
|
||||
)
|
||||
new_flags.add_flag(test_flag)
|
||||
|
||||
|
||||
print(f"Flags count: {len(new_flags.flags)}")
|
||||
print(f"First flag: {new_flags.flags[0].name}")
|
||||
|
||||
|
||||
@@ -5,24 +5,15 @@ flags = InputFlags()
|
||||
|
||||
# Создаём несколько флагов
|
||||
flag1 = InputFlag(
|
||||
name="option1",
|
||||
prefix="--",
|
||||
input_value="value1",
|
||||
status=ValidationStatus.VALID
|
||||
name="option1", prefix="--", input_value="value1", status=ValidationStatus.VALID
|
||||
)
|
||||
|
||||
flag2 = InputFlag(
|
||||
name="option2",
|
||||
prefix="--",
|
||||
input_value="value2",
|
||||
status=ValidationStatus.VALID
|
||||
name="option2", prefix="--", input_value="value2", status=ValidationStatus.VALID
|
||||
)
|
||||
|
||||
flag3 = InputFlag(
|
||||
name="option3",
|
||||
prefix="---",
|
||||
input_value="value3",
|
||||
status=ValidationStatus.VALID
|
||||
name="option3", prefix="---", input_value="value3", status=ValidationStatus.VALID
|
||||
)
|
||||
|
||||
# Добавляем все флаги одним вызовом
|
||||
@@ -31,4 +22,3 @@ flags.add_flags([flag1, flag2, flag3])
|
||||
print(f"Total flags: {len(flags.flags)}")
|
||||
for flag in flags:
|
||||
print(f" - {flag.string_entity}: {flag.input_value}")
|
||||
|
||||
|
||||
@@ -3,26 +3,24 @@ from argenta.command import Flag, Flags
|
||||
|
||||
router = Router(title="Iterate Example")
|
||||
|
||||
@router.command(Command(
|
||||
"process",
|
||||
description="Process with multiple flags",
|
||||
flags=Flags([
|
||||
Flag("file"),
|
||||
Flag("format"),
|
||||
Flag("output")
|
||||
])
|
||||
))
|
||||
|
||||
@router.command(
|
||||
Command(
|
||||
"process",
|
||||
description="Process with multiple flags",
|
||||
flags=Flags([Flag("file"), Flag("format"), Flag("output")]),
|
||||
)
|
||||
)
|
||||
def process_handler(response: Response):
|
||||
input_flags = response.input_flags
|
||||
|
||||
|
||||
# Итерируемся по всем введённым флагам
|
||||
print("All flags:")
|
||||
for flag in input_flags:
|
||||
status_str = flag.status.name if flag.status else "None"
|
||||
print(f" {flag.string_entity}: {flag.input_value} (status: {status_str})")
|
||||
|
||||
|
||||
# Также можно использовать enumerate для получения индексов
|
||||
print("\nFlags with indices:")
|
||||
for index, flag in enumerate(input_flags):
|
||||
print(f" [{index}] {flag.name}: {flag.input_value}")
|
||||
|
||||
|
||||
@@ -3,29 +3,27 @@ from argenta.command import Flag, Flags
|
||||
|
||||
router = Router(title="Index Access Example")
|
||||
|
||||
@router.command(Command(
|
||||
"example",
|
||||
description="Example with indexed access",
|
||||
flags=Flags([
|
||||
Flag("first"),
|
||||
Flag("second"),
|
||||
Flag("third")
|
||||
])
|
||||
))
|
||||
|
||||
@router.command(
|
||||
Command(
|
||||
"example",
|
||||
description="Example with indexed access",
|
||||
flags=Flags([Flag("first"), Flag("second"), Flag("third")]),
|
||||
)
|
||||
)
|
||||
def example_handler(response: Response):
|
||||
input_flags = response.input_flags
|
||||
|
||||
|
||||
# Получаем флаги по индексу
|
||||
if len(input_flags.flags) > 0:
|
||||
first_flag = input_flags[0]
|
||||
print(f"First flag: {first_flag.name} = {first_flag.input_value}")
|
||||
|
||||
|
||||
if len(input_flags.flags) > 1:
|
||||
second_flag = input_flags[1]
|
||||
print(f"Second flag: {second_flag.name} = {second_flag.input_value}")
|
||||
|
||||
|
||||
# Можно использовать срез для получения нескольких флагов
|
||||
if len(input_flags.flags) >= 2:
|
||||
first_two = input_flags.flags[:2]
|
||||
print(f"First two flags: {[f.name for f in first_two]}")
|
||||
|
||||
|
||||
@@ -3,17 +3,17 @@ from argenta.command import Flag, Flags
|
||||
|
||||
router = Router(title="Bool Check Example")
|
||||
|
||||
@router.command(Command(
|
||||
"action",
|
||||
description="Action with optional flags",
|
||||
flags=Flags([
|
||||
Flag("option1"),
|
||||
Flag("option2")
|
||||
])
|
||||
))
|
||||
|
||||
@router.command(
|
||||
Command(
|
||||
"action",
|
||||
description="Action with optional flags",
|
||||
flags=Flags([Flag("option1"), Flag("option2")]),
|
||||
)
|
||||
)
|
||||
def action_handler(response: Response):
|
||||
input_flags = response.input_flags
|
||||
|
||||
|
||||
# Проверяем наличие флагов
|
||||
if input_flags:
|
||||
print("Flags were provided:")
|
||||
@@ -21,8 +21,7 @@ def action_handler(response: Response):
|
||||
print(f" - {flag.name}: {flag.input_value}")
|
||||
else:
|
||||
print("No flags provided, using defaults")
|
||||
|
||||
|
||||
# Альтернативный способ проверки
|
||||
has_flags = bool(input_flags)
|
||||
print(f"\nHas flags: {has_flags}")
|
||||
|
||||
|
||||
@@ -2,29 +2,36 @@ from argenta.command.flag import InputFlag, ValidationStatus
|
||||
from argenta.command.flag.flags.models import InputFlags
|
||||
|
||||
# Создаём первую коллекцию
|
||||
flags1 = InputFlags([
|
||||
InputFlag(name="flag1", input_value="value1", status=ValidationStatus.VALID),
|
||||
InputFlag(name="flag2", input_value="value2", status=ValidationStatus.VALID)
|
||||
])
|
||||
flags1 = InputFlags(
|
||||
[
|
||||
InputFlag(name="flag1", input_value="value1", status=ValidationStatus.VALID),
|
||||
InputFlag(name="flag2", input_value="value2", status=ValidationStatus.VALID),
|
||||
]
|
||||
)
|
||||
|
||||
# Создаём вторую коллекцию с теми же флагами
|
||||
flags2 = InputFlags([
|
||||
InputFlag(name="flag1", input_value="value1", status=ValidationStatus.VALID),
|
||||
InputFlag(name="flag2", input_value="value2", status=ValidationStatus.VALID)
|
||||
])
|
||||
flags2 = InputFlags(
|
||||
[
|
||||
InputFlag(name="flag1", input_value="value1", status=ValidationStatus.VALID),
|
||||
InputFlag(name="flag2", input_value="value2", status=ValidationStatus.VALID),
|
||||
]
|
||||
)
|
||||
|
||||
# Создаём третью коллекцию с другими флагами
|
||||
flags3 = InputFlags([
|
||||
InputFlag(name="flag1", input_value="different", status=ValidationStatus.VALID),
|
||||
InputFlag(name="flag2", input_value="value2", status=ValidationStatus.VALID)
|
||||
])
|
||||
flags3 = InputFlags(
|
||||
[
|
||||
InputFlag(name="flag1", input_value="different", status=ValidationStatus.VALID),
|
||||
InputFlag(name="flag2", input_value="value2", status=ValidationStatus.VALID),
|
||||
]
|
||||
)
|
||||
|
||||
print(f"flags1 == flags2: {flags1 == flags2}") # True (одинаковые имена)
|
||||
print(f"flags1 == flags3: {flags1 == flags3}") # True (имена одинаковые, значения не учитываются)
|
||||
print(
|
||||
f"flags1 == flags3: {flags1 == flags3}"
|
||||
) # True (имена одинаковые, значения не учитываются)
|
||||
|
||||
# Разные коллекции
|
||||
flags4 = InputFlags([
|
||||
InputFlag(name="flag3", input_value="value3", status=ValidationStatus.VALID)
|
||||
])
|
||||
flags4 = InputFlags(
|
||||
[InputFlag(name="flag3", input_value="value3", status=ValidationStatus.VALID)]
|
||||
)
|
||||
print(f"flags1 == flags4: {flags1 == flags4}") # False (разные флаги)
|
||||
|
||||
|
||||
@@ -4,37 +4,30 @@ from argenta.command.flag import InputFlag
|
||||
|
||||
router = Router(title="Contains Example")
|
||||
|
||||
@router.command(Command(
|
||||
"check",
|
||||
description="Check flags",
|
||||
flags=Flags([
|
||||
Flag("verbose"),
|
||||
Flag("debug"),
|
||||
Flag("quiet")
|
||||
])
|
||||
))
|
||||
|
||||
@router.command(
|
||||
Command(
|
||||
"check",
|
||||
description="Check flags",
|
||||
flags=Flags([Flag("verbose"), Flag("debug"), Flag("quiet")]),
|
||||
)
|
||||
)
|
||||
def check_handler(response: Response):
|
||||
input_flags = response.input_flags
|
||||
|
||||
|
||||
# Проверяем наличие конкретного флага
|
||||
verbose_flag = input_flags.get_flag_by_name("verbose")
|
||||
debug_flag = input_flags.get_flag_by_name("debug")
|
||||
|
||||
|
||||
# Используем оператор in для проверки
|
||||
if verbose_flag and verbose_flag in input_flags:
|
||||
print("Verbose flag is present")
|
||||
|
||||
|
||||
if debug_flag and debug_flag in input_flags:
|
||||
print("Debug flag is present")
|
||||
|
||||
|
||||
# Можно создать флаг для проверки (сравнение идёт по имени)
|
||||
test_flag = InputFlag(
|
||||
name="verbose",
|
||||
prefix="--",
|
||||
input_value="any",
|
||||
status=None
|
||||
)
|
||||
|
||||
test_flag = InputFlag(name="verbose", prefix="--", input_value="any", status=None)
|
||||
|
||||
if test_flag in input_flags:
|
||||
print("Verbose flag found using 'in' operator")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user