2 Commits

Author SHA1 Message Date
kolo e5d6ead38e v0.3.8 2025-03-06 01:35:28 +03:00
kolo b61c151e1c v0.3.8 2025-03-06 01:35:18 +03:00
6 changed files with 22 additions and 6 deletions
+3 -2
View File
@@ -305,6 +305,7 @@ Router(title: str = 'Commands group title:',
- `TooManyTransferredArgsException` - Слишком много зарегистрированных аргументов у обработчика команды - `TooManyTransferredArgsException` - Слишком много зарегистрированных аргументов у обработчика команды
- `RequiredArgumentNotPassedException` - Не зарегистрирован обязательный аргумент у обработчика команды(аргумент, через который будут переданы флаги введённой команды) - `RequiredArgumentNotPassedException` - Не зарегистрирован обязательный аргумент у обработчика команды(аргумент, через который будут переданы флаги введённой команды)
- `IncorrectNumberOfHandlerArgsException` - У обработчика нестандартного поведения зарегистрировано неверное количество аргументов(в большинстве случаев у него должен быть один аргумент) - `IncorrectNumberOfHandlerArgsException` - У обработчика нестандартного поведения зарегистрировано неверное количество аргументов(в большинстве случаев у него должен быть один аргумент)
- `TriggerCannotContainSpacesException` - У регистрируемой команды в триггере содержатся пробелы
--- ---
@@ -363,9 +364,9 @@ Command(trigger: str,
### Конструктор ### Конструктор
```python ```python
Flag(flag_name: str, Flag(flag_name: str,
flag_prefix: Literal['-', '--', '---'] = '-', flag_prefix: typing.Literal['-', '--', '---'] = '-',
ignore_flag_value_register: bool = False, ignore_flag_value_register: bool = False,
possible_flag_values: list[str] | Pattern[str] = False) possible_flag_values: list[str] | typing.Pattern[str] = False)
``` ```
--- ---
+4 -1
View File
@@ -8,7 +8,8 @@ from ..router.exceptions import (RepeatedCommandException,
RepeatedFlagNameException, RepeatedFlagNameException,
TooManyTransferredArgsException, TooManyTransferredArgsException,
RequiredArgumentNotPassedException, RequiredArgumentNotPassedException,
IncorrectNumberOfHandlerArgsException) IncorrectNumberOfHandlerArgsException,
TriggerCannotContainSpacesException)
class Router: class Router:
@@ -71,6 +72,8 @@ class Router:
def _validate_command(self, command: Command): def _validate_command(self, command: Command):
command_name: str = command.get_trigger() command_name: str = command.get_trigger()
if command_name.find(' ') != -1:
raise TriggerCannotContainSpacesException()
if command_name in self.get_all_commands(): if command_name in self.get_all_commands():
raise RepeatedCommandException() raise RepeatedCommandException()
if self._ignore_command_register: if self._ignore_command_register:
+5
View File
@@ -21,3 +21,8 @@ class RequiredArgumentNotPassedException(Exception):
class IncorrectNumberOfHandlerArgsException(Exception): class IncorrectNumberOfHandlerArgsException(Exception):
def __str__(self): def __str__(self):
return "Handler has incorrect number of arguments" return "Handler has incorrect number of arguments"
class TriggerCannotContainSpacesException(Exception):
def __str__(self):
return "Command trigger cannot contain spaces"
+1 -1
View File
@@ -32,7 +32,7 @@ def command_help():
help_command() help_command()
@work_router.command(Command(trigger='P', description='Start Solving', flags=flags)) @work_router.command(Command(trigger='--gbP', description='Start Solving', flags=flags))
def command_start_solving(args: dict): def command_start_solving(args: dict):
print('Solving...') print('Solving...')
pprint(args) pprint(args)
+1 -1
View File
@@ -1,6 +1,6 @@
[project] [project]
name = "argenta" name = "argenta"
version = "0.3.7" version = "0.3.8"
description = "python library for creating custom shells" description = "python library for creating custom shells"
authors = [ authors = [
{name = "kolo", email = "kolo.is.main@gmail.com"} {name = "kolo", email = "kolo.is.main@gmail.com"}
+8 -1
View File
@@ -1,7 +1,7 @@
from argenta.command.params.flag import FlagsGroup, Flag from argenta.command.params.flag import FlagsGroup, Flag
from argenta.router import Router from argenta.router import Router
from argenta.command import Command from argenta.command import Command
from argenta.router.exceptions import RepeatedCommandException from argenta.router.exceptions import RepeatedCommandException, TriggerCannotContainSpacesException
import unittest import unittest
@@ -109,6 +109,13 @@ class TestRouter(unittest.TestCase):
def test(): def test():
return 'correct result' return 'correct result'
def test_register_command_with_spaces_in_trigger(self):
router = Router()
with self.assertRaises(TriggerCannotContainSpacesException):
@router.command(Command(trigger='command with spaces'))
def test():
return 'correct result'