This commit is contained in:
2026-02-06 23:52:26 +03:00
parent f1034ff447
commit a21570e779
15 changed files with 420 additions and 125 deletions
@@ -0,0 +1,9 @@
from metrics.benchmarks.entity import benchmarks
@benchmarks.register(
type_="my_category",
description="Description of what is being measured"
)
def benchmark_my_operation() -> None:
# Code whose performance is being measured
pass
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-13 21:50+0300\n"
"POT-Creation-Date: 2026-02-06 23:44+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@@ -29,32 +29,32 @@ msgid ""
"взаимодействие с пользователем, координируя работу всех компонентов: "
"роутеров, обработчиков и системных сообщений."
msgstr ""
"The ``App`` object is the implementations of your console application. It handles "
"configuration, lifecycle management, command processing, and user "
"interaction, coordinating the work of all components: routers, handlers, "
"and system messages."
"The ``App`` object is the implementations of your console application. It"
" handles configuration, lifecycle management, command processing, and "
"user interaction, coordinating the work of all components: routers, "
"handlers, and system messages."
#: ../../root/api/app/index.rst:11
msgid "Инициализация"
msgstr "Initialization"
#: ../../root/api/app/index.rst:37
#: ../../root/api/app/index.rst:31
msgid "Создаёт и настраивает экземпляр приложения."
msgstr "Creates and configures an application instance."
#: ../../root/api/app/index.rst:39
#: ../../root/api/app/index.rst:33
msgid "``prompt``: Приглашение к вводу, отображаемое перед каждой командой."
msgstr "``prompt``: Input prompt displayed before each command."
#: ../../root/api/app/index.rst:40
#: ../../root/api/app/index.rst:34
msgid "``initial_message``: Сообщение, выводимое при запуске приложения."
msgstr "``initial_message``: Message displayed when the application starts."
#: ../../root/api/app/index.rst:41
#: ../../root/api/app/index.rst:35
msgid "``farewell_message``: Сообщение, выводимое при выходе из приложения."
msgstr "``farewell_message``: Message displayed when exiting the application."
#: ../../root/api/app/index.rst:42
#: ../../root/api/app/index.rst:36
msgid ""
"``exit_command``: Команда, которая маркируется как триггер для выхода из "
"приложения."
@@ -62,7 +62,7 @@ msgstr ""
"``exit_command``: Command that is marked as a trigger for exiting the "
"application."
#: ../../root/api/app/index.rst:43
#: ../../root/api/app/index.rst:37
msgid ""
"``system_router_title``: Заголовок для системного роутера (содержит "
"команду выхода)."
@@ -70,7 +70,7 @@ msgstr ""
"``system_router_title``: Title for the system router (contains the exit "
"command)."
#: ../../root/api/app/index.rst:44
#: ../../root/api/app/index.rst:38
msgid ""
"``dividing_line``: Тип разделительной линии (``StaticDividingLine`` или "
"``DynamicDividingLine``)."
@@ -78,7 +78,7 @@ msgstr ""
"``dividing_line``: Type of dividing line (``StaticDividingLine`` or "
"``DynamicDividingLine``)."
#: ../../root/api/app/index.rst:45
#: ../../root/api/app/index.rst:39
msgid ""
"``repeat_command_groups_printing``: Если ``True``, список доступных "
"команд выводится перед каждым вводом."
@@ -86,7 +86,7 @@ msgstr ""
"``repeat_command_groups_printing``: If ``True``, the list of available "
"commands is displayed before each input."
#: ../../root/api/app/index.rst:46
#: ../../root/api/app/index.rst:40
msgid ""
"``override_system_messages``: Если ``True``, стандартное форматирование "
"(цвета, ASCII-арт) отключается."
@@ -94,7 +94,7 @@ msgstr ""
"``override_system_messages``: If ``True``, standard formatting (colors, "
"ASCII art) is disabled."
#: ../../root/api/app/index.rst:47
#: ../../root/api/app/index.rst:41
msgid ""
"``autocompleter``: Экземпляр класса :ref:`AutoCompleter "
"<root_api_app_autocompleter>`, отвечающий за автодополнение команд."
@@ -103,29 +103,28 @@ msgstr ""
"<root_api_app_autocompleter>` class responsible for command "
"autocompletion."
#: ../../root/api/app/index.rst:48
msgid ""
"``print_func``: Функция для вывода всех системных сообщений (по умолчанию"
" ``rich.Console().print``)."
#: ../../root/api/app/index.rst:42
#, fuzzy
msgid "``printer``: Функция для вывода всех системных сообщений."
msgstr ""
"``print_func``: Function for outputting all system messages (defaults to "
"``rich.Console().print``)."
#: ../../root/api/app/index.rst:53
#: ../../root/api/app/index.rst:47
msgid ""
"В приложениях на Argenta регистр вводимых команд не важен, проверка на "
"существование и роутинг команд производится на основании триггеров, "
"приведённых к нижнему регистру."
msgstr ""
"In applications on Argenta, the case of the entered commands is not important, checking for the "
" existence and routing of commands is performed based on triggers "
"reduced to lowercase."
"In applications on Argenta, the case of the entered commands is not "
"important, checking for the existence and routing of commands is "
"performed based on triggers reduced to lowercase."
#: ../../root/api/app/index.rst:56
#: ../../root/api/app/index.rst:50
msgid "Основные методы"
msgstr "Main Methods"
#: ../../root/api/app/index.rst:60
#: ../../root/api/app/index.rst:54
msgid ""
"Регистрирует роутер в приложении. Все команды из этого роутера становятся"
" доступными для вызова."
@@ -137,19 +136,19 @@ msgstr ""
msgid "Parameters"
msgstr "Parameters"
#: ../../root/api/app/index.rst:62
#: ../../root/api/app/index.rst:56
msgid "Экземпляр ``Router`` для регистрации."
msgstr "``Router`` instance to register."
#: ../../root/api/app/index.rst:66
#: ../../root/api/app/index.rst:60
msgid "Регистрирует несколько роутеров одновременно."
msgstr "Registers multiple routers simultaneously."
#: ../../root/api/app/index.rst:68
#: ../../root/api/app/index.rst:62
msgid "Последовательность экземпляров ``Router`` для регистрации."
msgstr "Sequence of ``Router`` instances to register."
#: ../../root/api/app/index.rst:72
#: ../../root/api/app/index.rst:66
msgid ""
"Добавляет текстовое сообщение, которое выводится при запуске приложения "
"после ``initial_message``."
@@ -157,11 +156,11 @@ msgstr ""
"Adds a text message that is displayed when the application starts after "
"``initial_message``."
#: ../../root/api/app/index.rst:74
#: ../../root/api/app/index.rst:68
msgid "Строка с сообщением."
msgstr "String with the message."
#: ../../root/api/app/index.rst:77
#: ../../root/api/app/index.rst:71
msgid ""
"Для вывода стандартных сообщений можно использовать готовые шаблоны из "
":ref:`PredefinedMessages <root_api_predefined_messages>`."
@@ -169,11 +168,11 @@ msgstr ""
"For outputting standard messages, you can use ready-made templates from "
":ref:`PredefinedMessages <root_api_predefined_messages>`."
#: ../../root/api/app/index.rst:82
#: ../../root/api/app/index.rst:76
msgid "Методы установки обработчиков"
msgstr "Handler Setup Methods"
#: ../../root/api/app/index.rst:84
#: ../../root/api/app/index.rst:78
msgid ""
"``App`` позволяет настраивать реакцию на различные события, такие как "
"ошибки ввода или неизвестные команды."
@@ -181,7 +180,7 @@ msgstr ""
"``App`` allows you to configure responses to various events, such as "
"input errors or unknown commands."
#: ../../root/api/app/index.rst:87
#: ../../root/api/app/index.rst:81
msgid ""
"Подробнее об исключениях и их обработке в соответствующем :ref:`разделе "
"документации <root_error_handling>`."
@@ -189,59 +188,59 @@ msgstr ""
"For more details on exceptions and their handling, see the corresponding "
":ref:`documentation section <root_error_handling>`."
#: ../../root/api/app/index.rst:93
#: ../../root/api/app/index.rst:87
msgid "Устанавливает шаблон для форматирования описания команды."
msgstr "Sets the template for formatting command descriptions."
#: ../../root/api/app/index.rst:95
#: ../../root/api/app/index.rst:89
msgid "Обработчик принимает триггер команды (``str``) и её описание (``str``)."
msgstr ""
"The handler accepts the command trigger (``str``) and its description "
"(``str``)."
#: ../../root/api/app/index.rst:101
#: ../../root/api/app/index.rst:95
msgid "Устанавливает обработчик при некорректном введённом синтаксисе флагов."
msgstr "Sets the handler for incorrect flag syntax input."
#: ../../root/api/app/index.rst:103 ../../root/api/app/index.rst:111
#: ../../root/api/app/index.rst:97 ../../root/api/app/index.rst:105
msgid "Обработчик принимает строку, введённую пользователем."
msgstr "The handler accepts the string entered by the user."
#: ../../root/api/app/index.rst:109
#: ../../root/api/app/index.rst:103
msgid "Устанавливает обработчик при повторяющихся флагах в введённой команде."
msgstr "Sets the handler for duplicate flags in the entered command."
#: ../../root/api/app/index.rst:117
#: ../../root/api/app/index.rst:111
msgid "Устанавливает обработчик при вводе неизвестной команды."
msgstr "Sets the handler for entering an unknown command."
#: ../../root/api/app/index.rst:119
#: ../../root/api/app/index.rst:113
msgid "Обработчик принимает объект ``InputCommand`` - объект введённой команды."
msgstr ""
"The handler accepts an ``InputCommand`` object - the entered command "
"object."
#: ../../root/api/app/index.rst:125
#: ../../root/api/app/index.rst:119
msgid "Устанавливает обработчик при вводе пустой строки."
msgstr "Sets the handler for entering an empty string."
#: ../../root/api/app/index.rst:127
#: ../../root/api/app/index.rst:121
msgid "Обработчик не принимает аргументов."
msgstr "The handler accepts no arguments."
#: ../../root/api/app/index.rst:133
#: ../../root/api/app/index.rst:127
msgid "Переопределяет стандартное поведение при вызове команды выхода."
msgstr "Overrides the default behavior when the exit command is invoked."
#: ../../root/api/app/index.rst:135
#: ../../root/api/app/index.rst:129
msgid "Обработчик принимает объект ``Response``."
msgstr "The handler accepts a ``Response`` object."
#: ../../root/api/app/index.rst:148
#: ../../root/api/app/index.rst:142
msgid "PredefinedMessages"
msgstr "PredefinedMessages"
#: ../../root/api/app/index.rst:150
#: ../../root/api/app/index.rst:144
msgid ""
"``PredefinedMessages`` — это контейнер, содержащий набор готовых к "
"использованию сообщений. Они отформатированы с использованием синтаксиса "
@@ -252,31 +251,31 @@ msgstr ""
"messages. They are formatted using ``rich`` syntax and are intended for "
"displaying standard information, such as usage hints."
#: ../../root/api/app/index.rst:152
#: ../../root/api/app/index.rst:146
msgid "Рекомендуется использовать их при старте приложения."
msgstr "It is recommended to use them when starting the application."
#: ../../root/api/app/index.rst:179
#: ../../root/api/app/index.rst:173
msgid "Строка: ``[b dim]Usage[/b dim]: [i]<command> <[green]flags[/green]>[/i]``"
msgstr "String: ``[b dim]Usage[/b dim]: [i]<command> <[green]flags[/green]>[/i]``"
#: ../../root/api/app/index.rst:181
#: ../../root/api/app/index.rst:175
msgid "Отображается как: ``Usage: <command> <flags>``"
msgstr "Displayed as: ``Usage: <command> <flags>``"
#: ../../root/api/app/index.rst:185
#: ../../root/api/app/index.rst:179
msgid "Строка: ``[b dim]Help[/b dim]: [i]<command>[/i] [b red]--help[/b red]``"
msgstr "String: ``[b dim]Help[/b dim]: [i]<command>[/i] [b red]--help[/b red]``"
#: ../../root/api/app/index.rst:187
#: ../../root/api/app/index.rst:181
msgid "Отображается как: ``Help: <command> --help``"
msgstr "Displayed as: ``Help: <command> --help``"
#: ../../root/api/app/index.rst:191
#: ../../root/api/app/index.rst:185
msgid "Строка: ``[b dim]Autocomplete[/b dim]: [i]<part>[/i] [bold]<tab>``"
msgstr "String: ``[b dim]Autocomplete[/b dim]: [i]<part>[/i] [bold]<tab>``"
#: ../../root/api/app/index.rst:193
#: ../../root/api/app/index.rst:187
msgid "Отображается как: ``Autocomplete: <part> <tab>``"
msgstr "Displayed as: ``Autocomplete: <part> <tab>``"
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-02 22:29+0300\n"
"POT-Creation-Date: 2026-02-06 23:44+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@@ -30,10 +30,11 @@ msgid ""
"позволяет получать внешнюю конфигурацию в момент старта (например, путь к"
" файлу настроек, флаги отладки или режим запуска)."
msgstr ""
"``ArgParser`` is designed for processing **command-line arguments** passed to the "
"application at startup. It's important not to confuse them with flags that the user "
"enters in interactive mode. ``ArgParser`` allows receiving external configuration at "
"startup (e.g., path to settings file, debug flags, or launch mode)."
"``ArgParser`` is designed for processing **command-line arguments** "
"passed to the application at startup. It's important not to confuse them "
"with flags that the user enters in interactive mode. ``ArgParser`` allows"
" receiving external configuration at startup (e.g., path to settings "
"file, debug flags, or launch mode)."
#: ../../root/api/orchestrator/argparser.rst:11
msgid "Инициализация"
@@ -81,8 +82,9 @@ msgid ""
"экземпляр ``ArgParser``, атрибут ``parsed_argspace`` будет содержать "
"пустой ``ArgSpace``."
msgstr ""
"Before initializing ``Orchestrator``, to whose constructor an ``ArgParser`` instance "
"was passed, the ``parsed_argspace`` attribute will contain an empty ``ArgSpace``."
"Before initializing ``Orchestrator``, to whose constructor an "
"``ArgParser`` instance was passed, the ``parsed_argspace`` attribute will"
" contain an empty ``ArgSpace``."
#: ../../root/api/orchestrator/argparser.rst:40
msgid ""
@@ -90,8 +92,9 @@ msgid ""
"``Orchestrator``, поэтому использовать ``parsed_argspace`` "
"**целесообразно только после** этого."
msgstr ""
"Parsing and validation of arguments occur during ``Orchestrator`` initialization, "
"so using ``parsed_argspace`` is **advisable only after** that."
"Parsing and validation of arguments occur during ``Orchestrator`` "
"initialization, so using ``parsed_argspace`` is **advisable only after** "
"that."
#: ../../root/api/orchestrator/argparser.rst:45
msgid "Лучшие практики"
@@ -104,9 +107,10 @@ msgid ""
"``ArgSpace`` через DI. Подробнее см. :ref:`здесь "
"<root_dependency_injection>`."
msgstr ""
"Using the ``parsed_argspace`` attribute is recommended only during the application "
"setup phase. In handlers, the best practice is to obtain ``ArgSpace`` through DI. "
"For more details, see :ref:`here <root_dependency_injection>`."
"Using the ``parsed_argspace`` attribute is recommended only during the "
"application setup phase. In handlers, the best practice is to obtain "
"``ArgSpace`` through DI. For more details, see :ref:`here "
"<root_dependency_injection>`."
#: ../../root/api/orchestrator/argparser.rst:49
msgid "**Пример использования:**"
@@ -129,8 +133,8 @@ msgid ""
"При работе с аргументами командной строки стандартный ``ArgumentParser`` "
"автоматически обрабатывает следующие ситуации:"
msgstr ""
"When working with command-line arguments, the standard ``ArgumentParser`` "
"automatically handles the following situations:"
"When working with command-line arguments, the standard ``ArgumentParser``"
" automatically handles the following situations:"
#: ../../root/api/orchestrator/argparser.rst:63
msgid "**Отсутствие обязательного аргумента:**"
@@ -149,6 +153,12 @@ msgid ""
"При использовании аргумента с ``is_deprecated=True`` выводится "
"предупреждение, но выполнение продолжается:"
msgstr ""
"When using an argument with ``is_deprecated=True``, a warning is displayed, "
"but execution continues:"
"When using an argument with ``is_deprecated=True``, a warning is "
"displayed, but execution continues:"
#: ../../root/api/orchestrator/argparser.rst:90
msgid ""
"Параметр поддерживается начиная с версии CPython 3.13, если версия ниже, "
"то параметр будет игнорироваться."
msgstr ""
+293
View File
@@ -0,0 +1,293 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025, kolo
# This file is distributed under the same license as the Argenta package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2026.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-06 23:44+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
"Language-Team: en <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
#: ../../root/metrics.rst:2
msgid "Метрики"
msgstr "Metrics"
#: ../../root/metrics.rst:4
msgid ""
"Система метрик ``Argenta`` предоставляет инструменты для измерения "
"производительности ключевых компонентов библиотеки. Это позволяет "
"отслеживать регрессию/прогрессию производительности между релизами и "
"оптимизировать критические участки кода."
msgstr ""
"The ``Argenta`` metrics system provides tools for measuring the performance "
"of key library components. This allows tracking performance regression/progression "
"between releases and optimizing critical code sections."
#: ../../root/metrics.rst:9
msgid "Запуск метрик"
msgstr "Running Metrics"
#: ../../root/metrics.rst:11
msgid ""
"Для работы с метриками необходимо склонировать репозиторий и установить "
"зависимости:"
msgstr ""
"To work with metrics, you need to clone the repository and install "
"dependencies:"
#: ../../root/metrics.rst:19
msgid "Запуск системы метрик:"
msgstr "Running the metrics system:"
#: ../../root/metrics.rst:25
msgid ""
"После запуска откроется интерактивная сессия с доступными командами для "
"работы с бенчмарками."
msgstr ""
"After launch, an interactive session will open with available commands for "
"working with benchmarks."
#: ../../root/metrics.rst:30
msgid "Доступные команды"
msgstr "Available Commands"
#: ../../root/metrics.rst:33
msgid "run-all"
msgstr "run-all"
#: ../../root/metrics.rst:35
msgid ""
"Запускает все зарегистрированные бенчмарки и выводит результаты в виде "
"таблиц."
msgstr ""
"Runs all registered benchmarks and outputs results as tables."
#: ../../root/metrics.rst:37 ../../root/metrics.rst:55
#: ../../root/metrics.rst:78 ../../root/metrics.rst:97
#: ../../root/metrics.rst:117
msgid "**Синтаксис:**"
msgstr "**Syntax:**"
#: ../../root/metrics.rst:43 ../../root/metrics.rst:84
#: ../../root/metrics.rst:103
msgid "**Флаги:**"
msgstr "**Flags:**"
#: ../../root/metrics.rst:45
msgid ""
"``--without-gc`` — отключает сборщик мусора во время выполнения "
"бенчмарков для более стабильных результатов"
msgstr ""
"``--without-gc`` — disables garbage collector during benchmark execution "
"for more stable results"
#: ../../root/metrics.rst:46
msgid "``--without-system-info`` — скрывает информацию о системе в выводе"
msgstr "``--without-system-info`` — hides system information in output"
#: ../../root/metrics.rst:51
msgid "list-types"
msgstr "list-types"
#: ../../root/metrics.rst:53
msgid ""
"Выводит список всех доступных типов бенчмарков с количеством тестов в "
"каждой категории."
msgstr ""
"Displays a list of all available benchmark types with the number of tests "
"in each category."
#: ../../root/metrics.rst:61
msgid "**Пример вывода:**"
msgstr "**Example output:**"
#: ../../root/metrics.rst:74
msgid "run-type"
msgstr "run-type"
#: ../../root/metrics.rst:76
msgid "Запускает бенчмарки определённого типа."
msgstr "Runs benchmarks of a specific type."
#: ../../root/metrics.rst:86
msgid "``--type`` — тип бенчмарков для запуска (обязательный)"
msgstr "``--type`` — benchmark type to run (required)"
#: ../../root/metrics.rst:87 ../../root/metrics.rst:106
msgid "``--without-gc`` — отключает сборщик мусора"
msgstr "``--without-gc`` — disables garbage collector"
#: ../../root/metrics.rst:88
msgid "``--without-system-info`` — скрывает информацию о системе"
msgstr "``--without-system-info`` — hides system information"
#: ../../root/metrics.rst:93
msgid "diagrams-generate"
msgstr "diagrams-generate"
#: ../../root/metrics.rst:95
msgid ""
"Генерирует визуальные диаграммы сравнения производительности для всех "
"бенчмарков."
msgstr ""
"Generates visual performance comparison diagrams for all benchmarks."
#: ../../root/metrics.rst:105
msgid ""
"``--iterations`` — количество итераций для каждого бенчмарка (по "
"умолчанию 100)"
msgstr ""
"``--iterations`` — number of iterations for each benchmark (default 100)"
#: ../../root/metrics.rst:108
msgid ""
"Диаграммы сохраняются в директорию "
"``metrics/reports/diagrams/<timestamp>/``."
msgstr ""
"Diagrams are saved to the ``metrics/reports/diagrams/<timestamp>/`` directory."
#: ../../root/metrics.rst:113
msgid "release-generate"
msgstr "release-generate"
#: ../../root/metrics.rst:115
msgid ""
"Генерирует полный отчёт о производительности для текущей версии "
"библиотеки. Используется при подготовке релизов."
msgstr ""
"Generates a complete performance report for the current library version. "
"Used when preparing releases."
#: ../../root/metrics.rst:123
msgid "Команда автоматически:"
msgstr "The command automatically:"
#: ../../root/metrics.rst:125
msgid "Определяет текущую версию библиотеки"
msgstr "Determines the current library version"
#: ../../root/metrics.rst:126
msgid "Запускает все бенчмарки с 1000 итераций и отключённым GC"
msgstr "Runs all benchmarks with 1000 iterations and disabled GC"
#: ../../root/metrics.rst:127
msgid "Генерирует JSON-отчёты и диаграммы сравнения"
msgstr "Generates JSON reports and comparison diagrams"
#: ../../root/metrics.rst:128
msgid "Сохраняет результаты в ``metrics/reports/releases/<version>/``"
msgstr "Saves results to ``metrics/reports/releases/<version>/``"
#: ../../root/metrics.rst:133
msgid "Интерпретация результатов"
msgstr "Interpreting Results"
#: ../../root/metrics.rst:135
msgid "Результаты бенчмарков включают следующие метрики:"
msgstr "Benchmark results include the following metrics:"
#: ../../root/metrics.rst:137
msgid "**Среднее время (mean)**"
msgstr "**Mean time (mean)**"
#: ../../root/metrics.rst:138
msgid ""
"Среднее время выполнения операции. Основная метрика для сравнения "
"производительности."
msgstr ""
"Average operation execution time. The primary metric for performance comparison."
#: ../../root/metrics.rst:140
msgid "**Медиана (median)**"
msgstr "**Median (median)**"
#: ../../root/metrics.rst:141
msgid ""
"Медианное значение времени выполнения. Менее чувствительна к выбросам, "
"чем среднее."
msgstr ""
"Median execution time value. Less sensitive to outliers than the mean."
#: ../../root/metrics.rst:143
msgid "**Стандартное отклонение (std)**"
msgstr "**Standard deviation (std)**"
#: ../../root/metrics.rst:144
msgid ""
"Показывает стабильность измерений. Меньшее значение означает более "
"предсказуемую производительность."
msgstr ""
"Shows measurement stability. A lower value means more predictable performance."
#: ../../root/metrics.rst:149
msgid "Рекомендации по использованию"
msgstr "Usage Recommendations"
#: ../../root/metrics.rst:151
msgid "**Для оптимизации**"
msgstr "**For optimization**"
#: ../../root/metrics.rst:152
msgid ""
"Используйте ``run-type`` для фокусировки на конкретной области и "
"``--without-gc`` для более точных измерений."
msgstr ""
"Use ``run-type`` to focus on a specific area and ``--without-gc`` for more "
"accurate measurements."
#: ../../root/metrics.rst:154
msgid "**Для визуализации**"
msgstr "**For visualization**"
#: ../../root/metrics.rst:155
msgid ""
"Команда ``diagrams-generate`` создаёт наглядные графики, удобные для "
"презентаций и документации."
msgstr ""
"The ``diagrams-generate`` command creates clear charts suitable for "
"presentations and documentation."
#: ../../root/metrics.rst:157
msgid "**Для стабильных результатов**"
msgstr "**For stable results**"
#: ../../root/metrics.rst:158
msgid ""
"Закройте ресурсоёмкие приложения, используйте флаг ``--without-gc`` и "
"увеличивайте количество итераций через ``--iterations``."
msgstr ""
"Close resource-intensive applications, use the ``--without-gc`` flag, and "
"increase the number of iterations via ``--iterations``."
#: ../../root/metrics.rst:163
msgid "Добавление новых бенчмарков"
msgstr "Adding New Benchmarks"
#: ../../root/metrics.rst:165
msgid ""
"Вы можете реализовать свои бенчмарки для тестирования специфичных юнитов "
"библиотеки. Новые бенчмарки добавляются через декоратор "
"``@benchmarks.register``:"
msgstr ""
"You can implement your own benchmarks to test specific library units. "
"New benchmarks are added via the ``@benchmarks.register`` decorator:"
#: ../../root/metrics.rst:173
msgid ""
"Бенчмарк должен быть импортирован в ``metrics/benchmarks/__init__.py`` "
"для автоматической регистрации."
msgstr ""
"The benchmark must be imported in ``metrics/benchmarks/__init__.py`` for "
"automatic registration."
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-04 20:39+0300\n"
"POT-Creation-Date: 2026-02-06 23:44+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@@ -90,20 +90,20 @@ msgstr "Output Customization"
#: ../../root/overriding_formatting.rst:32
msgid ""
"Для полной замены логики вывода текста в конструкторе ``App`` "
"предусмотрен параметр ``print_func``."
"предусмотрен параметр ``printer``."
msgstr ""
"For complete replacement of text output logic, the ``App`` constructor "
"provides the ``print_func`` parameter."
"provides the ``printer`` parameter."
#: ../../root/overriding_formatting.rst:34
msgid ""
"**print_func**: ``Callable[[str], None]`` Этот параметр позволяет "
"передать любую вызываемую сущность (например, функцию), которая будет "
"**printer**: ``Callable[[str], None]`` Этот параметр позволяет передать "
"любую вызываемую сущность (например, функцию), которая будет "
"использоваться для вывода всех системных сообщений. По умолчанию это "
"``rich.console.Console().print``. Вы можете передать сюда свою функцию, "
"чтобы, например, логировать вывод в файл или отправлять его по сети."
msgstr ""
"**print_func**: ``Callable[[str], None]`` This parameter allows passing "
"**printer**: ``Callable[[str], None]`` This parameter allows passing "
"any callable entity (for example, a function) that will be used to output"
" all system messages. By default, this is "
"``rich.console.Console().print``. You can pass your own function here to,"
+3 -11
View File
@@ -164,17 +164,9 @@ release-generate
Вы можете реализовать свои бенчмарки для тестирования специфичных юнитов библиотеки. Новые бенчмарки добавляются через декоратор ``@benchmarks.register``:
.. code-block:: python
from metrics.benchmarks.entity import benchmarks
@benchmarks.register(
type_="my_category",
description="Description of what is being measured"
)
def benchmark_my_operation() -> None:
# Код, производительность которого измеряется
pass
.. literalinclude:: ../code_snippets/metrics/add_new_benchmark.py
:language: python
:linenos:
.. important::
+4 -3
View File
@@ -3,13 +3,14 @@ __all__ = ["AutoCompleter"]
import sys
from typing import Callable, Iterable
from prompt_toolkit import PromptSession, HTML
from prompt_toolkit import HTML, PromptSession
from prompt_toolkit.auto_suggest import AutoSuggestFromHistory
from prompt_toolkit.completion import Completer, Completion, CompleteEvent, ThreadedCompleter
from prompt_toolkit.completion import (CompleteEvent, Completer, Completion,
ThreadedCompleter)
from prompt_toolkit.cursor_shapes import CursorShape
from prompt_toolkit.document import Document
from prompt_toolkit.formatted_text import StyleAndTextTuples
from prompt_toolkit.history import History, ThreadedHistory, FileHistory, InMemoryHistory
from prompt_toolkit.history import FileHistory, History, InMemoryHistory, ThreadedHistory
from prompt_toolkit.key_binding import KeyBindings, KeyPressEvent
from prompt_toolkit.lexers import Lexer
from prompt_toolkit.styles import Style
+4 -8
View File
@@ -1,15 +1,11 @@
from rich.markup import escape
from argenta.response.entity import Response
from argenta.app.presentation.renderers import Renderer
from argenta.app.protocols import (
NonStandardBehaviorHandler,
EmptyCommandHandler,
Printer,
MostSimilarCommandGetter,
DescriptionMessageGenerator,
)
from argenta.app.protocols import (DescriptionMessageGenerator, EmptyCommandHandler,
MostSimilarCommandGetter, NonStandardBehaviorHandler,
Printer)
from argenta.command import InputCommand
from argenta.response.entity import Response
class BehaviorHandlersFabric:
+9 -13
View File
@@ -1,30 +1,26 @@
__all__ = ["App"]
from typing import Never, TypeAlias
import difflib
from typing import Never, TypeAlias
from rich.console import Console
from argenta.app.autocompleter import AutoCompleter
from argenta.app.behavior_handlers.models import (
BehaviorHandlersFabric,
BehaviorHandlersSettersMixin,
)
from argenta.app.presentation.renderers import PlainRenderer, RichRenderer, Renderer
from argenta.app.behavior_handlers.models import (BehaviorHandlersFabric,
BehaviorHandlersSettersMixin)
from argenta.app.dividing_line.models import DynamicDividingLine, StaticDividingLine
from argenta.app.presentation.renderers import PlainRenderer, Renderer, RichRenderer
from argenta.app.presentation.viewers import Viewer
from argenta.app.protocols import Printer
from argenta.app.registered_routers.entity import RegisteredRouters
from argenta.command.exceptions import (
InputCommandException,
RepeatedInputFlagsException,
UnprocessedInputFlagException,
)
from argenta.router.exceptions import RepeatedAliasNameException, RepeatedTriggerNameException
from argenta.command.exceptions import (InputCommandException,
RepeatedInputFlagsException,
UnprocessedInputFlagException)
from argenta.command.models import Command, InputCommand
from argenta.response import Response
from argenta.router import Router
from argenta.router.exceptions import (RepeatedAliasNameException,
RepeatedTriggerNameException)
Matches: TypeAlias = list[str] | list[Never]
+1 -1
View File
@@ -1,4 +1,4 @@
from .renderers import Renderer, RichRenderer, PlainRenderer
from .renderers import PlainRenderer, Renderer, RichRenderer
from .viewers import Viewer
__all__ = ["Renderer", "RichRenderer", "PlainRenderer", "Viewer"]
+3 -4
View File
@@ -3,16 +3,15 @@ __all__ = ["Viewer"]
import re
from contextlib import redirect_stdout
from io import StringIO
from typing import Iterable, Callable, TypeAlias
from typing import Callable, Iterable, TypeAlias
from rich.text import Text
from argenta.app import StaticDividingLine, DynamicDividingLine
from argenta.app import DynamicDividingLine, StaticDividingLine
from argenta.app.presentation.renderers import Renderer
from argenta.app.protocols import Printer, DescriptionMessageGenerator
from argenta.app.protocols import DescriptionMessageGenerator, Printer
from argenta.app.registered_routers.entity import RegisteredRouters
AVAILABLE_DIVIDING_LINES: TypeAlias = StaticDividingLine | DynamicDividingLine | None
+2 -1
View File
@@ -1,7 +1,8 @@
from argenta.command.flag import Flag as Flag
from argenta.command.flag.models import Flags as Flags, InputFlags as InputFlags
from argenta.command.flag import InputFlag as InputFlag
from argenta.command.flag import PossibleValues as PossibleValues
from argenta.command.flag.defaults import PredefinedFlags as PredefinedFlags
from argenta.command.flag.models import Flags as Flags
from argenta.command.flag.models import InputFlags as InputFlags
from argenta.command.models import Command as Command
from argenta.command.models import InputCommand as InputCommand
+2 -1
View File
@@ -1,5 +1,6 @@
from argenta.command.flag.models import Flags as Flags, InputFlags as InputFlags
from argenta.command.flag.models import Flag as Flag
from argenta.command.flag.models import Flags as Flags
from argenta.command.flag.models import InputFlag as InputFlag
from argenta.command.flag.models import InputFlags as InputFlags
from argenta.command.flag.models import PossibleValues as PossibleValues
from argenta.command.flag.models import ValidationStatus as ValidationStatus
+1 -1
View File
@@ -2,7 +2,7 @@ __all__ = ["PossibleValues", "ValidationStatus", "Flag", "InputFlag", "InputFlag
from enum import Enum
from re import Pattern
from typing import Literal, override, TypeVar, Generic, Iterator, Any, Container
from typing import Any, Container, Generic, Iterator, Literal, TypeVar, override
PREFIX_TYPE = Literal["-", "--", "---"]
+4 -6
View File
@@ -1,14 +1,12 @@
__all__ = ["Command", "InputCommand"]
import shlex
from typing import Literal, Never, Self, cast, Iterable
from typing import Iterable, Literal, Never, Self, cast
from argenta.command.exceptions import (
EmptyInputCommandException,
RepeatedInputFlagsException,
UnprocessedInputFlagException,
)
from argenta.command import Flags, InputFlags
from argenta.command.exceptions import (EmptyInputCommandException,
RepeatedInputFlagsException,
UnprocessedInputFlagException)
from argenta.command.flag.models import Flag, InputFlag, ValidationStatus
ParseFlagsResult = tuple[InputFlags, str | None, str | None]