This commit is contained in:
2025-11-21 21:09:29 +03:00
parent 2e76f68d4a
commit e5be7b5d99
5 changed files with 17 additions and 42 deletions
+4 -4
View File
@@ -1,10 +1,10 @@
from argenta import App
from argenta.app.autocompleter import AutoCompleter
from argenta.app import AutoCompleter
# Настройка автодополнения с сохранением истории в файл
# Setting up autocompletion with saving history to a file
my_autocompleter = AutoCompleter(history_filename="argenta_history.txt")
# Передача настроенного автокомплитера в приложение
# Passing the configured autocompleter to the application
app = App(autocompleter=my_autocompleter)
# ... остальная логика приложения
# ... the rest of the application logic
@@ -1,14 +0,0 @@
from argenta import App
from argenta.app import DynamicDividingLine, StaticDividingLine
# Создание статической линии из символов "=" длиной 40
static_line = StaticDividingLine(unit_part="=", length=40)
# Создание динамической линии из символов "*"
dynamic_line = DynamicDividingLine(unit_part="*")
# Приложение со статической линией
app_with_static_line = App(dividing_line=static_line)
# Приложение с динамической линией (поведение по умолчанию, но с кастомным символом)
app_with_dynamic_line = App(dividing_line=dynamic_line)
+2 -4
View File
@@ -5,8 +5,6 @@ AutoCompleter
``AutoCompleter`` — это компонент, отвечающий за интерактивное автодополнение команд. Он улучшает пользовательский опыт, предлагая подсказки и завершая ввод на основе истории команд, что ускоряет работу и снижает вероятность опечаток.
``AutoCompleter`` использует ``pyreadline3`` для реализации функциональности `GNU readline` в `Windows`, что позволяет управлять историей команд и автодополнением.
-----
Инициализация
@@ -19,7 +17,7 @@ AutoCompleter
Создаёт и настраивает экземпляр ``AutoCompleter``.
* ``history_filename``: Имя файла для сохранения истории команд. Если указано, история будет сохраняться между сессиями. При значении `None` история хранится только в памяти.
* ``history_filename``: Имя файла для сохранения истории команд. Если указано, история будет сохраняться между сессиями. При значении ``None`` история хранится только в контексте сессии.
* ``autocomplete_button``: Клавиша, активирующая автодополнение. По умолчанию — **Tab**.
-----
@@ -35,7 +33,7 @@ AutoCompleter
* **Постоянная история**: Если указан ``history_filename``, история команд сохраняется в файл при выходе и загружается при следующем запуске. Это делает автодополнение со временем «умнее».
* **Очистка истории**: При сохранении ``AutoCompleter`` удаляет дубликаты и более не существующие команды, поддерживая историю в актуальном состоянии.
* **Очистка истории**: При сохранении ``AutoCompleter`` удаляет дубликаты и несуществующие команды, поддерживая историю в актуальном состоянии.
* **Настройка клавиши**: Клавишу автодополнения можно изменить с помощью параметра ``autocomplete_button``.
+4 -13
View File
@@ -7,7 +7,7 @@ Dividing Lines
----
Класс ``StaticDividingLine``
``StaticDividingLine``
-----------------------------
``StaticDividingLine`` создаёт разделительную линию **фиксированной** длины. Этот тип линии полезен для создания предсказуемого и унифицированного интерфейса.
@@ -21,14 +21,14 @@ Dividing Lines
Создаёт экземпляр статической разделительной линии.
* ``unit_part``: Символ для построения линии (учитывается только первый символ). По умолчанию: ``-``.
* ``length``: Фиксированная длина линии (keyword-only аргумент). По умолчанию: ``25``.
* ``length``: Фиксированная длина линии. По умолчанию: ``25``.
-----
Класс ``DynamicDividingLine``
``DynamicDividingLine``
------------------------------
``DynamicDividingLine`` создаёт линию, длина которой **динамически** подстраивается под самую длинную строку в выводе команды. Это требует перехвата `stdout`, в результате чего разделители идеально обрамляют выводимый контент.
``DynamicDividingLine`` создаёт линию, длина которой **динамически** подстраивается под самую длинную строку в выводе команды. Это требует перехвата ``stdout``, в результате чего разделители идеально обрамляют выводимый контент.
.. code-block:: python
:linenos:
@@ -63,12 +63,3 @@ Dividing Lines
* В ваших обработчиках нет интерактивных операций ввода (например, ``input()``).
Тип разделителя для всего приложения задаётся при инициализации ``App`` через параметр ``dividing_line``.
-----
Пример конфигурации
--------------------
.. literalinclude:: ../../../code_snippets/dividing_lines/snippet.py
:language: python
:linenos:
+7 -7
View File
@@ -91,13 +91,13 @@ App
Устанавливает шаблон для форматирования описания команды.
Обработчик принимает триггер команды (``str``) и её описание (``str``), а возвращает отформатированную строку.
Обработчик принимает триггер команды (``str``) и её описание (``str``).
------
.. py:method:: set_incorrect_input_syntax_handler(self, handler: Callable[[str], None]) -> None
Устанавливает обработчик для некорректного синтаксиса флагов.
Устанавливает обработчик при некорректном введённом синтаксисе флагов.
Обработчик принимает строку, введённую пользователем.
@@ -105,7 +105,7 @@ App
.. py:method:: set_repeated_input_flags_handler(self, handler: Callable[[str], None]) -> None
Устанавливает обработчик для повторяющихся флагов в команде.
Устанавливает обработчик при повторяющихся флагах в введённой команде.
Обработчик принимает строку, введённую пользователем.
@@ -113,15 +113,15 @@ App
.. py:method:: set_unknown_command_handler(self, handler: Callable[[InputCommand], None]) -> None
Устанавливает обработчик для неизвестной команды.
Устанавливает обработчик при вводе неизвестной команды.
Обработчик принимает объект ``InputCommand``.
Обработчик принимает объект ``InputCommand`` - объект введённой команды.
-----
.. py:method:: set_empty_command_handler(self, handler: Callable[[], None]) -> None
Устанавливает обработчик для пустого ввода.
Устанавливает обработчик при вводе пустой строки.
Обработчик не принимает аргументов.
@@ -146,7 +146,7 @@ App
PredefinedMessages
------------------
`PredefinedMessages` — это перечисление (Enum), содержащее набор готовых к использованию строковых сообщений. Они отформатированы с использованием синтаксиса `rich` и предназначены для вывода стандартной информации, такой как подсказки по использованию.
``PredefinedMessages`` — это контейнер, содержащий набор готовых к использованию сообщений. Они отформатированы с использованием синтаксиса ``rich`` и предназначены для вывода стандартной информации, такой как подсказки по использованию.
Реккомендуется использовать их при старте приложения.