mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
docs
This commit is contained in:
@@ -1,20 +1,19 @@
|
||||
from argenta import Command
|
||||
from argenta.command import Flag, Flags
|
||||
from argenta.command import Flag, Flags, Command
|
||||
|
||||
# Простая команда без флагов
|
||||
# Simple command without flags
|
||||
hello_cmd = Command("hello", description="Greet the user")
|
||||
|
||||
# Команда с описанием и псевдонимами
|
||||
# Command with description and aliases
|
||||
quit_cmd = Command("quit", description="Exit the application", aliases=["exit", "q"])
|
||||
|
||||
# Команда с флагами
|
||||
# Command with flags
|
||||
deploy_cmd = Command(
|
||||
"deploy",
|
||||
description="Deploy application to server",
|
||||
flags=Flags(
|
||||
[
|
||||
Flag("env", help="Environment name", possible_values=["dev", "prod"]),
|
||||
Flag("force", help="Force deployment"),
|
||||
Flag("env", possible_values=["dev", "prod"]),
|
||||
Flag("force"),
|
||||
]
|
||||
),
|
||||
aliases=["dep"],
|
||||
|
||||
@@ -4,7 +4,7 @@ router = Router(title="User Management")
|
||||
|
||||
|
||||
@router.command(Command("create-user", description="Create a new user account"))
|
||||
def handle_create_user(response):
|
||||
def handle_create_user(response: Response):
|
||||
print("Creating new user...")
|
||||
|
||||
|
||||
|
||||
@@ -10,9 +10,9 @@ router = Router(title="Server Management")
|
||||
description="Start the server",
|
||||
flags=Flags(
|
||||
[
|
||||
Flag("port", help="Server port", default="8080"),
|
||||
Flag("host", help="Server host", default="localhost"),
|
||||
Flag("debug", help="Enable debug mode"),
|
||||
Flag("port"),
|
||||
Flag("host"),
|
||||
Flag("debug"),
|
||||
]
|
||||
),
|
||||
aliases=["run"],
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
from argenta import Router, Command, Response
|
||||
|
||||
router = Router(title="System")
|
||||
|
||||
@router.command(Command(
|
||||
"shutdown",
|
||||
description="Shutdown the system",
|
||||
aliases=["poweroff", "halt", "stop"]
|
||||
))
|
||||
def handle_shutdown(response: Response):
|
||||
print("Shutting down the system...")
|
||||
@@ -1,6 +1,6 @@
|
||||
from argenta.command import Flags, PredefinedFlags
|
||||
|
||||
# Использование предопределенных флагов при создании команды
|
||||
# Using predefined flags when creating a command
|
||||
command_flags = Flags(
|
||||
[
|
||||
PredefinedFlags.HELP,
|
||||
@@ -9,7 +9,7 @@ command_flags = Flags(
|
||||
]
|
||||
)
|
||||
|
||||
# Использование сетевых флагов
|
||||
# Using Network Flags
|
||||
network_flags = Flags(
|
||||
[
|
||||
PredefinedFlags.HOST,
|
||||
@@ -17,7 +17,7 @@ network_flags = Flags(
|
||||
]
|
||||
)
|
||||
|
||||
# Валидация значений предопределенных флагов
|
||||
# Validating the values of predefined flags
|
||||
print(PredefinedFlags.HOST.validate_input_flag_value("192.168.1.1")) # True
|
||||
print(PredefinedFlags.HOST.validate_input_flag_value("invalid")) # False
|
||||
|
||||
@@ -25,11 +25,11 @@ 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
|
||||
|
||||
# Флаги без значений
|
||||
# Flags without values
|
||||
print(PredefinedFlags.HELP.validate_input_flag_value(None)) # True
|
||||
print(PredefinedFlags.HELP.validate_input_flag_value("something")) # False
|
||||
|
||||
# Проверка строковых представлений
|
||||
# Checking string representations
|
||||
print(PredefinedFlags.HELP.string_entity) # --help
|
||||
print(PredefinedFlags.SHORT_HELP.string_entity) # -H
|
||||
print(PredefinedFlags.HOST.string_entity) # --host
|
||||
|
||||
@@ -1,20 +1,19 @@
|
||||
import re
|
||||
|
||||
from argenta.command import Flag, PossibleValues
|
||||
|
||||
# Простой флаг с любыми значениями
|
||||
# Simple flag with any values
|
||||
verbose_flag = Flag(name="verbose")
|
||||
|
||||
# Флаг с коротким префиксом
|
||||
# Flag with short prefix
|
||||
short_flag = Flag(name="v", prefix="-")
|
||||
|
||||
# Флаг без значения
|
||||
# Flag that does not take a value
|
||||
help_flag = Flag(name="help", possible_values=PossibleValues.NEITHER)
|
||||
|
||||
# Флаг со списком допустимых значений
|
||||
# Flag with list of possible values
|
||||
format_flag = Flag(name="format", possible_values=["json", "xml", "csv"])
|
||||
|
||||
# Флаг с регулярным выражением для валидации
|
||||
# Flag with regexp for validation input value
|
||||
email_flag = Flag(
|
||||
name="email",
|
||||
possible_values=re.compile(r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"),
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
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
|
||||
@@ -3,10 +3,7 @@ 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
|
||||
print(help_flag) # --help
|
||||
|
||||
# Форматирование строк
|
||||
message = f"Use {help_flag} to see help"
|
||||
print(message) # Use --help to see help
|
||||
|
||||
@@ -3,10 +3,10 @@ from argenta.command import Flag
|
||||
verbose_flag = Flag(name="verbose", prefix="--")
|
||||
short_flag = Flag(name="v", prefix="-")
|
||||
|
||||
# Отладочное представление
|
||||
# Debug view
|
||||
print(repr(verbose_flag)) # Flag<prefix=--, name=verbose>
|
||||
print(repr(short_flag)) # Flag<prefix=-, name=v>
|
||||
|
||||
# В интерактивной консоли или отладчике
|
||||
# In an interactive console or debugger
|
||||
# >>> verbose_flag
|
||||
# Flag<prefix=--, name=verbose>
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
from argenta.command import Flag, PossibleValues
|
||||
|
||||
# Создание двух флагов с одинаковым именем и префиксом
|
||||
# Creating two flags with the same name and prefix
|
||||
flag1 = Flag(name="verbose", prefix="--")
|
||||
flag2 = Flag(name="verbose", prefix="--")
|
||||
|
||||
# Сравнение флагов
|
||||
# Flag comparison
|
||||
print(flag1 == flag2) # True
|
||||
|
||||
# Флаги с разными префиксами не равны
|
||||
# Flags with different prefixes are not equal
|
||||
flag3 = Flag(name="verbose", prefix="-")
|
||||
print(flag1 == flag3) # False
|
||||
|
||||
# Флаги с разными именами не равны
|
||||
# Flags with different names are not equal
|
||||
flag4 = Flag(name="help", prefix="--")
|
||||
print(flag1 == flag4) # False
|
||||
|
||||
# Разные possible_values не влияют на равенство
|
||||
# Different possible_values do not affect equality
|
||||
flag5 = Flag(name="verbose", prefix="--", possible_values=PossibleValues.NEITHER)
|
||||
flag6 = Flag(name="verbose", prefix="--", possible_values=["value1", "value2"])
|
||||
print(flag5 == flag6) # True (сравнение только по string_entity)
|
||||
print(flag5 == flag6)
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
from argenta.command.flag 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
|
||||
)
|
||||
@@ -1,8 +0,0 @@
|
||||
from argenta.command.flag import InputFlag, ValidationStatus
|
||||
|
||||
flag = InputFlag(
|
||||
name="verbose", prefix="-", input_value=None, status=ValidationStatus.VALID
|
||||
)
|
||||
|
||||
# Получение строкового представления флага
|
||||
print(flag.string_entity) # -verbose
|
||||
@@ -8,6 +8,6 @@ flag_without_value = InputFlag(
|
||||
name="help", prefix="-", input_value=None, status=ValidationStatus.VALID
|
||||
)
|
||||
|
||||
# Строковое представление включает значение
|
||||
# String representation includes value
|
||||
print(str(flag_with_value)) # --output result.txt
|
||||
print(str(flag_without_value)) # -help None
|
||||
|
||||
@@ -7,6 +7,6 @@ flag = InputFlag(
|
||||
status=ValidationStatus.VALID,
|
||||
)
|
||||
|
||||
# Отладочное представление объекта
|
||||
# Debug representation of the object
|
||||
print(repr(flag))
|
||||
# InputFlag<prefix='--', name='config', value='settings.json', status=ValidationStatus.VALID>
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
from argenta.command.flag 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("Флаги имеют одинаковое имя") # Выведется
|
||||
@@ -1,13 +1,5 @@
|
||||
from argenta.command import Flag, PossibleValues
|
||||
|
||||
# Создание флагов с любыми значениями
|
||||
output_flag = Flag(name="output", possible_values=PossibleValues.ALL)
|
||||
# Creating flags with any values
|
||||
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
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
import re
|
||||
|
||||
from argenta.command import Flag, PossibleValues
|
||||
|
||||
# Флаг без значения
|
||||
# Flag without value
|
||||
verbose_flag = Flag(name="verbose", possible_values=PossibleValues.NEITHER)
|
||||
|
||||
# Флаг с любым значением
|
||||
# Flag with any value
|
||||
output_flag = Flag(name="output", possible_values=PossibleValues.ALL)
|
||||
|
||||
# Флаг со списком допустимых значений
|
||||
# Flag with a list of valid values
|
||||
format_flag = Flag(name="format", possible_values=["json", "xml", "csv", "yaml"])
|
||||
|
||||
# Флаг с регулярным выражением
|
||||
# Flag with regular expression
|
||||
email_flag = Flag(name="email", possible_values=re.compile(r"^[\w\.-]+@[\w\.-]+\.\w+$"))
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
from argenta.command import Flag, PossibleValues
|
||||
|
||||
# Создание флагов без значений
|
||||
# Creating flags without values
|
||||
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
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
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 для валидации порта
|
||||
Reference in New Issue
Block a user