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:
@@ -1,27 +0,0 @@
|
||||
from mock.mock_app.handlers.routers import work_router
|
||||
|
||||
from argenta.app import App
|
||||
from argenta.app.defaults import PredefinedMessages
|
||||
from argenta.app.autocompleter import AutoCompleter
|
||||
from argenta.orchestrator import Orchestrator
|
||||
from argenta.orchestrator.argparser import ArgParser
|
||||
from argenta.orchestrator.argparser.arguments import BooleanArgument
|
||||
|
||||
|
||||
arg_parser = ArgParser(processed_args=[BooleanArgument("repeat")])
|
||||
app: App = App(autocompleter=AutoCompleter(".hist"))
|
||||
orchestrator: Orchestrator = Orchestrator()
|
||||
|
||||
|
||||
def main():
|
||||
app.include_router(work_router)
|
||||
|
||||
app.add_message_on_startup(PredefinedMessages.USAGE)
|
||||
app.add_message_on_startup(PredefinedMessages.AUTOCOMPLETE)
|
||||
app.add_message_on_startup(PredefinedMessages.HELP)
|
||||
|
||||
orchestrator.start_polling(app)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
+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))
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
from rich.console import Console
|
||||
|
||||
|
||||
console = Console()
|
||||
|
||||
|
||||
def help_command():
|
||||
console.print(
|
||||
"[italic bold]The main functionality of the script is to convert an expression from a string "
|
||||
"to a mathematical one and then calculate this expression. "
|
||||
"Project GitHub: https://github.com/koloideal/WordMath[/italic bold]"
|
||||
)
|
||||
@@ -1,4 +1,4 @@
|
||||
from mock.mock_app.handlers.routers import work_router
|
||||
from mock.mock_app.routers import work_router
|
||||
|
||||
from argenta.app import App
|
||||
from argenta.app.defaults import PredefinedMessages
|
||||
|
||||
@@ -2,7 +2,7 @@ from rich.console import Console
|
||||
|
||||
from argenta.command import Command
|
||||
from argenta.command.flag.defaults import PredefinedFlags
|
||||
from argenta.command.flags import Flags
|
||||
from argenta.command.flag import Flags
|
||||
from argenta.response import Response
|
||||
from argenta.router import Router
|
||||
|
||||
Reference in New Issue
Block a user