update docs

This commit is contained in:
2025-11-01 11:27:46 +03:00
parent c3395a3922
commit 0598f6e7a5
13 changed files with 246 additions and 8 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
from argenta import InputFlag, ValidationStatus
from argenta.command.flag import InputFlag, ValidationStatus
# Создание InputFlag с полным набором параметров
output_flag = InputFlag(
+1 -1
View File
@@ -1,4 +1,4 @@
from argenta import InputFlag, ValidationStatus
from argenta.command.flag import InputFlag, ValidationStatus
flag = InputFlag(
name="verbose",
+1 -1
View File
@@ -1,4 +1,4 @@
from argenta import InputFlag, ValidationStatus
from argenta.command.flag import InputFlag, ValidationStatus
flag_with_value = InputFlag(
name="output",
+1 -1
View File
@@ -1,4 +1,4 @@
from argenta import InputFlag, ValidationStatus
from argenta.command.flag import InputFlag, ValidationStatus
flag = InputFlag(
name="config",
+1 -1
View File
@@ -1,4 +1,4 @@
from argenta import InputFlag, ValidationStatus
from argenta.command.flag import InputFlag, ValidationStatus
flag1 = InputFlag(
name="debug",
@@ -0,0 +1,40 @@
from argenta.command.flag import Flag, InputFlag, ValidationStatus, PossibleValues
import re
# Создаём различные типы флагов
verbose_flag = Flag("verbose", possible_values=PossibleValues.NEITHER)
output_flag = Flag("output", possible_values=PossibleValues.ALL)
level_flag = Flag("level", possible_values=["1", "2", "3"])
pattern_flag = Flag("pattern", possible_values=re.compile(r'^[a-zA-Z]+$'))
# Создаём входные флаги с различными статусами
input_flags = [
# Валидные флаги
InputFlag("verbose", input_value=None, status=ValidationStatus.VALID),
InputFlag("output", input_value="result.txt", status=ValidationStatus.VALID),
InputFlag("level", input_value="2", status=ValidationStatus.VALID),
InputFlag("pattern", input_value="onlyletters", status=ValidationStatus.VALID),
# Невалидные флаги
InputFlag("verbose", input_value="true", status=ValidationStatus.INVALID),
InputFlag("level", input_value="4", status=ValidationStatus.INVALID),
InputFlag("pattern", input_value="123", status=ValidationStatus.INVALID),
# Неопределённые флаги
InputFlag("unknown", input_value="value", status=ValidationStatus.UNDEFINED),
]
# Обрабатываем все флаги
valid_count = invalid_count = undefined_count = 0
for flag in input_flags:
if flag.status == ValidationStatus.VALID:
valid_count += 1
elif flag.status == ValidationStatus.INVALID:
invalid_count += 1
elif flag.status == ValidationStatus.UNDEFINED:
undefined_count += 1
print(f"Валидных флагов: {valid_count}")
print(f"Невалидных флагов: {invalid_count}")
print(f"Неопределённых флагов: {undefined_count}")
@@ -0,0 +1,24 @@
from argenta import InputFlag, ValidationStatus
# Создание входных флагов с различными статусами
valid_flag = InputFlag(
"output",
input_value="/path/to/file.txt",
status=ValidationStatus.VALID
)
invalid_flag = InputFlag(
"count",
input_value="not-a-number",
status=ValidationStatus.INVALID
)
undefined_flag = InputFlag(
"experimental",
input_value="test",
status=ValidationStatus.UNDEFINED
)
flags = [valid_flag, invalid_flag, undefined_flag]
for flag in flags:
print(f"{flag.string_entity}: {flag.status.value}")
@@ -0,0 +1,15 @@
from argenta.command.flag import Flag, InputFlag, ValidationStatus, PossibleValues
# Создание флага без значения
help_flag = Flag("help", possible_values=PossibleValues.NEITHER)
# Создание некорректного входного флага (передано значение, когда не должно быть)
invalid_input = InputFlag("help", input_value="please", status=ValidationStatus.INVALID)
print(f"Флаг: {invalid_input.string_entity}")
print(f"Значение: {invalid_input.input_value}")
print(f"Статус: {invalid_input.status}") # Выведет: INVALID
# Также невалидным будет флаг с недопустимым значением из списка
mode_flag = Flag("mode", possible_values=["fast", "slow"])
invalid_mode = InputFlag("mode", input_value="medium", status=ValidationStatus.INVALID)
@@ -0,0 +1,31 @@
from argenta import InputFlag, ValidationStatus
def process_input_flag(input_flag: InputFlag) -> None:
"""Обрабатывает входной флаг в зависимости от его статуса валидации"""
if input_flag.status == ValidationStatus.VALID:
print(f"✓ Обрабатываем валидный флаг: {input_flag.string_entity}")
# Выполняем основную логику
execute_flag_logic(input_flag)
elif input_flag.status == ValidationStatus.INVALID:
print(f"✗ Ошибка валидации флага: {input_flag.string_entity}")
# Записываем ошибку и прекращаем выполнение
log_validation_error(input_flag)
elif input_flag.status == ValidationStatus.UNDEFINED:
print(f"? Неопределённый статус флага: {input_flag.string_entity}")
# Пытаемся провести валидацию или пропускаем
attempt_revalidation(input_flag)
def execute_flag_logic(flag: InputFlag) -> None:
"""Выполняет логику для валидного флага"""
pass
def log_validation_error(flag: InputFlag) -> None:
"""Записывает ошибку валидации в лог"""
pass
def attempt_revalidation(flag: InputFlag) -> None:
"""Пытается повторно провести валидацию"""
pass
@@ -0,0 +1,11 @@
from argenta import InputFlag, ValidationStatus
# Создание входного флага без определения статуса
undefined_input = InputFlag("unknown-flag", input_value="some-value", status=ValidationStatus.UNDEFINED)
print(f"Флаг: {undefined_input.string_entity}")
print(f"Значение: {undefined_input.input_value}")
print(f"Статус: {undefined_input.status.value}") # Выведет: UNDEFINED
# Или флаг, для которого валидация ещё не проводилась
pending_input = InputFlag("pending", input_value=None, status=ValidationStatus.UNDEFINED)
@@ -0,0 +1,11 @@
from argenta.command.flag import Flag, InputFlag, ValidationStatus
# Создание флага, который принимает только определённые значения
log_level_flag = Flag("log-level", possible_values=["debug", "info", "warning", "error"])
# Создание корректного входного флага
valid_input = InputFlag("log-level", input_value="debug", status=ValidationStatus.VALID)
print(f"Флаг: {valid_input.string_entity}")
print(f"Значение: {valid_input.input_value}")
print(f"Статус: {valid_input.status}") # Выведет: VALID