mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
docs
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
from argenta.command import Flag, PossibleValues
|
||||
import re
|
||||
|
||||
# Простой флаг с любыми значениями
|
||||
verbose_flag = Flag(name="verbose")
|
||||
|
||||
# Флаг с коротким префиксом
|
||||
short_flag = Flag(name="v", prefix="-")
|
||||
|
||||
# Флаг без значения
|
||||
help_flag = Flag(name="help", possible_values=PossibleValues.NEITHER)
|
||||
|
||||
# Флаг со списком допустимых значений
|
||||
format_flag = Flag(
|
||||
name="format",
|
||||
possible_values=["json", "xml", "csv"]
|
||||
)
|
||||
|
||||
# Флаг с регулярным выражением для валидации
|
||||
email_flag = Flag(
|
||||
name="email",
|
||||
possible_values=re.compile(r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$")
|
||||
)
|
||||
@@ -0,0 +1,19 @@
|
||||
from argenta.command.flag.models import Flag, PossibleValues
|
||||
import re
|
||||
|
||||
# Флаг со списком допустимых значений
|
||||
format_flag = Flag(name="format", possible_values=["json", "xml", "csv"])
|
||||
|
||||
# Валидация значений
|
||||
print(format_flag.validate_input_flag_value("json")) # True
|
||||
print(format_flag.validate_input_flag_value("pdf")) # False
|
||||
|
||||
# Флаг без значения
|
||||
help_flag = Flag(name="help", possible_values=PossibleValues.NEITHER)
|
||||
print(help_flag.validate_input_flag_value(None)) # True
|
||||
print(help_flag.validate_input_flag_value("value")) # False
|
||||
|
||||
# Флаг с регулярным выражением
|
||||
port_flag = Flag(name="port", possible_values=re.compile(r"^\d{1,5}$"))
|
||||
print(port_flag.validate_input_flag_value("8080")) # True
|
||||
print(port_flag.validate_input_flag_value("abc")) # False
|
||||
@@ -0,0 +1,11 @@
|
||||
from argenta.command import Flag
|
||||
|
||||
# Создание флагов с разными префиксами
|
||||
verbose_flag = Flag(name="verbose", prefix="--")
|
||||
short_flag = Flag(name="v", prefix="-")
|
||||
triple_flag = Flag(name="debug", prefix="---")
|
||||
|
||||
# Получение строкового представления
|
||||
print(verbose_flag.string_entity) # --verbose
|
||||
print(short_flag.string_entity) # -v
|
||||
print(triple_flag.string_entity) # ---debug
|
||||
@@ -0,0 +1,12 @@
|
||||
from argenta.command import Flag
|
||||
|
||||
help_flag = Flag(name="help")
|
||||
version_flag = Flag(name="V", prefix="-")
|
||||
|
||||
# Использование str() или print()
|
||||
print(str(help_flag)) # --help
|
||||
print(version_flag) # -V
|
||||
|
||||
# Форматирование строк
|
||||
message = f"Use {help_flag} to see help"
|
||||
print(message) # Use --help to see help
|
||||
@@ -0,0 +1,12 @@
|
||||
from argenta.command import Flag
|
||||
|
||||
verbose_flag = Flag(name="verbose", prefix="--")
|
||||
short_flag = Flag(name="v", prefix="-")
|
||||
|
||||
# Отладочное представление
|
||||
print(repr(verbose_flag)) # Flag<prefix=--, name=verbose>
|
||||
print(repr(short_flag)) # Flag<prefix=-, name=v>
|
||||
|
||||
# В интерактивной консоли или отладчике
|
||||
# >>> verbose_flag
|
||||
# Flag<prefix=--, name=verbose>
|
||||
@@ -0,0 +1,21 @@
|
||||
from argenta.command import Flag, PossibleValues
|
||||
|
||||
# Создание двух флагов с одинаковым именем и префиксом
|
||||
flag1 = Flag(name="verbose", prefix="--")
|
||||
flag2 = Flag(name="verbose", prefix="--")
|
||||
|
||||
# Сравнение флагов
|
||||
print(flag1 == flag2) # True
|
||||
|
||||
# Флаги с разными префиксами не равны
|
||||
flag3 = Flag(name="verbose", prefix="-")
|
||||
print(flag1 == flag3) # False
|
||||
|
||||
# Флаги с разными именами не равны
|
||||
flag4 = Flag(name="help", prefix="--")
|
||||
print(flag1 == flag4) # False
|
||||
|
||||
# Разные possible_values не влияют на равенство
|
||||
flag5 = Flag(name="verbose", prefix="--", possible_values=PossibleValues.NEITHER)
|
||||
flag6 = Flag(name="verbose", prefix="--", possible_values=["value1", "value2"])
|
||||
print(flag5 == flag6) # True (сравнение только по string_entity)
|
||||
@@ -0,0 +1,11 @@
|
||||
from argenta.command import Flags, Flag
|
||||
|
||||
# Создание коллекции
|
||||
flags: Flags = Flags()
|
||||
|
||||
# Динамическое добавление флагов
|
||||
flags.add_flag(Flag("config"))
|
||||
flags.add_flag(Flag("debug"))
|
||||
flags.add_flag(Flag("log-level", possible_values=["INFO", "DEBUG", "ERROR"]))
|
||||
|
||||
print(len(flags.flags)) # 3
|
||||
@@ -0,0 +1,20 @@
|
||||
from argenta.command import Flags, Flag
|
||||
from argenta.command.flag.defaults import PredefinedFlags
|
||||
|
||||
# Начальная коллекция
|
||||
flags = Flags([
|
||||
PredefinedFlags.HOST
|
||||
])
|
||||
|
||||
# Дополнительные флаги
|
||||
additional_flags = [
|
||||
PredefinedFlags.PORT,
|
||||
Flag("database"),
|
||||
Flag("ssl"),
|
||||
Flag("verbose")
|
||||
]
|
||||
|
||||
# Добавление списка флагов
|
||||
flags.add_flags(additional_flags)
|
||||
|
||||
print(len(flags.flags)) # 5
|
||||
@@ -0,0 +1,18 @@
|
||||
from argenta.command import Flags, Flag
|
||||
from argenta.command.flag.defaults import PredefinedFlags
|
||||
|
||||
flags = Flags([
|
||||
PredefinedFlags.HOST,
|
||||
PredefinedFlags.PORT,
|
||||
Flag("verbose")
|
||||
])
|
||||
|
||||
# Получение флага по имени
|
||||
host_flag = flags.get_flag_by_name("host")
|
||||
if host_flag:
|
||||
print(f"Found flag: {host_flag.name}")
|
||||
|
||||
# Поиск несуществующего флага
|
||||
unknown_flag = flags.get_flag_by_name("nonexistent")
|
||||
if unknown_flag is None:
|
||||
print("Flag not found")
|
||||
@@ -0,0 +1,16 @@
|
||||
from argenta.command import Flags, Flag
|
||||
from argenta.command.flag.defaults import PredefinedFlags
|
||||
|
||||
flags = Flags([
|
||||
PredefinedFlags.HOST,
|
||||
PredefinedFlags.PORT,
|
||||
Flag("verbose")
|
||||
])
|
||||
|
||||
# Итерация по всем флагам
|
||||
for flag in flags:
|
||||
print(f"Flag: {flag.name} (type: {type(flag).__name__})")
|
||||
|
||||
# Использование в list comprehension
|
||||
flag_names = [flag.name for flag in flags]
|
||||
print(f"All flags: {flag_names}")
|
||||
@@ -0,0 +1,16 @@
|
||||
from argenta.command import Flags, Flag
|
||||
|
||||
flags = Flags([
|
||||
Flag("first"),
|
||||
Flag("second"),
|
||||
Flag("third")
|
||||
])
|
||||
|
||||
print(flags[0].name)
|
||||
# first
|
||||
|
||||
print(flags[1].name)
|
||||
# second
|
||||
|
||||
print(flags[2].name)
|
||||
# third
|
||||
@@ -0,0 +1,33 @@
|
||||
from argenta.command.flag.defaults import PredefinedFlags
|
||||
from argenta.command import Flags
|
||||
|
||||
# Использование предопределенных флагов при создании команды
|
||||
command_flags = Flags([
|
||||
PredefinedFlags.HELP,
|
||||
PredefinedFlags.SHORT_HELP,
|
||||
PredefinedFlags.INFO,
|
||||
])
|
||||
|
||||
# Использование сетевых флагов
|
||||
network_flags = Flags([
|
||||
PredefinedFlags.HOST,
|
||||
PredefinedFlags.PORT,
|
||||
])
|
||||
|
||||
# Валидация значений предопределенных флагов
|
||||
print(PredefinedFlags.HOST.validate_input_flag_value("192.168.1.1")) # True
|
||||
print(PredefinedFlags.HOST.validate_input_flag_value("invalid")) # False
|
||||
|
||||
print(PredefinedFlags.PORT.validate_input_flag_value("8080")) # True
|
||||
print(PredefinedFlags.PORT.validate_input_flag_value("99999")) # True
|
||||
print(PredefinedFlags.PORT.validate_input_flag_value("abc")) # False
|
||||
|
||||
# Флаги без значений
|
||||
print(PredefinedFlags.HELP.validate_input_flag_value(None)) # True
|
||||
print(PredefinedFlags.HELP.validate_input_flag_value("something")) # False
|
||||
|
||||
# Проверка строковых представлений
|
||||
print(PredefinedFlags.HELP.string_entity) # --help
|
||||
print(PredefinedFlags.SHORT_HELP.string_entity) # -H
|
||||
print(PredefinedFlags.HOST.string_entity) # --host
|
||||
print(PredefinedFlags.SHORT_PORT.string_entity) # -P
|
||||
Reference in New Issue
Block a user