argenta 0.4.6__py3-none-any.whl → 0.4.7__py3-none-any.whl

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.
argenta/app/models.py CHANGED
@@ -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
  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
 
@@ -2,14 +2,14 @@ argenta/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  argenta/app/__init__.py,sha256=Slm_0b1yaXeJ78zUpo_sDSEzYuTSj3_DhRU6wU8XU9Q,46
3
3
  argenta/app/defaults.py,sha256=7ej4G-4dieMlichfuQhw5XgabF15X-vAa8k02ZfkdUs,234
4
4
  argenta/app/exceptions.py,sha256=uCkb1VqEIZQuVDY0ZsfDc3yCbySwLpV5CdIT7iaGYRM,928
5
- argenta/app/models.py,sha256=fZtJQEbGZWZfyNw1gfjJ4m_lx_ZyJgsn6b9ojjZpuNE,9574
5
+ argenta/app/models.py,sha256=IDC048SZP-jiw66x6ipz-lYOY7-CyD3mk-GHT8AyqCo,9338
6
6
  argenta/app/registered_routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  argenta/app/registered_routers/entity.py,sha256=OQZyrF4eoCoDHzRJ22zZxhNEx-bOUDu7NZIFDfO-fuY,688
8
8
  argenta/command/__init__.py,sha256=Yx5Zl5Diwhjs8SZrsYEBNJscTMxWkLP0nqPvAJZtu30,52
9
9
  argenta/command/exceptions.py,sha256=HOgddtXLDgk9Wx6c_GnzW3bMAMU5CuUnUyxjW3cVHRo,687
10
10
  argenta/command/flag/__init__.py,sha256=Ew-ZRFVY7sC_PMvavN0AEcsvdYGHkLAPOYMrReY3NC0,116
11
11
  argenta/command/flag/defaults.py,sha256=ktKmDT0rSSBoFUghTlEQ6OletoFxCiD37hRzO73mUUc,875
12
- argenta/command/flag/models.py,sha256=X1MFpAtnUX6mi1huycAtwAPXPeh9YFO-lH91TNyD3G4,3755
12
+ argenta/command/flag/models.py,sha256=IY0FHyAFD9O1ZxSaq6NR9gSTkldoQGrKVoGrAbnmEuA,3769
13
13
  argenta/command/models.py,sha256=4MoO22EijeoMGmwYi88BSnBrip8fre2KpULGt8-NouY,4434
14
14
  argenta/router/__init__.py,sha256=uP58EfcmtK2NuMBQaspD_Gmq3LqgDXus4rfB6hp9Uig,52
15
15
  argenta/router/command_handler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -19,7 +19,7 @@ argenta/router/command_handlers/entity.py,sha256=KgFKjAMUr_mOcn9xahTxMUKB6lIxXgq
19
19
  argenta/router/defaults.py,sha256=huftOg1HMjrT_R2SHHOL4eJ5uZHspNEYBSg-mCq9xhU,126
20
20
  argenta/router/entity.py,sha256=afQn5jrDBrcd5QUzeBwRPfazOO6x0yYSXcmvHYhJpDw,4997
21
21
  argenta/router/exceptions.py,sha256=tdeaR8zDvnytgRYo_wQWKHt3if2brapgauIhhMIsTsA,678
22
- argenta-0.4.6.dist-info/LICENSE,sha256=zmqoGh2n5rReBv4s8wPxF_gZEZDgauJYSPMuPczgOiU,1082
23
- argenta-0.4.6.dist-info/METADATA,sha256=OUOooU874KmkCuynY9KXha_FNTB64q7ZCQeI9TZYcM4,18243
24
- argenta-0.4.6.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
25
- argenta-0.4.6.dist-info/RECORD,,
22
+ argenta-0.4.7.dist-info/LICENSE,sha256=zmqoGh2n5rReBv4s8wPxF_gZEZDgauJYSPMuPczgOiU,1082
23
+ argenta-0.4.7.dist-info/METADATA,sha256=Yq80fNHrGnZheM_3OpCM-BTsPEL93ItT1Z8ikKAh0rs,19205
24
+ argenta-0.4.7.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
25
+ argenta-0.4.7.dist-info/RECORD,,