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