This commit is contained in:
2025-10-31 22:59:19 +03:00
parent 1f15b4c093
commit b0924a9e89
15 changed files with 431 additions and 5 deletions
+17
View File
@@ -0,0 +1,17 @@
from argenta import InputFlag, ValidationStatus
# Создание InputFlag с полным набором параметров
output_flag = InputFlag(
name="output",
prefix="--",
input_value="result.txt",
status=ValidationStatus.VALID
)
# Флаг без значения
help_flag = InputFlag(
name="help",
prefix="-",
input_value=None,
status=ValidationStatus.VALID
)
+11
View File
@@ -0,0 +1,11 @@
from argenta import InputFlag, ValidationStatus
flag = InputFlag(
name="verbose",
prefix="-",
input_value=None,
status=ValidationStatus.VALID
)
# Получение строкового представления флага
print(flag.string_entity) # -verbose
+19
View File
@@ -0,0 +1,19 @@
from argenta import InputFlag, ValidationStatus
flag_with_value = InputFlag(
name="output",
prefix="--",
input_value="result.txt",
status=ValidationStatus.VALID
)
flag_without_value = InputFlag(
name="help",
prefix="-",
input_value=None,
status=ValidationStatus.VALID
)
# Строковое представление включает значение
print(str(flag_with_value)) # --output result.txt
print(str(flag_without_value)) # -help None
+12
View File
@@ -0,0 +1,12 @@
from argenta import InputFlag, ValidationStatus
flag = InputFlag(
name="config",
prefix="--",
input_value="settings.json",
status=ValidationStatus.VALID
)
# Отладочное представление объекта
print(repr(flag))
# InputFlag<prefix='--', name='config', value='settings.json', status=ValidationStatus.VALID>
+19
View File
@@ -0,0 +1,19 @@
from argenta import InputFlag, ValidationStatus
flag1 = InputFlag(
name="debug",
prefix="--",
input_value=None,
status=ValidationStatus.VALID
)
flag2 = InputFlag(
name="debug",
prefix="-",
input_value="true",
status=ValidationStatus.INVALID
)
# Сравнение по имени (префикс и значение не учитываются)
if flag1 == flag2:
print("Флаги имеют одинаковое имя") # Выведется
@@ -0,0 +1,13 @@
from argenta.command import Flag, PossibleValues
# Создание флагов с любыми значениями
output_flag = Flag(name="output", possible_values=PossibleValues.ALL)
message_flag = Flag(name="message", possible_values=PossibleValues.ALL)
name_flag = Flag(name="name", possible_values=PossibleValues.ALL)
# Можно передать любую строку или ничего
# Примеры:
# --output result.json
# --message "Any text here"
# --name "User Name"
# --message
@@ -0,0 +1,26 @@
from argenta.command import Flag, PossibleValues
import re
# Флаг без значения
verbose_flag = Flag(
name="verbose",
possible_values=PossibleValues.NEITHER
)
# Флаг с любым значением
output_flag = Flag(
name="output",
possible_values=PossibleValues.ALL
)
# Флаг со списком допустимых значений
format_flag = Flag(
name="format",
possible_values=["json", "xml", "csv", "yaml"]
)
# Флаг с регулярным выражением
email_flag = Flag(
name="email",
possible_values=re.compile(r"^[\w\.-]+@[\w\.-]+\.\w+$")
)
@@ -0,0 +1,10 @@
from argenta.command import Flag, PossibleValues
# Создание флагов без значений
help_flag = Flag(name="help", possible_values=PossibleValues.NEITHER)
verbose_flag = Flag(name="verbose", possible_values=PossibleValues.NEITHER)
force_flag = Flag(name="force", possible_values=PossibleValues.NEITHER)
# Такие флаги используются как переключатели
# Правильно: myapp --help
# Неправильно: myapp --help something
@@ -0,0 +1,10 @@
from argenta.command.flag.defaults import PredefinedFlags
# Проверка типа possible_values в предопределенных флагах
print(PredefinedFlags.HELP.possible_values) # PossibleValues.NEITHER
print(PredefinedFlags.INFO.possible_values) # PossibleValues.NEITHER
print(PredefinedFlags.ALL.possible_values) # PossibleValues.NEITHER
# Сетевые флаги используют регулярные выражения, а не PossibleValues
# PredefinedFlags.HOST использует Pattern для валидации IP
# PredefinedFlags.PORT использует Pattern для валидации порта