This commit is contained in:
2025-03-12 13:01:15 +03:00
parent 0f4f48555e
commit 09c40978a1
5 changed files with 12 additions and 14 deletions
+9 -10
View File
@@ -60,12 +60,11 @@ from argenta.command.flag import FlagsGroup, Flag
router = Router() router = Router()
registered_flags = FlagsGroup([ registered_flags = FlagsGroup(
Flag(flag_name='host', Flag(flag_name='host',
flag_prefix='--', flag_prefix='--',
possible_flag_values=re.compile(r'^192.168.\d{1,3}.\d{1,3}$')), possible_flag_values=re.compile(r'^192.168.\d{1,3}.\d{1,3}$')),
Flag('port', '---', re.compile(r'^[0-9]{1,4}$')) Flag('port', '--', re.compile(r'^[0-9]{1,4}$')))
])
@router.command(Command("hello")) @router.command(Command("hello"))
@@ -365,8 +364,7 @@ Command(trigger: str,
```python ```python
Flag(flag_name: str, Flag(flag_name: str,
flag_prefix: typing.Literal['-', '--', '---'] = '-', flag_prefix: typing.Literal['-', '--', '---'] = '-',
ignore_flag_value_register: bool = False, possible_flag_values: list[str] | typing.Pattern[str] | False = True)
possible_flag_values: list[str] | typing.Pattern[str] = False)
``` ```
--- ---
@@ -375,9 +373,10 @@ Flag(flag_name: str,
- **name : mean** - **name : mean**
- `flag_name` (`str`): Имя флага - `flag_name` (`str`): Имя флага
- `flag_prefix` (`Literal['-', '--', '---']`): Префикс команды, допустимым значением является от одного до трёх минусов - `flag_prefix` (`Literal['-', '--', '---']`): Префикс команды, допустимым значением является от одного до трёх минусов
- `ignore_flag_value_register` (`bool`): Будет ли игнорироваться регистр значения введённого флага - `possible_flag_values` (`list[str] | Pattern[str] | bool`): Множество допустимых значений флага, может быть задано
- `possible_flag_values` (`list[str] | Pattern[str]`): Множество допустимых значений флага, может быть задано списком с допустимыми значениями или регулярным выражением (рекомендуется `re.compile(r'example exspression')`), при значении
списком с допустимыми значениями или регулярным выражением (рекомендуется `re.compile(r'example exspression')`) аргумента `False` у введённого флага не может быть значения, иначе будет вызвано исключение и обработано соответствующим
еррор-хэндлером
--- ---
@@ -410,14 +409,14 @@ Flag(flag_name: str,
### Конструктор ### Конструктор
```python ```python
FlagsGroup(flags: list[Flag] = None) FlagsGroup(*flagы: Flag)
``` ```
--- ---
**Аргументы:** **Аргументы:**
- **name : mean** - **name : mean**
- `flags` (`list[Flag]`): Список флагов, которые будут объединены в одну группу - `*flags` (`Flag`): Неограниченное количество передаваемых флагов
--- ---
-1
View File
@@ -1,4 +1,3 @@
from pprint import pprint
from typing import Callable from typing import Callable
from inspect import getfullargspec from inspect import getfullargspec
import re import re
+1 -1
View File
@@ -1,4 +1,4 @@
from argenta.command.flag.entity import Flag from argenta.command.flag import Flag
class FlagsGroup: class FlagsGroup:
+1 -1
View File
@@ -23,7 +23,7 @@ class Router:
self._command_entities: list[dict[str, Callable[[], None] | Command]] = [] self._command_entities: list[dict[str, Callable[[], None] | Command]] = []
self._ignore_command_register: bool = False self._ignore_command_register: bool = False
self._not_valid_flag_handler: Callable[[Flag], None] = lambda flag: print(f"Undefined or incorrect input flag: '{flag.get_string_entity()} {flag.get_value()}'") self._not_valid_flag_handler: Callable[[Flag], None] = lambda flag: print(f"Undefined or incorrect input flag: {flag.get_string_entity()} {flag.get_value() if flag.get_value() else ''}")
def command(self, command: Command) -> Callable[[Any], Any]: def command(self, command: Command) -> Callable[[Any], Any]:
+1 -1
View File
@@ -10,7 +10,7 @@ from .handlers_implementation.help_command import help_command
work_router: Router = Router(title='Work nts:') work_router: Router = Router(title='Work nts:')
work_router.set_invalid_input_flag_handler(lambda flag: print(f'Invalid input flag: "{flag.get_string_entity()} {flag.get_value() if flag.get_value() else ''}"')) work_router.set_invalid_input_flag_handler(lambda flag: print(f'Invalid input flag: {flag.get_string_entity()} {flag.get_value() if flag.get_value() else ''}'))
settings_router: Router = Router(title='Settings points:') settings_router: Router = Router(title='Settings points:')