mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
add metrics concept
This commit is contained in:
+11
-68
@@ -1,85 +1,28 @@
|
||||
from argenta.router import Router
|
||||
from argenta.command import Command
|
||||
from argenta.response import Response
|
||||
from argenta.metrics import get_time_of_pre_cycle_setup
|
||||
from argenta.response.status import Status
|
||||
from argenta.command.flag import Flag
|
||||
from argenta.command.flags import Flags
|
||||
from argenta.command.flag import Flag, Flags
|
||||
from argenta.app import App
|
||||
from argenta.orchestrator import Orchestrator
|
||||
|
||||
# Создание маршрутизатора
|
||||
file_router = Router("Операции с файлами")
|
||||
|
||||
# Определение флагов для команды копирования
|
||||
copy_flags = Flags(
|
||||
Flag('source', '--'),
|
||||
Flag('destination', '--'),
|
||||
Flag('recursive', '--', False), # Булевый флаг без значения
|
||||
Flag('force', '-', False) # Короткий булевый флаг
|
||||
)
|
||||
@file_router.command(Command('case', aliases=['cp', 'ch']))
|
||||
def handler(response: Response):
|
||||
print('test')
|
||||
router = Router()
|
||||
|
||||
# Регистрация команды копирования
|
||||
@file_router.command(Command(
|
||||
trigger="ch",
|
||||
description="Копирование файлов",
|
||||
flags=copy_flags,
|
||||
aliases=["cp"]
|
||||
))
|
||||
def copy_files(response: Response):
|
||||
# Получаем значения корректных флагов
|
||||
source = None
|
||||
destination = None
|
||||
recursive = False
|
||||
force = False
|
||||
for i in range(10000):
|
||||
trigger = f"cmd{i}"
|
||||
|
||||
for flag in response.valid_flags:
|
||||
if flag.get_name() == "source":
|
||||
source = flag.get_value()
|
||||
elif flag.get_name() == "destination":
|
||||
destination = flag.get_value()
|
||||
elif flag.get_name() == "recursive":
|
||||
recursive = True
|
||||
elif flag.get_name() == "force":
|
||||
force = True
|
||||
|
||||
# Проверка обязательных параметров
|
||||
if not source or not destination:
|
||||
print("Ошибка: необходимо указать источник и назначение")
|
||||
return
|
||||
|
||||
print(f"Копирование из {source} в {destination}")
|
||||
if recursive:
|
||||
print("Рекурсивное копирование включено")
|
||||
if force:
|
||||
print("Принудительное копирование включено")
|
||||
|
||||
# Обработка неопределенных флагов
|
||||
if response.undefined_flags:
|
||||
print("\nПредупреждение: обнаружены незарегистрированные флаги:")
|
||||
for flag in response.undefined_flags:
|
||||
print(f" - {flag.get_name()}" +
|
||||
(f" = {flag.get_value()}" if flag.get_value() else ""))
|
||||
|
||||
# Обработка флагов с некорректными значениями
|
||||
if response.invalid_value_flags:
|
||||
print("\nПредупреждение: обнаружены флаги с некорректными значениями:")
|
||||
for flag in response.invalid_value_flags:
|
||||
print(f" - {flag.get_name()} = {flag.get_value()}")
|
||||
|
||||
# Принятие решения на основе статуса
|
||||
if response.status != Status.ALL_FLAGS_VALID:
|
||||
print("\nВыполнение с предупреждениями из-за проблем с флагами.")
|
||||
@router.command(Command(trigger, aliases=[f'dfs{i}', f'fds{i}']))
|
||||
def handler(response: Response):
|
||||
print(response.status)
|
||||
|
||||
|
||||
|
||||
app = App()
|
||||
app.include_router(file_router)
|
||||
orchestrator = Orchestrator()
|
||||
app = App(repeat_command_groups=False)
|
||||
app.include_router(router)
|
||||
|
||||
orchestrator.start_polling(app)
|
||||
print(get_time_of_pre_cycle_setup(app))
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user