argenta 0.3.6__py3-none-any.whl → 0.3.8__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/router/entity.py CHANGED
@@ -8,13 +8,14 @@ from ..router.exceptions import (RepeatedCommandException,
8
8
  RepeatedFlagNameException,
9
9
  TooManyTransferredArgsException,
10
10
  RequiredArgumentNotPassedException,
11
- IncorrectNumberOfHandlerArgsException)
11
+ IncorrectNumberOfHandlerArgsException,
12
+ TriggerCannotContainSpacesException)
12
13
 
13
14
 
14
15
  class Router:
15
16
  def __init__(self,
16
17
  title: str = 'Commands group title:',
17
- name: str = 'subordinate'):
18
+ name: str = 'Default'):
18
19
 
19
20
  self._title = title
20
21
  self._name = name
@@ -71,6 +72,8 @@ class Router:
71
72
 
72
73
  def _validate_command(self, command: Command):
73
74
  command_name: str = command.get_trigger()
75
+ if command_name.find(' ') != -1:
76
+ raise TriggerCannotContainSpacesException()
74
77
  if command_name in self.get_all_commands():
75
78
  raise RepeatedCommandException()
76
79
  if self._ignore_command_register:
@@ -21,3 +21,8 @@ class RequiredArgumentNotPassedException(Exception):
21
21
  class IncorrectNumberOfHandlerArgsException(Exception):
22
22
  def __str__(self):
23
23
  return "Handler has incorrect number of arguments"
24
+
25
+
26
+ class TriggerCannotContainSpacesException(Exception):
27
+ def __str__(self):
28
+ return "Command trigger cannot contain spaces"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: argenta
3
- Version: 0.3.6
3
+ Version: 0.3.8
4
4
  Summary: python library for creating custom shells
5
5
  License: MIT
6
6
  Author: kolo
@@ -35,7 +35,7 @@ poetry add argenta
35
35
 
36
36
  # Быстрый старт
37
37
 
38
- Пример простейшей оболочки с командой без флагов
38
+ Пример простейшей оболочки с командой без зарегистрированных флагов
39
39
  ```python
40
40
  # routers.py
41
41
  from argenta.router import Router
@@ -75,14 +75,12 @@ from argenta.command.params.flag import FlagsGroup, Flag
75
75
 
76
76
  router = Router()
77
77
 
78
- list_of_flags = [
78
+ registered_flags = FlagsGroup([
79
79
  Flag(flag_name='host',
80
80
  flag_prefix='--',
81
81
  possible_flag_values=re.compile(r'^192.168.\d{1,3}.\d{1,3}$')),
82
- Flag(flag_name='port',
83
- flag_prefix='---',
84
- possible_flag_values=re.compile(r'^[0-9]{1,4}$'))
85
- ]
82
+ Flag('port', '---', re.compile(r'^[0-9]{1,4}$'))
83
+ ])
86
84
 
87
85
 
88
86
  @router.command(Command("hello"))
@@ -92,10 +90,10 @@ def handler():
92
90
 
93
91
  @router.command(Command(trigger="ssh",
94
92
  description='connect via ssh',
95
- flags=FlagsGroup(list_of_flags)))
93
+ flags=registered_flags))
96
94
  def handler_with_flags(flags: dict):
97
95
  for flag in flags:
98
- print(f'Flag name: {flag['name']}\n
96
+ print(f'Flag name: {flag['name']}\n'
99
97
  f'Flag value: {flag['value']}')
100
98
  ```
101
99
 
@@ -105,7 +103,7 @@ def handler_with_flags(flags: dict):
105
103
 
106
104
  ---
107
105
 
108
- ## *class* :: `App`
106
+ ## *class* : : `App`
109
107
  Класс, определяющий поведение и состояние оболочки
110
108
 
111
109
  ### Конструктор
@@ -144,52 +142,57 @@ App(prompt: str = 'Enter a command',
144
142
 
145
143
  ---
146
144
 
147
- **App().**`start_polling() -> None`
145
+ #### **.start_polling() -> `None`**
148
146
 
149
- *method mean* **::** запускает жизненный цикл приложения
147
+ *method mean* **::** запускает цикл обработки ввода
150
148
 
151
149
  ---
152
150
 
153
- **App().**`include_router(router: Router) -> None`
151
+ #### **.include_router(router: Router) -> `None`**
154
152
 
155
- *param* `router: Router` **::** регистрируемый роутер
153
+ *param* `router: Router` **::** регистрируемый роутер
154
+ *required* **::** True
156
155
 
157
- *method mean* **::** регистрирует роутер в приложении
156
+ *method mean* **::** регистрирует роутер в оболочке
158
157
 
159
158
  ---
160
159
 
161
- **App().**`set_initial_message(message: str) -> None`
160
+ #### **.set_initial_message(message: str) -> `None`**
162
161
 
163
162
  *param* `message: str` **::** устанавливаемое приветственное сообщение
163
+ *required* **::** True
164
164
  *example* **::** `"Hello, I'm a example app"`
165
165
 
166
166
  *method mean* **::** устанавливает сообщение, которое будет отображено при запуске программы
167
167
 
168
168
  ---
169
169
 
170
- **App().**`set_farewell_message(message: str) -> None`
170
+ #### **.set_farewell_message(message: str) -> `None`**
171
171
 
172
172
  *param* `message: str` **::** устанавливаемое сообщение при выходе
173
+ *required* **::** True
173
174
  *example* **::** `"GoodBye !"`
174
175
 
175
176
  *method mean* **::** устанавливает сообщение, которое будет отображено при выходе
176
177
 
177
178
  ---
178
179
 
179
- **App().**`set_description_message_pattern(pattern: str) -> None`
180
+ #### **.set_description_message_pattern(pattern: str) -> `None`**
180
181
 
181
182
  *param* `pattern: str` **::** паттерн описания команды при её выводе в консоль
183
+ *required* **::** True
182
184
  *example* **::** `"[{command}] *=*=* {description}"`
183
185
 
184
186
  *method mean* **::** устанавливает паттерн описания команд, который будет использован
185
187
  при выводе в консоль
186
188
 
187
189
  ---
188
-
189
- **App().**`set_repeated_input_flags_handler(handler: Callable[[str], None]) -> None`
190
+ <a name="custom_handler"></a>
191
+ #### **.set_repeated_input_flags_handler(handler: Callable[[str], None]) -> `None`**
190
192
 
191
193
  *param* `handler: Callable[[str], None]` **::** функция или лямбда функция, которой будет передано управление при
192
- вводе юзером повторяющихся флагов
194
+ вводе юзером повторяющихся флагов
195
+ *required* **::** True
193
196
  *example* **::** `lambda raw_command: print_func(f'Repeated input flags: "{raw_command}"')`
194
197
 
195
198
  *method mean* **::** устанавливает функцию, которой будет передано управление при
@@ -197,10 +200,11 @@ App(prompt: str = 'Enter a command',
197
200
 
198
201
  ---
199
202
 
200
- **App().**`set_invalid_input_flags_handler(self, handler: Callable[[str], None]) -> None`
203
+ #### **.set_invalid_input_flags_handler(self, handler: Callable[[str], None]) -> `None`**
201
204
 
202
205
  *param* `handler: Callable[[str], None]` **::** функция или лямбда функция, которой будет передано управление при
203
206
  вводе юзером команды с некорректным синтаксисом флагов
207
+ *required* **::** True
204
208
  *example* **::** `lambda raw_command: print_func(f'Incorrect flag syntax: "{raw_command}"')`
205
209
 
206
210
  *method mean* **::** устанавливает функцию, которой будет передано управление при
@@ -208,10 +212,11 @@ App(prompt: str = 'Enter a command',
208
212
 
209
213
  ---
210
214
 
211
- **App().**`set_unknown_command_handler(self, handler: Callable[[str], None]) -> None`
215
+ #### **.set_unknown_command_handler(self, handler: Callable[[str], None]) -> `None`**
212
216
 
213
217
  *param* `handler: Callable[[str], None]` **::** функция или лямбда функция, которой будет передано управление при
214
218
  вводе юзером неизвестной команды
219
+ *required* **::** True
215
220
  *example* **::** `lambda command: print_func(f"Unknown command: {command.get_string_entity()}")`
216
221
 
217
222
  *method mean* **::** устанавливает функцию, которой будет передано управление при
@@ -219,10 +224,11 @@ App(prompt: str = 'Enter a command',
219
224
 
220
225
  ---
221
226
 
222
- **App().**`set_empty_command_handler(self, handler: Callable[[str], None]) -> None`
227
+ #### **.set_empty_command_handler(self, handler: Callable[[str], None]) -> `None`**
223
228
 
224
229
  *param* `handler: Callable[[str], None]` **::** функция или лямбда функция, которой будет передано управление при
225
- вводе юзером пустой команды
230
+ вводе юзером пустой команды
231
+ *required* **::** True
226
232
  *example* **::** `lambda: print_func(f'Empty input command')`
227
233
 
228
234
  *method mean* **::** устанавливает функцию, которой будет передано управление при
@@ -234,10 +240,10 @@ App(prompt: str = 'Enter a command',
234
240
 
235
241
  - В устанавливаемом паттерне сообщения описания команды необходимы быть два ключевых слова:
236
242
  `command` и `description`, каждое из которых должно быть заключено в фигурные скобки, после обработки
237
- паттерна на места этих ключевых слов будут подставлены соответствующие значения команды, при отсутствии
243
+ паттерна на места этих ключевых слов будут подставлены соответствующие атрибуты команды, при отсутствии
238
244
  этих двух ключевых слов будет вызвано исключение `InvalidDescriptionMessagePatternException`
239
245
 
240
- - Команды приложения не должны повторяться, при значении атрибута `ignore_command_register` равным `True`
246
+ - Команды оболочки не должны повторяться, при значении атрибута `ignore_command_register` равным `True`
241
247
  допускается создание обработчиков для разных регистров одинаковых символов в команде, для примера `u` и `U`,
242
248
  при значении атрибута `ignore_command_register` класса `App` равным `False` тот же пример вызывает исключение
243
249
  `RepeatedCommandInDifferentRoutersException`. Исключение вызывается только при наличии пересекающихся команд
@@ -263,7 +269,7 @@ App(prompt: str = 'Enter a command',
263
269
  ### Конструктор
264
270
  ```python
265
271
  Router(title: str = 'Commands group title:',
266
- name: str = 'subordinate')
272
+ name: str = 'Default')
267
273
  ```
268
274
 
269
275
 
@@ -279,29 +285,30 @@ Router(title: str = 'Commands group title:',
279
285
 
280
286
  ---
281
287
 
282
- **`@`Router().**`command(command: Command)`
288
+ #### **command(command: Command)**
283
289
 
284
290
  *param* `command: Command` **::** экземпляр класса `Command`, который определяет строковый триггер команды,
285
- допустимые флаги команды и другое
291
+ допустимые флаги команды и другое
292
+ *required* **::** True
286
293
  *example* **::** `Command(command='ssh', description='connect via ssh')`
287
294
 
288
295
  *method mean* **::** декоратор, который регистрирует функцию как обработчик команды
289
296
 
290
297
  ---
291
298
 
292
- **Router().**`get_name() -> str`
299
+ #### **.get_name() -> `str`**
293
300
 
294
301
  *method mean* **::** возвращает установленное название роутера
295
302
 
296
303
  ---
297
304
 
298
- **Router().**`get_title() -> str`
305
+ #### **.get_title() -> `str`**
299
306
 
300
307
  *method mean* **::** возвращает установленный заголовок группы команд данного роутера
301
308
 
302
309
  ---
303
310
 
304
- **Router().**`get_all_commands() -> list[str]`
311
+ #### **.get_all_commands() -> `list[str]`**
305
312
 
306
313
  *method mean* **::** возвращает все зарегистрированные команды для данного роутера
307
314
 
@@ -313,6 +320,7 @@ Router(title: str = 'Commands group title:',
313
320
  - `TooManyTransferredArgsException` - Слишком много зарегистрированных аргументов у обработчика команды
314
321
  - `RequiredArgumentNotPassedException` - Не зарегистрирован обязательный аргумент у обработчика команды(аргумент, через который будут переданы флаги введённой команды)
315
322
  - `IncorrectNumberOfHandlerArgsException` - У обработчика нестандартного поведения зарегистрировано неверное количество аргументов(в большинстве случаев у него должен быть один аргумент)
323
+ - `TriggerCannotContainSpacesException` - У регистрируемой команды в триггере содержатся пробелы
316
324
 
317
325
  ---
318
326
 
@@ -334,19 +342,19 @@ Command(trigger: str,
334
342
 
335
343
  ---
336
344
 
337
- **Command().**`get_trigger() -> str`
345
+ #### **.get_trigger() -> `str`**
338
346
 
339
347
  *method mean* **::** возвращает строковый триггер экземпляра
340
348
 
341
349
  ---
342
350
 
343
- **Command().**`get_description() -> str`
351
+ #### **.get_description() -> `str`**
344
352
 
345
353
  *method mean* **::** возвращает описание команды
346
354
 
347
355
  ---
348
356
 
349
- **Command().**`get_registered_flags() -> FlagsGroup | None`
357
+ #### **.get_registered_flags() -> `FlagsGroup | None`**
350
358
 
351
359
  *method mean* **::** возвращает зарегистрированные флаги экземпляра
352
360
 
@@ -360,20 +368,20 @@ Command(trigger: str,
360
368
  **Примечание**
361
369
  Все вышеуказанные исключения класса `Command` вызываются в рантайме запущенным экземпляром класса
362
370
  `App`, а также по дефолту обрабатываются, при желании можно задать пользовательские
363
- обработчики для этих исключений ([подробнее см.](#methods-))
371
+ обработчики для этих исключений ([подробнее см.](#custom_handler))
364
372
 
365
373
  ---
366
374
 
367
375
  ## *class* :: `Flag`
368
- Класс, экземпляры которого в большинстве случаев должны передаваться при создании
376
+ Класс, экземпляры которого в большинстве случаев передаются при создании
369
377
  экземпляра класса `Command` для регистрации допустимого флага при вводе юзером команды
370
378
 
371
379
  ### Конструктор
372
380
  ```python
373
381
  Flag(flag_name: str,
374
- flag_prefix: Literal['-', '--', '---'] = '-',
382
+ flag_prefix: typing.Literal['-', '--', '---'] = '-',
375
383
  ignore_flag_value_register: bool = False,
376
- possible_flag_values: list[str] | Pattern[str] = False)
384
+ possible_flag_values: list[str] | typing.Pattern[str] = False)
377
385
  ```
378
386
 
379
387
  ---
@@ -392,19 +400,19 @@ Flag(flag_name: str,
392
400
 
393
401
  ---
394
402
 
395
- **Flag().**`get_sring_entity() -> str`
403
+ #### **.get_string_entity() -> `str`**
396
404
 
397
405
  *method mean* **::** возвращает строковое представление флага(префикс + имя)
398
406
 
399
407
  ---
400
408
 
401
- **Flag().**`get_flag_name() -> str`
409
+ #### **.get_flag_name() -> `str`**
402
410
 
403
411
  *method mean* **::** возвращает имя флага
404
412
 
405
413
  ---
406
414
 
407
- **Flag().**`get_flag_prefix() -> str`
415
+ #### **.get_flag_prefix() -> `str`**
408
416
 
409
417
  *method mean* **::** возвращает префикс флага
410
418
 
@@ -432,7 +440,7 @@ FlagsGroup(flags: list[Flag] = None)
432
440
 
433
441
  ---
434
442
 
435
- **FlagsGroup().**`get_flags() -> list[Flag]`
443
+ #### **.get_flags() -> `list[Flag]`**
436
444
 
437
445
  *method mean* **::** возвращает зарегистрированные флаги
438
446
 
@@ -11,9 +11,9 @@ argenta/command/params/flag/entity.py,sha256=wqCLVCDUqvuPVQQyz2mOeslH6Xha0nwiKUq
11
11
  argenta/command/params/flag/flags_group/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  argenta/command/params/flag/flags_group/entity.py,sha256=qcVbRkfWblR53a1N0C8tpZ8UOH5aNlQmkyxRfCrrwMo,1011
13
13
  argenta/router/__init__.py,sha256=vIU2o3JJ7misRm9mUzUQw5HdverdMDfvHNzkWuYFRBY,26
14
- argenta/router/entity.py,sha256=P-1rmXgzuo548uGUKzsVrQBvgDGTXlEBtokx-eEbJY8,4936
15
- argenta/router/exceptions.py,sha256=dW3FIdHA_tZYt1-IEts7IY46KLBaKulfdW_ALKpvAic,657
16
- argenta-0.3.6.dist-info/LICENSE,sha256=zmqoGh2n5rReBv4s8wPxF_gZEZDgauJYSPMuPczgOiU,1082
17
- argenta-0.3.6.dist-info/METADATA,sha256=ZkHeDKFXdUqwoChdAdNv2UEwx6SQyhvkZT5HBz91WEo,17805
18
- argenta-0.3.6.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
19
- argenta-0.3.6.dist-info/RECORD,,
14
+ argenta/router/entity.py,sha256=aS1djCzqjowygEZQea2pA2lTnwYOq2uD7vd__k7t_kE,5102
15
+ argenta/router/exceptions.py,sha256=NseEKrhwvG-H5_qdN-hzq83eJ98jku-PzHspz4CG9PM,796
16
+ argenta-0.3.8.dist-info/LICENSE,sha256=zmqoGh2n5rReBv4s8wPxF_gZEZDgauJYSPMuPczgOiU,1082
17
+ argenta-0.3.8.dist-info/METADATA,sha256=ZsoSvI7THi1gXxWdGZyrwqGc9G605IIZgUZghJdHmjg,18136
18
+ argenta-0.3.8.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
19
+ argenta-0.3.8.dist-info/RECORD,,