mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
working
This commit is contained in:
@@ -29,6 +29,10 @@ router = Router()
|
|||||||
@router.command("hello")
|
@router.command("hello")
|
||||||
def hello():
|
def hello():
|
||||||
print("Hello, world!")
|
print("Hello, world!")
|
||||||
|
|
||||||
|
@router.unknown_command
|
||||||
|
def unlnown_command(command):
|
||||||
|
print(f'Command "{command}" undefined')
|
||||||
```
|
```
|
||||||
```python
|
```python
|
||||||
#main.py
|
#main.py
|
||||||
@@ -169,6 +173,18 @@ App(prompt: str = 'Enter a command',
|
|||||||
`RepeatedCommandInDifferentRoutersException`. Исключение вызывается только при наличии пересекающихся команд
|
`RepeatedCommandInDifferentRoutersException`. Исключение вызывается только при наличии пересекающихся команд
|
||||||
у __<u>разных</u>__ роутеров
|
у __<u>разных</u>__ роутеров
|
||||||
|
|
||||||
|
- У главного обработчика должен быть зарегистрирован обработчик неизвестных команд:
|
||||||
|
```python
|
||||||
|
router = Router()
|
||||||
|
|
||||||
|
@router.unknown_command
|
||||||
|
def unknown_command(command):
|
||||||
|
print(f'Command "{command}" undefined')
|
||||||
|
```
|
||||||
|
При отсутствии обработчика неизвестных команд у главного роутера будет вызвано исключение
|
||||||
|
`MissingHandlerForUnknownCommandsException`. При регистрации обработчика неизвестных команд у
|
||||||
|
__<u>не</u>__ главного роутера будет вызвано исключение `HandlerForUnknownCommandsOnNonMainRouterException`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -178,8 +194,8 @@ App(prompt: str = 'Enter a command',
|
|||||||
- `InvalidDescriptionMessagePatternException` — Неправильный формат паттерна описания команд.
|
- `InvalidDescriptionMessagePatternException` — Неправильный формат паттерна описания команд.
|
||||||
- `OnlyOneMainRouterIsAllowedException` — Регистрация более одного главного роутера.
|
- `OnlyOneMainRouterIsAllowedException` — Регистрация более одного главного роутера.
|
||||||
- `MissingMainRouterException` — Отсутствует главный роутер.
|
- `MissingMainRouterException` — Отсутствует главный роутер.
|
||||||
- `MissingHandlersForUnknownCommandsOnMainRouterException` — В основном роутере отсутствует обработчик неизвестных команд.
|
- `MissingHandlerForUnknownCommandsException` — В основном роутере отсутствует обработчик неизвестных команд.
|
||||||
- `HandlerForUnknownCommandsCanOnlyBeDeclaredForMainRouterException` — Обработчик неизвестных команд определён не у основного роутера.
|
- `HandlerForUnknownCommandsOnNonMainRouterException` — Обработчик неизвестных команд определён не у основного роутера.
|
||||||
- `NoRegisteredRoutersException` — Отсутствуют зарегистрированные роутеры.
|
- `NoRegisteredRoutersException` — Отсутствуют зарегистрированные роутеры.
|
||||||
- `NoRegisteredHandlersException` — У роутера нет ни одного обработчика команд.
|
- `NoRegisteredHandlersException` — У роутера нет ни одного обработчика команд.
|
||||||
- `RepeatedCommandInDifferentRoutersException` — Одна и та же команда зарегистрирована в разных роутерах.
|
- `RepeatedCommandInDifferentRoutersException` — Одна и та же команда зарегистрирована в разных роутерах.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
from .entity import App
|
from .entity import App
|
||||||
from .exceptions import (HandlerForUnknownCommandsCanOnlyBeDeclaredForMainRouterException,
|
from .exceptions import (HandlerForUnknownCommandsOnNonMainRouterException,
|
||||||
InvalidDescriptionMessagePatternException,
|
InvalidDescriptionMessagePatternException,
|
||||||
InvalidRouterInstanceException,
|
InvalidRouterInstanceException,
|
||||||
OnlyOneMainRouterIsAllowedException,
|
OnlyOneMainRouterIsAllowedException,
|
||||||
MissingMainRouterException,
|
MissingMainRouterException,
|
||||||
MissingHandlersForUnknownCommandsOnMainRouterException)
|
MissingHandlerForUnknownCommandsException)
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ from .exceptions import (InvalidRouterInstanceException,
|
|||||||
InvalidDescriptionMessagePatternException,
|
InvalidDescriptionMessagePatternException,
|
||||||
OnlyOneMainRouterIsAllowedException,
|
OnlyOneMainRouterIsAllowedException,
|
||||||
MissingMainRouterException,
|
MissingMainRouterException,
|
||||||
MissingHandlersForUnknownCommandsOnMainRouterException,
|
MissingHandlerForUnknownCommandsException,
|
||||||
HandlerForUnknownCommandsCanOnlyBeDeclaredForMainRouterException,
|
HandlerForUnknownCommandsOnNonMainRouterException,
|
||||||
NoRegisteredRoutersException,
|
NoRegisteredRoutersException,
|
||||||
NoRegisteredHandlersException,
|
NoRegisteredHandlersException,
|
||||||
RepeatedCommandInDifferentRoutersException)
|
RepeatedCommandInDifferentRoutersException)
|
||||||
@@ -152,11 +152,11 @@ class App:
|
|||||||
self._app_main_router = router
|
self._app_main_router = router
|
||||||
|
|
||||||
if not self._app_main_router.unknown_command_func:
|
if not self._app_main_router.unknown_command_func:
|
||||||
raise MissingHandlersForUnknownCommandsOnMainRouterException()
|
raise MissingHandlerForUnknownCommandsException()
|
||||||
|
|
||||||
for router in self._routers:
|
for router in self._routers:
|
||||||
if router.unknown_command_func and self._app_main_router is not router:
|
if router.unknown_command_func and self._app_main_router is not router:
|
||||||
raise HandlerForUnknownCommandsCanOnlyBeDeclaredForMainRouterException()
|
raise HandlerForUnknownCommandsOnNonMainRouterException()
|
||||||
|
|
||||||
|
|
||||||
def _validate_all_router_commands(self) -> None:
|
def _validate_all_router_commands(self) -> None:
|
||||||
|
|||||||
@@ -28,13 +28,13 @@ class MissingMainRouterException(Exception):
|
|||||||
"One of the registered routers must be the main one")
|
"One of the registered routers must be the main one")
|
||||||
|
|
||||||
|
|
||||||
class MissingHandlersForUnknownCommandsOnMainRouterException(Exception):
|
class MissingHandlerForUnknownCommandsException(Exception):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return ("Missing Handlers For Unknown Commands On The Main Router\n"
|
return ("Missing Handlers For Unknown Commands On The Main Router\n"
|
||||||
"The main router must have a declared handler for unknown commands")
|
"The main router must have a declared handler for unknown commands")
|
||||||
|
|
||||||
|
|
||||||
class HandlerForUnknownCommandsCanOnlyBeDeclaredForMainRouterException(Exception):
|
class HandlerForUnknownCommandsOnNonMainRouterException(Exception):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return '\nThe handler for unknown commands can only be declared for the main router'
|
return '\nThe handler for unknown commands can only be declared for the main router'
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user