argenta 0.4.6__tar.gz → 0.4.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. {argenta-0.4.6 → argenta-0.4.7}/PKG-INFO +158 -77
  2. {argenta-0.4.6 → argenta-0.4.7}/README.md +157 -76
  3. {argenta-0.4.6 → argenta-0.4.7}/argenta/app/models.py +0 -5
  4. {argenta-0.4.6 → argenta-0.4.7}/argenta/command/flag/models.py +1 -1
  5. {argenta-0.4.6 → argenta-0.4.7}/pyproject.toml +1 -1
  6. {argenta-0.4.6 → argenta-0.4.7}/LICENSE +0 -0
  7. {argenta-0.4.6 → argenta-0.4.7}/argenta/__init__.py +0 -0
  8. {argenta-0.4.6 → argenta-0.4.7}/argenta/app/__init__.py +0 -0
  9. {argenta-0.4.6 → argenta-0.4.7}/argenta/app/defaults.py +0 -0
  10. {argenta-0.4.6 → argenta-0.4.7}/argenta/app/exceptions.py +0 -0
  11. {argenta-0.4.6 → argenta-0.4.7}/argenta/app/registered_routers/__init__.py +0 -0
  12. {argenta-0.4.6 → argenta-0.4.7}/argenta/app/registered_routers/entity.py +0 -0
  13. {argenta-0.4.6 → argenta-0.4.7}/argenta/command/__init__.py +0 -0
  14. {argenta-0.4.6 → argenta-0.4.7}/argenta/command/exceptions.py +0 -0
  15. {argenta-0.4.6 → argenta-0.4.7}/argenta/command/flag/__init__.py +0 -0
  16. {argenta-0.4.6 → argenta-0.4.7}/argenta/command/flag/defaults.py +0 -0
  17. {argenta-0.4.6 → argenta-0.4.7}/argenta/command/models.py +0 -0
  18. {argenta-0.4.6 → argenta-0.4.7}/argenta/router/__init__.py +0 -0
  19. {argenta-0.4.6 → argenta-0.4.7}/argenta/router/command_handler/__init__.py +0 -0
  20. {argenta-0.4.6 → argenta-0.4.7}/argenta/router/command_handler/entity.py +0 -0
  21. {argenta-0.4.6 → argenta-0.4.7}/argenta/router/command_handlers/__init__.py +0 -0
  22. {argenta-0.4.6 → argenta-0.4.7}/argenta/router/command_handlers/entity.py +0 -0
  23. {argenta-0.4.6 → argenta-0.4.7}/argenta/router/defaults.py +0 -0
  24. {argenta-0.4.6 → argenta-0.4.7}/argenta/router/entity.py +0 -0
  25. {argenta-0.4.6 → argenta-0.4.7}/argenta/router/exceptions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: argenta
3
- Version: 0.4.6
3
+ Version: 0.4.7
4
4
  Summary: python library for creating custom shells
5
5
  License: MIT
6
6
  Author: kolo
@@ -22,7 +22,7 @@ Description-Content-Type: text/markdown
22
22
  ## Описание
23
23
  **Argenta** — Python library for creating custom shells
24
24
 
25
- ![prewiev](imgs/mock_app_preview_last.png)
25
+ ![prewiev](https://github.com/koloideal/Argenta/blob/kolo/imgs/mock_app_preview_last.png?raw=True)
26
26
  Пример внешнего вида TUI, написанного с помощью Argenta
27
27
 
28
28
  ---
@@ -112,33 +112,29 @@ def handler_with_flags(flags: InputFlags):
112
112
 
113
113
  ### Конструктор
114
114
  ```python
115
- App(prompt: str = 'Enter a command',
116
- initial_greeting: str = '\nHello, I am Argenta\n',
117
- farewell_message: str = '\nGoodBye\n',
115
+ App(prompt: str = 'What do you want to do?\n',
116
+ initial_message: str = 'Argenta',
117
+ farewell_message: str = 'See you',
118
118
  exit_command: str = 'Q',
119
119
  exit_command_description: str = 'Exit command',
120
120
  system_points_title: str = 'System points:',
121
- ignore_exit_command_register: bool = True,
122
- ignore_command_register: bool = False,
123
- line_separate: str = '',
124
- command_group_description_separate: str = '',
121
+ ignore_command_register: bool = True,
122
+ line_separate: str = '-----',
125
123
  repeat_command_groups: bool = True,
126
- print_func: Callable[[str], None] = print)
124
+ print_func: Callable[[str], None] = Console().print)
127
125
  ```
128
126
  **Аргументы:**
129
127
  - **name : mean**
130
128
  - `prompt` (`str`): Сообщение перед вводом команды.
131
- - `initial_greeting` (`str`): Приветственное сообщение при запуске.
129
+ - `initial_message` (`str`): Приветственное сообщение при запуске.
132
130
  - `farewell_message` (`str`): Сообщение при выходе.
133
131
  - `exit_command` (`str`): Команда выхода (по умолчанию `'Q'`).
134
132
  - `exit_command_description` (`str`): Описание команды выхода.
135
133
  - `system_points_title` (`str`): Заголовок перед списком системных команд.
136
- - `ignore_exit_command_register` (`bool`): Игнорировать регистр команды выхода.
137
134
  - `ignore_command_register` (`bool`): Игнорировать регистр всех команд.
138
135
  - `line_separate` (`str`): Разделительная строка между командами.
139
- - `command_group_description_separate` (`str`): Разделитель между группами команд.
140
136
  - `repeat_command_groups` (`bool`): Повторять описание команд перед вводом.
141
- - `print_func` (`Callable[[str], None]`): Функция вывода текста в терминал (по умолчанию `print`).
137
+ - `print_func` (`Callable[[str], None]`): Функция вывода текста в терминал.
142
138
 
143
139
  ---
144
140
 
@@ -148,94 +144,83 @@ App(prompt: str = 'Enter a command',
148
144
 
149
145
  #### **.start_polling() -> `None`**
150
146
 
151
- *method mean* **::** запускает цикл обработки ввода
147
+ *method mean* **::** Запускает цикл обработки ввода
152
148
 
153
149
  ---
154
150
 
155
151
  #### **.include_router(router: Router) -> `None`**
156
152
 
157
- *param* `router: Router` **::** регистрируемый роутер
153
+ *param* `router: Router` **::** Регистрируемый роутер
158
154
  *required* **::** True
159
155
 
160
- *method mean* **::** регистрирует роутер в оболочке
156
+ *method mean* **::** Регистрирует роутер в оболочке
161
157
 
162
158
  ---
163
159
 
164
- #### **.set_initial_message(message: str) -> `None`**
160
+ #### **.include_routers(\*routers: Router) -> `None`**
165
161
 
166
- *param* `message: str` **::** устанавливаемое приветственное сообщение
167
- *required* **::** True
168
- *example* **::** `"Hello, I'm a example app"`
162
+ *param* `routers: Router` **::** Неограниченное количество регистрируемых роутеров
163
+ *required* **::** True
169
164
 
170
- *method mean* **::** устанавливает сообщение, которое будет отображено при запуске программы
165
+ *method mean* **::** Регистрирует роутер в оболочке
171
166
 
172
167
  ---
173
168
 
174
- #### **.set_farewell_message(message: str) -> `None`**
169
+ #### **.set_description_message_pattern(pattern: str) -> `None`**
175
170
 
176
- *param* `message: str` **::** устанавливаемое сообщение при выходе
171
+ *param* `pattern: str` **::** Паттерн описания команды при её выводе в консоль
177
172
  *required* **::** True
178
- *example* **::** `"GoodBye !"`
173
+ *example* **::** `"[{command}] *=*=* {description}"`
179
174
 
180
- *method mean* **::** устанавливает сообщение, которое будет отображено при выходе
175
+ *method mean* **::** Устанавливает паттерн описания команд, который будет использован
176
+ при выводе в консоль
181
177
 
182
178
  ---
183
179
 
184
- #### **.set_description_message_pattern(pattern: str) -> `None`**
180
+ #### **.add_message_on_startup(message: str) -> `None`**
185
181
 
186
- *param* `pattern: str` **::** паттерн описания команды при её выводе в консоль
182
+ *param* `message: str` **::** Сообщение, которое будет выведено при запуске приложения
187
183
  *required* **::** True
188
- *example* **::** `"[{command}] *=*=* {description}"`
184
+ *example* **::** `Message on startup`
189
185
 
190
- *method mean* **::** устанавливает паттерн описания команд, который будет использован
186
+ *method mean* **::** Устанавливает паттерн описания команд, который будет использован
191
187
  при выводе в консоль
192
188
 
193
189
  ---
190
+
194
191
  <a name="custom_handler"></a>
195
- #### **.set_repeated_input_flags_handler(handler: Callable[[str], None]) -> `None`**
192
+ #### **.repeated_input_flags_handler: `Callable[[str], None])`**
196
193
 
197
- *param* `handler: Callable[[str], None]` **::** функция или лямбда функция, которой будет передано управление при
198
- вводе юзером повторяющихся флагов
199
- *required* **::** True
200
194
  *example* **::** `lambda raw_command: print_func(f'Repeated input flags: "{raw_command}"')`
201
195
 
202
- *method mean* **::** устанавливает функцию, которой будет передано управление при
196
+ *attr mean* **::** Устанавливает функцию, которой будет передано управление при
203
197
  вводе юзером повторяющихся флагов
204
198
 
205
199
  ---
206
200
 
207
- #### **.set_invalid_input_flags_handler(self, handler: Callable[[str], None]) -> `None`**
201
+ #### **.invalid_input_flags_handler: `Callable[[str], None])`**
208
202
 
209
- *param* `handler: Callable[[str], None]` **::** функция или лямбда функция, которой будет передано управление при
210
- вводе юзером команды с некорректным синтаксисом флагов
211
- *required* **::** True
212
203
  *example* **::** `lambda raw_command: print_func(f'Incorrect flag syntax: "{raw_command}"')`
213
204
 
214
- *method mean* **::** устанавливает функцию, которой будет передано управление при
205
+ *attr mean* **::** Устанавливает функцию, которой будет передано управление при
215
206
  вводе юзером команды с некорректным синтаксисом флагов
216
207
 
217
208
  ---
218
209
 
219
- #### **.set_unknown_command_handler(self, handler: Callable[[str], None]) -> `None`**
210
+ #### **.unknown_command_handler: `Callable[[str], None]`**
220
211
 
221
- *param* `handler: Callable[[str], None]` **::** функция или лямбда функция, которой будет передано управление при
222
- вводе юзером неизвестной команды
223
- *required* **::** True
224
212
  *example* **::** `lambda command: print_func(f"Unknown command: {command.get_string_entity()}")`
225
213
 
226
- *method mean* **::** устанавливает функцию, которой будет передано управление при
214
+ *attr mean* **::** Устанавливает функцию, которой будет передано управление при
227
215
  вводе юзером неизвестной команды
228
216
 
229
217
  ---
230
218
 
231
- #### **.set_empty_command_handler(self, handler: Callable[[str], None]) -> `None`**
219
+ #### **.empty_command_handler: `Callable[[str], None])`**
232
220
 
233
- *param* `handler: Callable[[str], None]` **::** функция или лямбда функция, которой будет передано управление при
234
- вводе юзером пустой команды
235
- *required* **::** True
236
221
  *example* **::** `lambda: print_func(f'Empty input command')`
237
222
 
238
- *method mean* **::** устанавливает функцию, которой будет передано управление при
223
+ *attr mean* **::** Устанавливает функцию, которой будет передано управление при
239
224
  вводе юзером пустой команды
240
225
 
241
226
  ---
@@ -253,6 +238,9 @@ App(prompt: str = 'Enter a command',
253
238
  `RepeatedCommandInDifferentRoutersException`. Исключение вызывается только при наличии пересекающихся команд
254
239
  у __<u>разных</u>__ роутеров
255
240
 
241
+ - Наиболее частые сообщение при запуске предопределены и доступны для быстрого
242
+ использования: `argenta.app.defaults.PredeterminedMessages`
243
+
256
244
 
257
245
 
258
246
 
@@ -261,9 +249,7 @@ App(prompt: str = 'Enter a command',
261
249
  - `InvalidRouterInstanceException` — Переданный объект в метод `App().include_router()` не является экземпляром класса `Router`.
262
250
  - `InvalidDescriptionMessagePatternException` — Неправильный формат паттерна описания команд.
263
251
  - `IncorrectNumberOfHandlerArgsException` — У обработчика нестандартного поведения зарегистрировано неверное количество аргументов(в большинстве случаев у него должен быть один аргумент).
264
- - `NoRegisteredRoutersException` — Отсутствуют зарегистрированные роутеры.
265
252
  - `NoRegisteredHandlersException` — У роутера нет ни одного обработчика команд.
266
- - `RepeatedCommandInDifferentRoutersException` — Одна и та же команда зарегистрирована в разных роутерах.
267
253
 
268
254
  ---
269
255
 
@@ -291,32 +277,27 @@ Router(title: str = 'Commands group title:',
291
277
 
292
278
  #### **command(command: Command)**
293
279
 
294
- *param* `command: Command` **::** экземпляр класса `Command`, который определяет строковый триггер команды,
280
+ *param* `command: Command` **::** Экземпляр класса `Command`, который определяет строковый триггер команды,
295
281
  допустимые флаги команды и другое
296
282
  *required* **::** True
297
283
  *example* **::** `Command(command='ssh', description='connect via ssh')`
298
284
 
299
- *method mean* **::** декоратор, который регистрирует функцию как обработчик команды
285
+ *method mean* **::** Декоратор, который регистрирует функцию как обработчик команды
300
286
 
301
287
  ---
302
288
 
303
289
  #### **.get_name() -> `str`**
304
290
 
305
- *method mean* **::** возвращает установленное название роутера
291
+ *method mean* **::** Возвращает установленное название роутера
306
292
 
307
293
  ---
308
294
 
309
295
  #### **.get_title() -> `str`**
310
296
 
311
- *method mean* **::** возвращает установленный заголовок группы команд данного роутера
297
+ *method mean* **::** Возвращает установленный заголовок группы команд данного роутера
312
298
 
313
299
  ---
314
300
 
315
- #### **.get_all_commands() -> `list[str]`**
316
-
317
- *method mean* **::** возвращает все зарегистрированные команды для данного роутера
318
-
319
- ---
320
301
 
321
302
  ### Исключения
322
303
  - `RepeatedFlagNameException` - Повторяющиеся зарегистрированные флаги в команде
@@ -347,19 +328,19 @@ Command(trigger: str,
347
328
 
348
329
  #### **.get_trigger() -> `str`**
349
330
 
350
- *method mean* **::** возвращает строковый триггер экземпляра
331
+ *method mean* **::** Возвращает строковый триггер экземпляра
351
332
 
352
333
  ---
353
334
 
354
335
  #### **.get_description() -> `str`**
355
336
 
356
- *method mean* **::** возвращает описание команды
337
+ *method mean* **::** Возвращает описание команды
357
338
 
358
339
  ---
359
340
 
360
341
  #### **.get_registered_flags() -> `Flags | None`**
361
342
 
362
- *method mean* **::** возвращает зарегистрированные флаги экземпляра
343
+ *method mean* **::** Возвращает зарегистрированные флаги экземпляра
363
344
 
364
345
  ---
365
346
 
@@ -381,18 +362,18 @@ Command(trigger: str,
381
362
 
382
363
  ### Конструктор
383
364
  ```python
384
- Flag(flag_name: str,
385
- flag_prefix: typing.Literal['-', '--', '---'] = '-',
386
- possible_flag_values: list[str] | typing.Pattern[str] | False = True)
365
+ Flag(name: str,
366
+ prefix: typing.Literal['-', '--', '---'] = '-',
367
+ possible_values: list[str] | typing.Pattern[str] | False = True)
387
368
  ```
388
369
 
389
370
  ---
390
371
 
391
372
  **Аргументы:**
392
373
  - **name : mean**
393
- - `flag_name` (`str`): Имя флага
394
- - `flag_prefix` (`Literal['-', '--', '---']`): Префикс команды, допустимым значением является от одного до трёх минусов
395
- - `possible_flag_values` (`list[str] | Pattern[str] | bool`): Множество допустимых значений флага, может быть задано
374
+ - `name` (`str`): Имя флага
375
+ - `prefix` (`Literal['-', '--', '---']`): Префикс команды, допустимым значением является от одного до трёх минусов
376
+ - `possible_values` (`list[str] | Pattern[str] | bool`): Множество допустимых значений флага, может быть задано
396
377
  списком с допустимыми значениями или регулярным выражением (рекомендуется `re.compile(r'example exspression')`), при значении
397
378
  аргумента `False` у введённого флага не может быть значения, иначе будет вызвано исключение и обработано соответствующим
398
379
  еррор-хэндлером
@@ -405,19 +386,60 @@ Flag(flag_name: str,
405
386
 
406
387
  #### **.get_string_entity() -> `str`**
407
388
 
408
- *method mean* **::** возвращает строковое представление флага(префикс + имя)
389
+ *method mean* **::** Возвращает строковое представление флага(префикс + имя)
390
+
391
+ ---
392
+
393
+ #### **.get_name() -> `str`**
394
+
395
+ *method mean* **::** Возвращает имя флага
396
+
397
+ ---
398
+
399
+ #### **.get_prefix() -> `str`**
400
+
401
+ *method mean* **::** Возвращает префикс флага
402
+
403
+ ---
404
+
405
+ ## *class* :: `InputFlag`
406
+ Класс, экземпляры которого являются введёнными флагами команды, передаётся в хэндлер команды
407
+ через `InputFlags`
408
+
409
+ ---
410
+
411
+ ### Примечания
412
+
413
+ - Наиболее часто используемые флаги предопределены и доступны для быстрого использования:
414
+ `argenta.command.flag.defaults.PredeterminedFlags`
409
415
 
410
416
  ---
411
417
 
412
- #### **.get_flag_name() -> `str`**
413
418
 
414
- *method mean* **::** возвращает имя флага
419
+ ### Конструктор
420
+ ```python
421
+ InputFlag(name: str,
422
+ prefix: typing.Literal['-', '--', '---'] = '-',
423
+ value: str = None)
424
+ ```
425
+
426
+ ---
427
+
428
+ **Аргументы:**
429
+ - **name : mean**
430
+ - `name` (`str`): Имя флага
431
+ - `prefix` (`Literal['-', '--', '---']`): Префикс команды, допустимым значением является от одного до трёх минусов
432
+ - `value` (`str`): Значение введённого флага, если оно есть
433
+
434
+ ---
435
+
436
+ ### ***methods***
415
437
 
416
438
  ---
417
439
 
418
- #### **.get_flag_prefix() -> `str`**
440
+ #### **.get_value() -> `str | None`**
419
441
 
420
- *method mean* **::** возвращает префикс флага
442
+ *method mean* **::** Возвращает значение введённого флага
421
443
 
422
444
  ---
423
445
 
@@ -428,7 +450,7 @@ Flag(flag_name: str,
428
450
 
429
451
  ### Конструктор
430
452
  ```python
431
- Flags(*flagы: Flag)
453
+ Flags(*flags: Flag)
432
454
  ```
433
455
 
434
456
  ---
@@ -445,7 +467,66 @@ Flags(*flagы: Flag)
445
467
 
446
468
  #### **.get_flags() -> `list[Flag]`**
447
469
 
448
- *method mean* **::** возвращает зарегистрированные флаги
470
+ *method mean* **::** Возвращает зарегистрированные флаги
471
+
472
+ ---
473
+
474
+ #### **.add_flag(flag: Flag) -> `None`**
475
+
476
+ *method mean* **::** Добавляет флаг в группу
477
+
478
+ ---
479
+
480
+ #### **.add_flags(flags: list[Flag]) -> `None`**
481
+
482
+ *method mean* **::** Добавляет флаги в группу
483
+
484
+ ---
485
+
486
+ #### **.get_flag(name: str) -> `Flag | None`**
487
+
488
+ *param* `name: str` **::** Строковый триггер флага без префикса
489
+ *required* **::** True
490
+ *example* **::** `'host'`
491
+
492
+ *method mean* **::** Возвращает флаг по его триггеру или `None`, если флаг не найден
493
+
494
+ ---
495
+
496
+ ## *class* :: `InputFlags`
497
+ Класс, объединяющий список введённых флагов в один объект, передаётся соответствующему хэндлеру
498
+ в качестве аргумента
499
+
500
+ ### Конструктор
501
+ ```python
502
+ InputFlags(*flags: Flag)
503
+ ```
504
+
505
+ ---
506
+
507
+ **Аргументы:**
508
+ - **name : mean**
509
+ - `*flags` (`InputFlag`): Неограниченное количество передаваемых флагов
510
+
511
+ ---
512
+
513
+ ### ***methods***
514
+
515
+ ---
516
+
517
+ #### **.get_flags() -> `list[Flag]`**
518
+
519
+ *method mean* **::** Возвращает введённые флаги
520
+
521
+ ---
522
+
523
+ #### **.get_flag(name: str) -> `InputFlag | None`**
524
+
525
+ *param* `name: str` **::** Строковый триггер флага без префикса
526
+ *required* **::** True
527
+ *example* **::** `'host'`
528
+
529
+ *method mean* **::** Возвращает введённый флаг по его триггеру или `None`, если флаг не найден
449
530
 
450
531
  ---
451
532
 
@@ -5,7 +5,7 @@
5
5
  ## Описание
6
6
  **Argenta** — Python library for creating custom shells
7
7
 
8
- ![prewiev](imgs/mock_app_preview_last.png)
8
+ ![prewiev](https://github.com/koloideal/Argenta/blob/kolo/imgs/mock_app_preview_last.png?raw=True)
9
9
  Пример внешнего вида TUI, написанного с помощью Argenta
10
10
 
11
11
  ---
@@ -95,33 +95,29 @@ def handler_with_flags(flags: InputFlags):
95
95
 
96
96
  ### Конструктор
97
97
  ```python
98
- App(prompt: str = 'Enter a command',
99
- initial_greeting: str = '\nHello, I am Argenta\n',
100
- farewell_message: str = '\nGoodBye\n',
98
+ App(prompt: str = 'What do you want to do?\n',
99
+ initial_message: str = 'Argenta',
100
+ farewell_message: str = 'See you',
101
101
  exit_command: str = 'Q',
102
102
  exit_command_description: str = 'Exit command',
103
103
  system_points_title: str = 'System points:',
104
- ignore_exit_command_register: bool = True,
105
- ignore_command_register: bool = False,
106
- line_separate: str = '',
107
- command_group_description_separate: str = '',
104
+ ignore_command_register: bool = True,
105
+ line_separate: str = '-----',
108
106
  repeat_command_groups: bool = True,
109
- print_func: Callable[[str], None] = print)
107
+ print_func: Callable[[str], None] = Console().print)
110
108
  ```
111
109
  **Аргументы:**
112
110
  - **name : mean**
113
111
  - `prompt` (`str`): Сообщение перед вводом команды.
114
- - `initial_greeting` (`str`): Приветственное сообщение при запуске.
112
+ - `initial_message` (`str`): Приветственное сообщение при запуске.
115
113
  - `farewell_message` (`str`): Сообщение при выходе.
116
114
  - `exit_command` (`str`): Команда выхода (по умолчанию `'Q'`).
117
115
  - `exit_command_description` (`str`): Описание команды выхода.
118
116
  - `system_points_title` (`str`): Заголовок перед списком системных команд.
119
- - `ignore_exit_command_register` (`bool`): Игнорировать регистр команды выхода.
120
117
  - `ignore_command_register` (`bool`): Игнорировать регистр всех команд.
121
118
  - `line_separate` (`str`): Разделительная строка между командами.
122
- - `command_group_description_separate` (`str`): Разделитель между группами команд.
123
119
  - `repeat_command_groups` (`bool`): Повторять описание команд перед вводом.
124
- - `print_func` (`Callable[[str], None]`): Функция вывода текста в терминал (по умолчанию `print`).
120
+ - `print_func` (`Callable[[str], None]`): Функция вывода текста в терминал.
125
121
 
126
122
  ---
127
123
 
@@ -131,94 +127,83 @@ App(prompt: str = 'Enter a command',
131
127
 
132
128
  #### **.start_polling() -> `None`**
133
129
 
134
- *method mean* **::** запускает цикл обработки ввода
130
+ *method mean* **::** Запускает цикл обработки ввода
135
131
 
136
132
  ---
137
133
 
138
134
  #### **.include_router(router: Router) -> `None`**
139
135
 
140
- *param* `router: Router` **::** регистрируемый роутер
136
+ *param* `router: Router` **::** Регистрируемый роутер
141
137
  *required* **::** True
142
138
 
143
- *method mean* **::** регистрирует роутер в оболочке
139
+ *method mean* **::** Регистрирует роутер в оболочке
144
140
 
145
141
  ---
146
142
 
147
- #### **.set_initial_message(message: str) -> `None`**
143
+ #### **.include_routers(\*routers: Router) -> `None`**
148
144
 
149
- *param* `message: str` **::** устанавливаемое приветственное сообщение
150
- *required* **::** True
151
- *example* **::** `"Hello, I'm a example app"`
145
+ *param* `routers: Router` **::** Неограниченное количество регистрируемых роутеров
146
+ *required* **::** True
152
147
 
153
- *method mean* **::** устанавливает сообщение, которое будет отображено при запуске программы
148
+ *method mean* **::** Регистрирует роутер в оболочке
154
149
 
155
150
  ---
156
151
 
157
- #### **.set_farewell_message(message: str) -> `None`**
152
+ #### **.set_description_message_pattern(pattern: str) -> `None`**
158
153
 
159
- *param* `message: str` **::** устанавливаемое сообщение при выходе
154
+ *param* `pattern: str` **::** Паттерн описания команды при её выводе в консоль
160
155
  *required* **::** True
161
- *example* **::** `"GoodBye !"`
156
+ *example* **::** `"[{command}] *=*=* {description}"`
162
157
 
163
- *method mean* **::** устанавливает сообщение, которое будет отображено при выходе
158
+ *method mean* **::** Устанавливает паттерн описания команд, который будет использован
159
+ при выводе в консоль
164
160
 
165
161
  ---
166
162
 
167
- #### **.set_description_message_pattern(pattern: str) -> `None`**
163
+ #### **.add_message_on_startup(message: str) -> `None`**
168
164
 
169
- *param* `pattern: str` **::** паттерн описания команды при её выводе в консоль
165
+ *param* `message: str` **::** Сообщение, которое будет выведено при запуске приложения
170
166
  *required* **::** True
171
- *example* **::** `"[{command}] *=*=* {description}"`
167
+ *example* **::** `Message on startup`
172
168
 
173
- *method mean* **::** устанавливает паттерн описания команд, который будет использован
169
+ *method mean* **::** Устанавливает паттерн описания команд, который будет использован
174
170
  при выводе в консоль
175
171
 
176
172
  ---
173
+
177
174
  <a name="custom_handler"></a>
178
- #### **.set_repeated_input_flags_handler(handler: Callable[[str], None]) -> `None`**
175
+ #### **.repeated_input_flags_handler: `Callable[[str], None])`**
179
176
 
180
- *param* `handler: Callable[[str], None]` **::** функция или лямбда функция, которой будет передано управление при
181
- вводе юзером повторяющихся флагов
182
- *required* **::** True
183
177
  *example* **::** `lambda raw_command: print_func(f'Repeated input flags: "{raw_command}"')`
184
178
 
185
- *method mean* **::** устанавливает функцию, которой будет передано управление при
179
+ *attr mean* **::** Устанавливает функцию, которой будет передано управление при
186
180
  вводе юзером повторяющихся флагов
187
181
 
188
182
  ---
189
183
 
190
- #### **.set_invalid_input_flags_handler(self, handler: Callable[[str], None]) -> `None`**
184
+ #### **.invalid_input_flags_handler: `Callable[[str], None])`**
191
185
 
192
- *param* `handler: Callable[[str], None]` **::** функция или лямбда функция, которой будет передано управление при
193
- вводе юзером команды с некорректным синтаксисом флагов
194
- *required* **::** True
195
186
  *example* **::** `lambda raw_command: print_func(f'Incorrect flag syntax: "{raw_command}"')`
196
187
 
197
- *method mean* **::** устанавливает функцию, которой будет передано управление при
188
+ *attr mean* **::** Устанавливает функцию, которой будет передано управление при
198
189
  вводе юзером команды с некорректным синтаксисом флагов
199
190
 
200
191
  ---
201
192
 
202
- #### **.set_unknown_command_handler(self, handler: Callable[[str], None]) -> `None`**
193
+ #### **.unknown_command_handler: `Callable[[str], None]`**
203
194
 
204
- *param* `handler: Callable[[str], None]` **::** функция или лямбда функция, которой будет передано управление при
205
- вводе юзером неизвестной команды
206
- *required* **::** True
207
195
  *example* **::** `lambda command: print_func(f"Unknown command: {command.get_string_entity()}")`
208
196
 
209
- *method mean* **::** устанавливает функцию, которой будет передано управление при
197
+ *attr mean* **::** Устанавливает функцию, которой будет передано управление при
210
198
  вводе юзером неизвестной команды
211
199
 
212
200
  ---
213
201
 
214
- #### **.set_empty_command_handler(self, handler: Callable[[str], None]) -> `None`**
202
+ #### **.empty_command_handler: `Callable[[str], None])`**
215
203
 
216
- *param* `handler: Callable[[str], None]` **::** функция или лямбда функция, которой будет передано управление при
217
- вводе юзером пустой команды
218
- *required* **::** True
219
204
  *example* **::** `lambda: print_func(f'Empty input command')`
220
205
 
221
- *method mean* **::** устанавливает функцию, которой будет передано управление при
206
+ *attr mean* **::** Устанавливает функцию, которой будет передано управление при
222
207
  вводе юзером пустой команды
223
208
 
224
209
  ---
@@ -236,6 +221,9 @@ App(prompt: str = 'Enter a command',
236
221
  `RepeatedCommandInDifferentRoutersException`. Исключение вызывается только при наличии пересекающихся команд
237
222
  у __<u>разных</u>__ роутеров
238
223
 
224
+ - Наиболее частые сообщение при запуске предопределены и доступны для быстрого
225
+ использования: `argenta.app.defaults.PredeterminedMessages`
226
+
239
227
 
240
228
 
241
229
 
@@ -244,9 +232,7 @@ App(prompt: str = 'Enter a command',
244
232
  - `InvalidRouterInstanceException` — Переданный объект в метод `App().include_router()` не является экземпляром класса `Router`.
245
233
  - `InvalidDescriptionMessagePatternException` — Неправильный формат паттерна описания команд.
246
234
  - `IncorrectNumberOfHandlerArgsException` — У обработчика нестандартного поведения зарегистрировано неверное количество аргументов(в большинстве случаев у него должен быть один аргумент).
247
- - `NoRegisteredRoutersException` — Отсутствуют зарегистрированные роутеры.
248
235
  - `NoRegisteredHandlersException` — У роутера нет ни одного обработчика команд.
249
- - `RepeatedCommandInDifferentRoutersException` — Одна и та же команда зарегистрирована в разных роутерах.
250
236
 
251
237
  ---
252
238
 
@@ -274,32 +260,27 @@ Router(title: str = 'Commands group title:',
274
260
 
275
261
  #### **command(command: Command)**
276
262
 
277
- *param* `command: Command` **::** экземпляр класса `Command`, который определяет строковый триггер команды,
263
+ *param* `command: Command` **::** Экземпляр класса `Command`, который определяет строковый триггер команды,
278
264
  допустимые флаги команды и другое
279
265
  *required* **::** True
280
266
  *example* **::** `Command(command='ssh', description='connect via ssh')`
281
267
 
282
- *method mean* **::** декоратор, который регистрирует функцию как обработчик команды
268
+ *method mean* **::** Декоратор, который регистрирует функцию как обработчик команды
283
269
 
284
270
  ---
285
271
 
286
272
  #### **.get_name() -> `str`**
287
273
 
288
- *method mean* **::** возвращает установленное название роутера
274
+ *method mean* **::** Возвращает установленное название роутера
289
275
 
290
276
  ---
291
277
 
292
278
  #### **.get_title() -> `str`**
293
279
 
294
- *method mean* **::** возвращает установленный заголовок группы команд данного роутера
280
+ *method mean* **::** Возвращает установленный заголовок группы команд данного роутера
295
281
 
296
282
  ---
297
283
 
298
- #### **.get_all_commands() -> `list[str]`**
299
-
300
- *method mean* **::** возвращает все зарегистрированные команды для данного роутера
301
-
302
- ---
303
284
 
304
285
  ### Исключения
305
286
  - `RepeatedFlagNameException` - Повторяющиеся зарегистрированные флаги в команде
@@ -330,19 +311,19 @@ Command(trigger: str,
330
311
 
331
312
  #### **.get_trigger() -> `str`**
332
313
 
333
- *method mean* **::** возвращает строковый триггер экземпляра
314
+ *method mean* **::** Возвращает строковый триггер экземпляра
334
315
 
335
316
  ---
336
317
 
337
318
  #### **.get_description() -> `str`**
338
319
 
339
- *method mean* **::** возвращает описание команды
320
+ *method mean* **::** Возвращает описание команды
340
321
 
341
322
  ---
342
323
 
343
324
  #### **.get_registered_flags() -> `Flags | None`**
344
325
 
345
- *method mean* **::** возвращает зарегистрированные флаги экземпляра
326
+ *method mean* **::** Возвращает зарегистрированные флаги экземпляра
346
327
 
347
328
  ---
348
329
 
@@ -364,18 +345,18 @@ Command(trigger: str,
364
345
 
365
346
  ### Конструктор
366
347
  ```python
367
- Flag(flag_name: str,
368
- flag_prefix: typing.Literal['-', '--', '---'] = '-',
369
- possible_flag_values: list[str] | typing.Pattern[str] | False = True)
348
+ Flag(name: str,
349
+ prefix: typing.Literal['-', '--', '---'] = '-',
350
+ possible_values: list[str] | typing.Pattern[str] | False = True)
370
351
  ```
371
352
 
372
353
  ---
373
354
 
374
355
  **Аргументы:**
375
356
  - **name : mean**
376
- - `flag_name` (`str`): Имя флага
377
- - `flag_prefix` (`Literal['-', '--', '---']`): Префикс команды, допустимым значением является от одного до трёх минусов
378
- - `possible_flag_values` (`list[str] | Pattern[str] | bool`): Множество допустимых значений флага, может быть задано
357
+ - `name` (`str`): Имя флага
358
+ - `prefix` (`Literal['-', '--', '---']`): Префикс команды, допустимым значением является от одного до трёх минусов
359
+ - `possible_values` (`list[str] | Pattern[str] | bool`): Множество допустимых значений флага, может быть задано
379
360
  списком с допустимыми значениями или регулярным выражением (рекомендуется `re.compile(r'example exspression')`), при значении
380
361
  аргумента `False` у введённого флага не может быть значения, иначе будет вызвано исключение и обработано соответствующим
381
362
  еррор-хэндлером
@@ -388,19 +369,60 @@ Flag(flag_name: str,
388
369
 
389
370
  #### **.get_string_entity() -> `str`**
390
371
 
391
- *method mean* **::** возвращает строковое представление флага(префикс + имя)
372
+ *method mean* **::** Возвращает строковое представление флага(префикс + имя)
373
+
374
+ ---
375
+
376
+ #### **.get_name() -> `str`**
377
+
378
+ *method mean* **::** Возвращает имя флага
379
+
380
+ ---
381
+
382
+ #### **.get_prefix() -> `str`**
383
+
384
+ *method mean* **::** Возвращает префикс флага
385
+
386
+ ---
387
+
388
+ ## *class* :: `InputFlag`
389
+ Класс, экземпляры которого являются введёнными флагами команды, передаётся в хэндлер команды
390
+ через `InputFlags`
391
+
392
+ ---
393
+
394
+ ### Примечания
395
+
396
+ - Наиболее часто используемые флаги предопределены и доступны для быстрого использования:
397
+ `argenta.command.flag.defaults.PredeterminedFlags`
392
398
 
393
399
  ---
394
400
 
395
- #### **.get_flag_name() -> `str`**
396
401
 
397
- *method mean* **::** возвращает имя флага
402
+ ### Конструктор
403
+ ```python
404
+ InputFlag(name: str,
405
+ prefix: typing.Literal['-', '--', '---'] = '-',
406
+ value: str = None)
407
+ ```
408
+
409
+ ---
410
+
411
+ **Аргументы:**
412
+ - **name : mean**
413
+ - `name` (`str`): Имя флага
414
+ - `prefix` (`Literal['-', '--', '---']`): Префикс команды, допустимым значением является от одного до трёх минусов
415
+ - `value` (`str`): Значение введённого флага, если оно есть
416
+
417
+ ---
418
+
419
+ ### ***methods***
398
420
 
399
421
  ---
400
422
 
401
- #### **.get_flag_prefix() -> `str`**
423
+ #### **.get_value() -> `str | None`**
402
424
 
403
- *method mean* **::** возвращает префикс флага
425
+ *method mean* **::** Возвращает значение введённого флага
404
426
 
405
427
  ---
406
428
 
@@ -411,7 +433,7 @@ Flag(flag_name: str,
411
433
 
412
434
  ### Конструктор
413
435
  ```python
414
- Flags(*flagы: Flag)
436
+ Flags(*flags: Flag)
415
437
  ```
416
438
 
417
439
  ---
@@ -428,7 +450,66 @@ Flags(*flagы: Flag)
428
450
 
429
451
  #### **.get_flags() -> `list[Flag]`**
430
452
 
431
- *method mean* **::** возвращает зарегистрированные флаги
453
+ *method mean* **::** Возвращает зарегистрированные флаги
454
+
455
+ ---
456
+
457
+ #### **.add_flag(flag: Flag) -> `None`**
458
+
459
+ *method mean* **::** Добавляет флаг в группу
460
+
461
+ ---
462
+
463
+ #### **.add_flags(flags: list[Flag]) -> `None`**
464
+
465
+ *method mean* **::** Добавляет флаги в группу
466
+
467
+ ---
468
+
469
+ #### **.get_flag(name: str) -> `Flag | None`**
470
+
471
+ *param* `name: str` **::** Строковый триггер флага без префикса
472
+ *required* **::** True
473
+ *example* **::** `'host'`
474
+
475
+ *method mean* **::** Возвращает флаг по его триггеру или `None`, если флаг не найден
476
+
477
+ ---
478
+
479
+ ## *class* :: `InputFlags`
480
+ Класс, объединяющий список введённых флагов в один объект, передаётся соответствующему хэндлеру
481
+ в качестве аргумента
482
+
483
+ ### Конструктор
484
+ ```python
485
+ InputFlags(*flags: Flag)
486
+ ```
487
+
488
+ ---
489
+
490
+ **Аргументы:**
491
+ - **name : mean**
492
+ - `*flags` (`InputFlag`): Неограниченное количество передаваемых флагов
493
+
494
+ ---
495
+
496
+ ### ***methods***
497
+
498
+ ---
499
+
500
+ #### **.get_flags() -> `list[Flag]`**
501
+
502
+ *method mean* **::** Возвращает введённые флаги
503
+
504
+ ---
505
+
506
+ #### **.get_flag(name: str) -> `InputFlag | None`**
507
+
508
+ *param* `name: str` **::** Строковый триггер флага без префикса
509
+ *required* **::** True
510
+ *example* **::** `'host'`
511
+
512
+ *method mean* **::** Возвращает введённый флаг по его триггеру или `None`, если флаг не найден
432
513
 
433
514
  ---
434
515
 
@@ -151,9 +151,6 @@ class App(BaseApp):
151
151
  self._print_func(self._line_separate)
152
152
  self._error_handler(error, raw_command)
153
153
  self._print_func(self._line_separate)
154
-
155
- if not self._repeat_command_groups_description:
156
- self._print_func(self._prompt)
157
154
  continue
158
155
 
159
156
  if self._is_exit_command(input_command):
@@ -163,8 +160,6 @@ class App(BaseApp):
163
160
 
164
161
  if self._is_unknown_command(input_command):
165
162
  self._print_func(self._line_separate)
166
- if not self._repeat_command_groups_description:
167
- self._print_func(self._prompt)
168
163
  continue
169
164
 
170
165
  for registered_router in self._registered_routers:
@@ -27,7 +27,7 @@ class InputFlag(BaseFlag):
27
27
  super().__init__(name, prefix)
28
28
  self._flag_value = value
29
29
 
30
- def get_value(self):
30
+ def get_value(self) -> str | None:
31
31
  return self._flag_value
32
32
 
33
33
  def set_value(self, value):
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "argenta"
3
- version = "0.4.6"
3
+ version = "0.4.7"
4
4
  description = "python library for creating custom shells"
5
5
  authors = [
6
6
  {name = "kolo", email = "kolo.is.main@gmail.com"}
File without changes
File without changes
File without changes
File without changes