mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e5d6ead38e | |||
| b61c151e1c |
@@ -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)
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
@@ -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"}
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user