bot-framework 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- bot_framework-0.1.0/.gitignore +53 -0
- bot_framework-0.1.0/.import_linter_cache/.gitignore +2 -0
- bot_framework-0.1.0/.import_linter_cache/5eed3c5c99ec4febcf0c27e426c754866f8ea6d6.data.json +1 -0
- bot_framework-0.1.0/.import_linter_cache/CACHEDIR.TAG +3 -0
- bot_framework-0.1.0/.import_linter_cache/bot_framework.meta.json +1 -0
- bot_framework-0.1.0/.python-version +1 -0
- bot_framework-0.1.0/PKG-INFO +71 -0
- bot_framework-0.1.0/README.md +52 -0
- bot_framework-0.1.0/bot_framework/__init__.py +57 -0
- bot_framework-0.1.0/bot_framework/base_protocols/__init__.py +21 -0
- bot_framework-0.1.0/bot_framework/base_protocols/create.py +9 -0
- bot_framework-0.1.0/bot_framework/base_protocols/delete.py +9 -0
- bot_framework-0.1.0/bot_framework/base_protocols/get_all.py +9 -0
- bot_framework-0.1.0/bot_framework/base_protocols/get_by_key.py +9 -0
- bot_framework-0.1.0/bot_framework/base_protocols/get_by_name.py +9 -0
- bot_framework-0.1.0/bot_framework/base_protocols/read.py +11 -0
- bot_framework-0.1.0/bot_framework/base_protocols/read_sequence_by_user_id.py +11 -0
- bot_framework-0.1.0/bot_framework/base_protocols/update.py +9 -0
- bot_framework-0.1.0/bot_framework/entities/__init__.py +24 -0
- bot_framework-0.1.0/bot_framework/entities/bot_callback.py +21 -0
- bot_framework-0.1.0/bot_framework/entities/bot_message.py +27 -0
- bot_framework-0.1.0/bot_framework/entities/bot_user.py +22 -0
- bot_framework-0.1.0/bot_framework/entities/button.py +8 -0
- bot_framework-0.1.0/bot_framework/entities/keyboard.py +9 -0
- bot_framework-0.1.0/bot_framework/entities/language_code.py +8 -0
- bot_framework-0.1.0/bot_framework/entities/parse_mode.py +6 -0
- bot_framework-0.1.0/bot_framework/entities/role.py +16 -0
- bot_framework-0.1.0/bot_framework/entities/role_name.py +7 -0
- bot_framework-0.1.0/bot_framework/entities/user.py +23 -0
- bot_framework-0.1.0/bot_framework/flow_management/__init__.py +31 -0
- bot_framework-0.1.0/bot_framework/flow_management/entities/__init__.py +5 -0
- bot_framework-0.1.0/bot_framework/flow_management/entities/flow_stack_entry.py +10 -0
- bot_framework-0.1.0/bot_framework/flow_management/flow_registry.py +14 -0
- bot_framework-0.1.0/bot_framework/flow_management/protocols/__init__.py +11 -0
- bot_framework-0.1.0/bot_framework/flow_management/protocols/i_flow_message_deleter.py +8 -0
- bot_framework-0.1.0/bot_framework/flow_management/protocols/i_flow_message_storage.py +12 -0
- bot_framework-0.1.0/bot_framework/flow_management/protocols/i_flow_stack_storage.py +14 -0
- bot_framework-0.1.0/bot_framework/flow_management/protocols/i_flow_stack_validator.py +6 -0
- bot_framework-0.1.0/bot_framework/flow_management/repos/__init__.py +8 -0
- bot_framework-0.1.0/bot_framework/flow_management/repos/redis_flow_message_storage.py +35 -0
- bot_framework-0.1.0/bot_framework/flow_management/repos/redis_flow_stack_storage.py +53 -0
- bot_framework-0.1.0/bot_framework/flow_management/services/__init__.py +15 -0
- bot_framework-0.1.0/bot_framework/flow_management/services/flow_message_deleter.py +33 -0
- bot_framework-0.1.0/bot_framework/flow_management/services/flow_stack_navigator.py +104 -0
- bot_framework-0.1.0/bot_framework/flow_management/services/flow_stack_validator.py +46 -0
- bot_framework-0.1.0/bot_framework/flows/__init__.py +11 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/__init__.py +11 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/actions/__init__.py +13 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/actions/role_assigner.py +30 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/actions/role_rejection_notifier.py +24 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/actions/role_request_sender.py +74 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/entities/__init__.py +7 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/entities/request_role_flow_state.py +6 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/exceptions.py +6 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/factory.py +146 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/handlers/__init__.py +23 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/handlers/approve_role_handler.py +49 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/handlers/reject_role_handler.py +47 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/handlers/request_role_command_handler.py +25 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/handlers/role_selection_handler.py +77 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/handlers/show_roles_handler.py +31 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/presenters/__init__.py +7 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/presenters/role_list_presenter.py +53 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/protocols/__init__.py +27 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/protocols/i_request_role_flow_router.py +7 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/protocols/i_request_role_flow_state_storage.py +11 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/protocols/i_role_assigner.py +10 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/protocols/i_role_list_presenter.py +5 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/protocols/i_role_rejection_notifier.py +9 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/protocols/i_role_request_sender.py +12 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/repos/__init__.py +7 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/repos/redis_request_role_flow_state_storage.py +33 -0
- bot_framework-0.1.0/bot_framework/flows/request_role_flow/request_role_flow_router.py +18 -0
- bot_framework-0.1.0/bot_framework/language_management/__init__.py +13 -0
- bot_framework-0.1.0/bot_framework/language_management/entities/__init__.py +10 -0
- bot_framework-0.1.0/bot_framework/language_management/entities/language.py +15 -0
- bot_framework-0.1.0/bot_framework/language_management/entities/phrase.py +16 -0
- bot_framework-0.1.0/bot_framework/language_management/repos/__init__.py +7 -0
- bot_framework-0.1.0/bot_framework/language_management/repos/language_repo.py +67 -0
- bot_framework-0.1.0/bot_framework/language_management/repos/phrase_repo.py +31 -0
- bot_framework-0.1.0/bot_framework/language_management/repos/protocols/__init__.py +7 -0
- bot_framework-0.1.0/bot_framework/language_management/repos/protocols/i_language_repo.py +10 -0
- bot_framework-0.1.0/bot_framework/language_management/repos/protocols/i_phrase_repo.py +9 -0
- bot_framework-0.1.0/bot_framework/protocols/__init__.py +37 -0
- bot_framework-0.1.0/bot_framework/protocols/i_callback_answerer.py +10 -0
- bot_framework-0.1.0/bot_framework/protocols/i_callback_handler.py +17 -0
- bot_framework-0.1.0/bot_framework/protocols/i_callback_handler_registry.py +9 -0
- bot_framework-0.1.0/bot_framework/protocols/i_card_field_formatter.py +7 -0
- bot_framework-0.1.0/bot_framework/protocols/i_display_width_calculator.py +5 -0
- bot_framework-0.1.0/bot_framework/protocols/i_ensure_user_exists.py +7 -0
- bot_framework-0.1.0/bot_framework/protocols/i_flow_router.py +19 -0
- bot_framework-0.1.0/bot_framework/protocols/i_markdown_to_html_converter.py +5 -0
- bot_framework-0.1.0/bot_framework/protocols/i_message_deleter.py +5 -0
- bot_framework-0.1.0/bot_framework/protocols/i_message_handler.py +17 -0
- bot_framework-0.1.0/bot_framework/protocols/i_message_handler_registry.py +14 -0
- bot_framework-0.1.0/bot_framework/protocols/i_message_replacer.py +17 -0
- bot_framework-0.1.0/bot_framework/protocols/i_message_sender.py +31 -0
- bot_framework-0.1.0/bot_framework/protocols/i_message_service.py +16 -0
- bot_framework-0.1.0/bot_framework/protocols/i_next_step_handler_registrar.py +12 -0
- bot_framework-0.1.0/bot_framework/protocols/i_notify_replacer.py +17 -0
- bot_framework-0.1.0/bot_framework/protocols/i_remaining_time_formatter.py +6 -0
- bot_framework-0.1.0/bot_framework/role_management/__init__.py +13 -0
- bot_framework-0.1.0/bot_framework/role_management/entities/__init__.py +10 -0
- bot_framework-0.1.0/bot_framework/role_management/entities/user_role.py +13 -0
- bot_framework-0.1.0/bot_framework/role_management/repos/__init__.py +5 -0
- bot_framework-0.1.0/bot_framework/role_management/repos/protocols/__init__.py +7 -0
- bot_framework-0.1.0/bot_framework/role_management/repos/protocols/i_role_repo.py +30 -0
- bot_framework-0.1.0/bot_framework/role_management/repos/protocols/i_user_repo.py +24 -0
- bot_framework-0.1.0/bot_framework/role_management/repos/role_repo.py +103 -0
- bot_framework-0.1.0/bot_framework/role_management/services/__init__.py +1 -0
- bot_framework-0.1.0/bot_framework/role_management/services/protocols/__init__.py +1 -0
- bot_framework-0.1.0/bot_framework/services/__init__.py +9 -0
- bot_framework-0.1.0/bot_framework/services/card_field_formatter.py +43 -0
- bot_framework-0.1.0/bot_framework/services/display_width_calculator.py +45 -0
- bot_framework-0.1.0/bot_framework/services/remaining_time_formatter.py +31 -0
- bot_framework-0.1.0/bot_framework/telegram/__init__.py +56 -0
- bot_framework-0.1.0/bot_framework/telegram/middleware/__init__.py +4 -0
- bot_framework-0.1.0/bot_framework/telegram/middleware/ensure_user_middleware.py +46 -0
- bot_framework-0.1.0/bot_framework/telegram/middleware/i_middleware.py +7 -0
- bot_framework-0.1.0/bot_framework/telegram/protocols/__init__.py +36 -0
- bot_framework-0.1.0/bot_framework/telegram/protocols/i_markdown_escaper.py +5 -0
- bot_framework-0.1.0/bot_framework/telegram/services/__init__.py +29 -0
- bot_framework-0.1.0/bot_framework/telegram/services/callback_answerer.py +16 -0
- bot_framework-0.1.0/bot_framework/telegram/services/callback_handler_registry.py +43 -0
- bot_framework-0.1.0/bot_framework/telegram/services/close_callback_handler.py +26 -0
- bot_framework-0.1.0/bot_framework/telegram/services/ensure_user_exists.py +37 -0
- bot_framework-0.1.0/bot_framework/telegram/services/markdown_escaper.py +8 -0
- bot_framework-0.1.0/bot_framework/telegram/services/markdown_to_html_converter.py +16 -0
- bot_framework-0.1.0/bot_framework/telegram/services/message_handler_registry.py +49 -0
- bot_framework-0.1.0/bot_framework/telegram/services/next_step_handler_registrar.py +43 -0
- bot_framework-0.1.0/bot_framework/telegram/services/telegram_message_core.py +62 -0
- bot_framework-0.1.0/bot_framework/telegram/services/telegram_message_deleter.py +19 -0
- bot_framework-0.1.0/bot_framework/telegram/services/telegram_message_replacer.py +47 -0
- bot_framework-0.1.0/bot_framework/telegram/services/telegram_message_sender.py +73 -0
- bot_framework-0.1.0/bot_framework/telegram/services/telegram_notify_replacer.py +30 -0
- bot_framework-0.1.0/pyproject.toml +99 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Environment
|
|
2
|
+
.env
|
|
3
|
+
.env.*
|
|
4
|
+
|
|
5
|
+
# Python
|
|
6
|
+
__pycache__/
|
|
7
|
+
*.py[cod]
|
|
8
|
+
*$py.class
|
|
9
|
+
*.so
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
*.egg-info/
|
|
24
|
+
.installed.cfg
|
|
25
|
+
*.egg
|
|
26
|
+
|
|
27
|
+
# Virtual environments
|
|
28
|
+
.venv/
|
|
29
|
+
venv/
|
|
30
|
+
ENV/
|
|
31
|
+
uv.lock
|
|
32
|
+
|
|
33
|
+
# IDE
|
|
34
|
+
.idea/
|
|
35
|
+
.vscode/
|
|
36
|
+
*.swp
|
|
37
|
+
*.swo
|
|
38
|
+
*~
|
|
39
|
+
|
|
40
|
+
# Testing
|
|
41
|
+
.pytest_cache/
|
|
42
|
+
.coverage
|
|
43
|
+
htmlcov/
|
|
44
|
+
.tox/
|
|
45
|
+
.nox/
|
|
46
|
+
|
|
47
|
+
# Type checking
|
|
48
|
+
.mypy_cache/
|
|
49
|
+
.pyright/
|
|
50
|
+
|
|
51
|
+
# OS
|
|
52
|
+
.DS_Store
|
|
53
|
+
Thumbs.db
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"bot_framework.protocols.i_message_replacer":[["bot_framework.entities.parse_mode",5,"from bot_framework.entities.parse_mode import ParseMode"],["bot_framework.entities.keyboard",4,"from bot_framework.entities.keyboard import Keyboard"],["bot_framework.entities.bot_message",3,"from bot_framework.entities.bot_message import BotMessage"]],"bot_framework.entities.bot_message":[],"bot_framework.role_management.services.protocols":[],"bot_framework.telegram.services.telegram_message_deleter":[["bot_framework.protocols.i_message_deleter",7,"from bot_framework.protocols.i_message_deleter import IMessageDeleter"]],"bot_framework.protocols.i_ensure_user_exists":[["bot_framework.entities.bot_user",3,"from bot_framework.entities.bot_user import BotUser"]],"bot_framework.flows.request_role_flow.presenters.role_list_presenter":[["bot_framework.language_management.repos.protocols.i_phrase_repo",3,"from bot_framework.language_management.repos.protocols.i_phrase_repo import IPhraseRepo"],["bot_framework.entities.button",1,"from bot_framework.entities.button import Button"],["bot_framework.entities.keyboard",2,"from bot_framework.entities.keyboard import Keyboard"],["bot_framework.role_management.repos.protocols.i_role_repo",5,"from bot_framework.role_management.repos.protocols.i_role_repo import IRoleRepo"],["bot_framework.protocols.i_message_sender",4,"from bot_framework.protocols.i_message_sender import IMessageSender"]],"bot_framework.protocols.i_callback_answerer":[],"bot_framework.role_management.repos.protocols":[["bot_framework.role_management.repos.protocols.i_role_repo",1,"from .i_role_repo import IRoleRepo"],["bot_framework.role_management.repos.protocols.i_user_repo",2,"from .i_user_repo import IUserRepo"]],"bot_framework.flows.request_role_flow.factory":[["bot_framework.protocols.i_callback_answerer",22,"from bot_framework.protocols.i_callback_answerer import ICallbackAnswerer"],["bot_framework.protocols.i_callback_handler_registry",23,"from bot_framework.protocols.i_callback_handler_registry import ("],["bot_framework.flows.request_role_flow.presenters",13,"from bot_framework.flows.request_role_flow.presenters import RoleListPresenter"],["bot_framework.flows.request_role_flow.protocols",14,"from bot_framework.flows.request_role_flow.protocols import ("],["bot_framework.role_management.repos.protocols.i_user_repo",29,"from bot_framework.role_management.repos.protocols.i_user_repo import IUserRepo"],["bot_framework.flows.request_role_flow.actions",1,"from bot_framework.flows.request_role_flow.actions import ("],["bot_framework.language_management.repos.protocols.i_phrase_repo",21,"from bot_framework.language_management.repos.protocols.i_phrase_repo import IPhraseRepo"],["bot_framework.protocols.i_message_handler_registry",26,"from bot_framework.protocols.i_message_handler_registry import IMessageHandlerRegistry"],["bot_framework.flows.request_role_flow.handlers",6,"from bot_framework.flows.request_role_flow.handlers import ("],["bot_framework.flows.request_role_flow.request_role_flow_router",18,"from bot_framework.flows.request_role_flow.request_role_flow_router import ("],["bot_framework.protocols.i_message_sender",27,"from bot_framework.protocols.i_message_sender import IMessageSender"],["bot_framework.role_management.repos.protocols.i_role_repo",28,"from bot_framework.role_management.repos.protocols.i_role_repo import IRoleRepo"]],"bot_framework.telegram.services.ensure_user_exists":[["bot_framework.role_management.repos.protocols.i_user_repo",5,"from bot_framework.role_management.repos.protocols.i_user_repo import IUserRepo"],["bot_framework.role_management.repos.protocols.i_role_repo",4,"from bot_framework.role_management.repos.protocols.i_role_repo import IRoleRepo"],["bot_framework.entities",1,"from bot_framework.entities import RoleName, User"],["bot_framework.entities.bot_user",2,"from bot_framework.entities.bot_user import BotUser"],["bot_framework.protocols",3,"from bot_framework.protocols import IEnsureUserExists"]],"bot_framework.protocols.i_message_deleter":[],"bot_framework.telegram.services.next_step_handler_registrar":[["bot_framework.entities.bot_message",4,"from bot_framework.entities.bot_message import BotMessage, BotMessageUser"],["bot_framework.protocols.i_message_handler",5,"from bot_framework.protocols.i_message_handler import IMessageHandler"]],"bot_framework.flows.request_role_flow.exceptions":[],"bot_framework.telegram.services.telegram_notify_replacer":[["bot_framework.entities.bot_message",3,"from bot_framework.entities.bot_message import BotMessage"],["bot_framework.protocols.i_message_sender",7,"from bot_framework.protocols.i_message_sender import IMessageSender"],["bot_framework.entities.keyboard",4,"from bot_framework.entities.keyboard import Keyboard"],["bot_framework.entities.parse_mode",5,"from bot_framework.entities.parse_mode import ParseMode"],["bot_framework.protocols.i_message_deleter",6,"from bot_framework.protocols.i_message_deleter import IMessageDeleter"],["bot_framework.protocols.i_notify_replacer",8,"from bot_framework.protocols.i_notify_replacer import INotifyReplacer"]],"bot_framework.protocols.i_callback_handler_registry":[["bot_framework.protocols.i_callback_handler",5,"from bot_framework.protocols.i_callback_handler import ICallbackHandler"]],"bot_framework.role_management.repos.role_repo":[["bot_framework.role_management.repos.protocols.i_role_repo",5,"from bot_framework.role_management.repos.protocols.i_role_repo import IRoleRepo"],["bot_framework.entities.role",4,"from bot_framework.entities.role import Role"]],"bot_framework.base_protocols.delete":[],"bot_framework.flows.request_role_flow.protocols.i_role_rejection_notifier":[],"bot_framework.telegram.services.close_callback_handler":[["bot_framework.telegram.protocols",3,"from bot_framework.telegram.protocols import ICallbackAnswerer, IMessageDeleter"],["bot_framework.entities.bot_callback",2,"from bot_framework.entities.bot_callback import BotCallback"],["bot_framework.entities",1,"from bot_framework.entities import RoleName"]],"bot_framework.flows.request_role_flow.protocols.i_request_role_flow_router":[["bot_framework.entities.bot_message",3,"from bot_framework.entities.bot_message import BotMessageUser"]],"bot_framework.base_protocols.read_sequence_by_user_id":[],"bot_framework.base_protocols":[["bot_framework.base_protocols.read_sequence_by_user_id",7,"from .read_sequence_by_user_id import ("],["bot_framework.base_protocols.get_by_name",5,"from .get_by_name import GetByNameProtocol"],["bot_framework.base_protocols.get_by_key",4,"from .get_by_key import GetByKeyProtocol"],["bot_framework.base_protocols.read",6,"from .read import ReadProtocol"],["bot_framework.base_protocols.create",1,"from .create import CreateProtocol"],["bot_framework.base_protocols.get_all",3,"from .get_all import GetAllProtocol"],["bot_framework.base_protocols.update",10,"from .update import UpdateProtocol"],["bot_framework.base_protocols.delete",2,"from .delete import DeleteProtocol"]],"bot_framework.services.display_width_calculator":[["bot_framework.protocols",3,"from bot_framework.protocols import IDisplayWidthCalculator"]],"bot_framework.protocols.i_message_service":[["bot_framework.protocols.i_message_sender",5,"from bot_framework.protocols.i_message_sender import IMessageSender"],["bot_framework.protocols.i_message_replacer",4,"from bot_framework.protocols.i_message_replacer import IMessageReplacer"],["bot_framework.protocols.i_notify_replacer",6,"from bot_framework.protocols.i_notify_replacer import INotifyReplacer"],["bot_framework.protocols.i_message_deleter",3,"from bot_framework.protocols.i_message_deleter import IMessageDeleter"]],"bot_framework.entities.language_code":[],"bot_framework.language_management":[["bot_framework.language_management.entities",1,"from bot_framework.language_management.entities import Language, LanguageCode, Phrase"],["bot_framework.language_management.repos",2,"from bot_framework.language_management.repos import LanguageRepo, PhraseRepo"],["bot_framework.language_management.repos.protocols",3,"from bot_framework.language_management.repos.protocols import ILanguageRepo, IPhraseRepo"]],"bot_framework.role_management.entities":[["bot_framework.role_management.entities.user_role",3,"from .user_role import UserRole"],["bot_framework.entities",1,"from bot_framework.entities import Role, RoleName, User"]],"bot_framework.flow_management.flow_registry":[["bot_framework.protocols.i_flow_router",3,"from bot_framework.protocols.i_flow_router import IFlowRouter"]],"bot_framework.entities.keyboard":[["bot_framework.entities.button",3,"from bot_framework.entities.button import Button"]],"bot_framework.flow_management":[["bot_framework.flow_management.services",13,"from bot_framework.flow_management.services import ("],["bot_framework.flow_management.protocols",3,"from bot_framework.flow_management.protocols import ("],["bot_framework.flow_management.entities",1,"from bot_framework.flow_management.entities import FlowStackEntry"],["bot_framework.flow_management.repos",9,"from bot_framework.flow_management.repos import ("],["bot_framework.flow_management.flow_registry",2,"from bot_framework.flow_management.flow_registry import FlowRegistry"]],"bot_framework.flows.request_role_flow.request_role_flow_router":[["bot_framework.flows.request_role_flow.protocols",2,"from bot_framework.flows.request_role_flow.protocols import IRoleListPresenter"],["bot_framework.entities.bot_message",1,"from bot_framework.entities.bot_message import BotMessageUser"]],"bot_framework.services.card_field_formatter":[["bot_framework.protocols",1,"from bot_framework.protocols import ICardFieldFormatter, IDisplayWidthCalculator"],["bot_framework.services.display_width_calculator",2,"from bot_framework.services.display_width_calculator import DisplayWidthCalculator"]],"bot_framework.language_management.repos.protocols.i_language_repo":[["bot_framework.base_protocols",3,"from bot_framework.base_protocols import ("]],"bot_framework.telegram.middleware.i_middleware":[],"bot_framework.language_management.entities.language":[],"bot_framework.language_management.entities.phrase":[],"bot_framework.flows.request_role_flow.entities.request_role_flow_state":[],"bot_framework.base_protocols.update":[],"bot_framework.base_protocols.get_by_name":[],"bot_framework.entities.bot_callback":[],"bot_framework.services":[["bot_framework.services.display_width_calculator",2,"from .display_width_calculator import DisplayWidthCalculator"],["bot_framework.services.remaining_time_formatter",3,"from .remaining_time_formatter import RemainingTimeFormatter"],["bot_framework.services.card_field_formatter",1,"from .card_field_formatter import CardFieldFormatter"]],"bot_framework.flows.request_role_flow.protocols.i_request_role_flow_state_storage":[["bot_framework.flows.request_role_flow.entities",3,"from bot_framework.flows.request_role_flow.entities import RequestRoleFlowState"]],"bot_framework.flow_management.entities":[["bot_framework.flow_management.entities.flow_stack_entry",3,"from bot_framework.flow_management.entities.flow_stack_entry import FlowStackEntry"]],"bot_framework.language_management.repos":[["bot_framework.language_management.repos.language_repo",1,"from .language_repo import LanguageRepo"],["bot_framework.language_management.repos.phrase_repo",2,"from .phrase_repo import PhraseRepo"]],"bot_framework.flows.request_role_flow.handlers.show_roles_handler":[["bot_framework.flows.request_role_flow.protocols",5,"from bot_framework.flows.request_role_flow.protocols import IRoleListPresenter"],["bot_framework.protocols.i_callback_answerer",6,"from bot_framework.protocols.i_callback_answerer import ICallbackAnswerer"],["bot_framework.entities.bot_callback",3,"from bot_framework.entities.bot_callback import BotCallback"],["bot_framework.entities.role_name",4,"from bot_framework.entities.role_name import RoleName"]],"bot_framework.role_management.repos.protocols.i_user_repo":[["bot_framework.entities.user",10,"from bot_framework.entities.user import User"],["bot_framework.base_protocols",3,"from bot_framework.base_protocols import ("]],"bot_framework.language_management.repos.language_repo":[["bot_framework.language_management.repos.protocols.i_language_repo",5,"from bot_framework.language_management.repos.protocols.i_language_repo import ILanguageRepo"],["bot_framework.language_management.entities.language",4,"from bot_framework.language_management.entities.language import Language"]],"bot_framework.role_management.services":[],"bot_framework.role_management.entities.user_role":[],"bot_framework.entities.user":[["bot_framework.entities.language_code",9,"from bot_framework.entities.language_code import LanguageCode"]],"bot_framework.flow_management.repos.redis_flow_stack_storage":[["bot_framework.flow_management.entities",7,"from bot_framework.flow_management.entities import FlowStackEntry"]],"bot_framework.telegram.services.callback_handler_registry":[["bot_framework.entities.bot_callback",6,"from bot_framework.entities.bot_callback import BotCallback"],["bot_framework.protocols.i_callback_handler",7,"from bot_framework.protocols.i_callback_handler import ICallbackHandler"]],"bot_framework.base_protocols.create":[],"bot_framework.role_management":[["bot_framework.role_management.entities",1,"from bot_framework.role_management.entities import Role, RoleName, User, UserRole"],["bot_framework.role_management.repos",2,"from bot_framework.role_management.repos import RoleRepo"],["bot_framework.role_management.repos.protocols",3,"from bot_framework.role_management.repos.protocols import IRoleRepo, IUserRepo"]],"bot_framework.protocols.i_next_step_handler_registrar":[["bot_framework.protocols.i_message_handler",4,"from bot_framework.protocols.i_message_handler import IMessageHandler"],["bot_framework.entities.bot_message",3,"from bot_framework.entities.bot_message import BotMessage"]],"bot_framework.telegram":[["bot_framework.telegram.protocols",2,"from .protocols import ("],["bot_framework.telegram.services",14,"from .services import ("],["bot_framework.telegram.middleware",1,"from .middleware import EnsureUserMiddleware, IMiddleware"]],"bot_framework.flows.request_role_flow.actions.role_rejection_notifier":[["bot_framework.protocols.i_message_sender",2,"from bot_framework.protocols.i_message_sender import IMessageSender"],["bot_framework.language_management.repos.protocols.i_phrase_repo",1,"from bot_framework.language_management.repos.protocols.i_phrase_repo import IPhraseRepo"]],"bot_framework.protocols.i_message_sender":[["bot_framework.entities.parse_mode",5,"from bot_framework.entities.parse_mode import ParseMode"],["bot_framework.entities.bot_message",3,"from bot_framework.entities.bot_message import BotMessage"],["bot_framework.entities.keyboard",4,"from bot_framework.entities.keyboard import Keyboard"]],"bot_framework.telegram.middleware":[["bot_framework.telegram.middleware.i_middleware",2,"from .i_middleware import IMiddleware"],["bot_framework.telegram.middleware.ensure_user_middleware",1,"from .ensure_user_middleware import EnsureUserMiddleware"]],"bot_framework.flows.request_role_flow.protocols":[["bot_framework.flows.request_role_flow.protocols.i_request_role_flow_router",1,"from bot_framework.flows.request_role_flow.protocols.i_request_role_flow_router import ("],["bot_framework.flows.request_role_flow.protocols.i_role_list_presenter",10,"from bot_framework.flows.request_role_flow.protocols.i_role_list_presenter import ("],["bot_framework.flows.request_role_flow.protocols.i_role_rejection_notifier",13,"from bot_framework.flows.request_role_flow.protocols.i_role_rejection_notifier import ("],["bot_framework.flows.request_role_flow.protocols.i_role_request_sender",16,"from bot_framework.flows.request_role_flow.protocols.i_role_request_sender import ("],["bot_framework.flows.request_role_flow.protocols.i_role_assigner",7,"from bot_framework.flows.request_role_flow.protocols.i_role_assigner import ("],["bot_framework.flows.request_role_flow.protocols.i_request_role_flow_state_storage",4,"from bot_framework.flows.request_role_flow.protocols.i_request_role_flow_state_storage import ("]],"bot_framework.protocols.i_markdown_to_html_converter":[],"bot_framework.flow_management.services":[["bot_framework.flow_management.protocols",1,"from bot_framework.flow_management.protocols import ("],["bot_framework.flow_management.services.flow_stack_navigator",6,"from bot_framework.flow_management.services.flow_stack_navigator import FlowStackNavigator"],["bot_framework.flow_management.services.flow_message_deleter",5,"from bot_framework.flow_management.services.flow_message_deleter import FlowMessageDeleter"],["bot_framework.flow_management.services.flow_stack_validator",7,"from bot_framework.flow_management.services.flow_stack_validator import FlowStackValidator"]],"bot_framework.entities.role_name":[],"bot_framework.flows.request_role_flow.handlers.reject_role_handler":[["bot_framework.entities.bot_callback",3,"from bot_framework.entities.bot_callback import BotCallback"],["bot_framework.entities.role_name",4,"from bot_framework.entities.role_name import RoleName"],["bot_framework.flows.request_role_flow.protocols",5,"from bot_framework.flows.request_role_flow.protocols import IRoleRejectionNotifier"],["bot_framework.role_management.repos.protocols.i_role_repo",7,"from bot_framework.role_management.repos.protocols.i_role_repo import IRoleRepo"],["bot_framework.protocols.i_callback_answerer",6,"from bot_framework.protocols.i_callback_answerer import ICallbackAnswerer"],["bot_framework.role_management.repos.protocols.i_user_repo",8,"from bot_framework.role_management.repos.protocols.i_user_repo import IUserRepo"]],"bot_framework.flows.request_role_flow.protocols.i_role_assigner":[],"bot_framework.flows.request_role_flow.repos.redis_request_role_flow_state_storage":[["bot_framework.flows.request_role_flow.entities",5,"from bot_framework.flows.request_role_flow.entities import RequestRoleFlowState"]],"bot_framework.services.remaining_time_formatter":[["bot_framework.language_management.repos.protocols.i_phrase_repo",3,"from bot_framework.language_management.repos.protocols.i_phrase_repo import IPhraseRepo"],["bot_framework.protocols",4,"from bot_framework.protocols import IRemainingTimeFormatter"]],"bot_framework.language_management.entities":[["bot_framework.entities",1,"from bot_framework.entities import LanguageCode"],["bot_framework.language_management.entities.language",3,"from .language import Language"],["bot_framework.language_management.entities.phrase",4,"from .phrase import Phrase"]],"bot_framework.telegram.services.message_handler_registry":[["bot_framework.protocols.i_message_handler",7,"from bot_framework.protocols.i_message_handler import IMessageHandler"],["bot_framework.entities.bot_message",6,"from bot_framework.entities.bot_message import BotMessage, BotMessageUser"]],"bot_framework.base_protocols.read":[],"bot_framework.flow_management.repos":[["bot_framework.flow_management.repos.redis_flow_stack_storage",6,"from bot_framework.flow_management.repos.redis_flow_stack_storage import RedisFlowStackStorage"],["bot_framework.flow_management.repos.redis_flow_message_storage",3,"from bot_framework.flow_management.repos.redis_flow_message_storage import ("]],"bot_framework.flows.request_role_flow.actions.role_assigner":[["bot_framework.language_management.repos.protocols.i_phrase_repo",1,"from bot_framework.language_management.repos.protocols.i_phrase_repo import IPhraseRepo"],["bot_framework.role_management.repos.protocols.i_role_repo",3,"from bot_framework.role_management.repos.protocols.i_role_repo import IRoleRepo"],["bot_framework.protocols.i_message_sender",2,"from bot_framework.protocols.i_message_sender import IMessageSender"]],"bot_framework.entities.bot_user":[],"bot_framework.telegram.services.markdown_to_html_converter":[["bot_framework.telegram.protocols",4,"from bot_framework.telegram.protocols import IMarkdownToHtmlConverter"]],"bot_framework.flow_management.services.flow_message_deleter":[["bot_framework.protocols",6,"from bot_framework.protocols import IMessageDeleter"],["bot_framework.flow_management.protocols",5,"from bot_framework.flow_management.protocols import IFlowMessageStorage"]],"bot_framework.telegram.protocols":[["bot_framework.protocols",1,"from bot_framework.protocols import ("],["bot_framework.telegram.protocols.i_markdown_escaper",18,"from .i_markdown_escaper import IMarkdownEscaper"]],"bot_framework.flow_management.protocols.i_flow_message_storage":[],"bot_framework.protocols.i_notify_replacer":[["bot_framework.entities.parse_mode",5,"from bot_framework.entities.parse_mode import ParseMode"],["bot_framework.entities.bot_message",3,"from bot_framework.entities.bot_message import BotMessage"],["bot_framework.entities.keyboard",4,"from bot_framework.entities.keyboard import Keyboard"]],"bot_framework.protocols":[["bot_framework.protocols.i_callback_answerer",1,"from .i_callback_answerer import ICallbackAnswerer"],["bot_framework.protocols.i_markdown_to_html_converter",8,"from .i_markdown_to_html_converter import IMarkdownToHtmlConverter"],["bot_framework.protocols.i_message_service",14,"from .i_message_service import IMessageService"],["bot_framework.protocols.i_ensure_user_exists",6,"from .i_ensure_user_exists import IEnsureUserExists"],["bot_framework.protocols.i_callback_handler_registry",3,"from .i_callback_handler_registry import ICallbackHandlerRegistry"],["bot_framework.protocols.i_remaining_time_formatter",17,"from .i_remaining_time_formatter import IRemainingTimeFormatter"],["bot_framework.protocols.i_notify_replacer",16,"from .i_notify_replacer import INotifyReplacer"],["bot_framework.protocols.i_message_deleter",9,"from .i_message_deleter import IMessageDeleter"],["bot_framework.protocols.i_message_handler",10,"from .i_message_handler import IMessageHandler"],["bot_framework.protocols.i_next_step_handler_registrar",15,"from .i_next_step_handler_registrar import INextStepHandlerRegistrar"],["bot_framework.protocols.i_callback_handler",2,"from .i_callback_handler import ICallbackHandler"],["bot_framework.protocols.i_card_field_formatter",4,"from .i_card_field_formatter import ICardFieldFormatter"],["bot_framework.protocols.i_flow_router",7,"from .i_flow_router import IFlowRouter"],["bot_framework.protocols.i_message_replacer",12,"from .i_message_replacer import IMessageReplacer"],["bot_framework.protocols.i_message_handler_registry",11,"from .i_message_handler_registry import IMessageHandlerRegistry"],["bot_framework.protocols.i_display_width_calculator",5,"from .i_display_width_calculator import IDisplayWidthCalculator"],["bot_framework.protocols.i_message_sender",13,"from .i_message_sender import IMessageSender"]],"bot_framework.flow_management.protocols.i_flow_stack_storage":[["bot_framework.flow_management.entities",3,"from bot_framework.flow_management.entities import FlowStackEntry"]],"bot_framework.flows.request_role_flow.protocols.i_role_list_presenter":[],"bot_framework.telegram.services.callback_answerer":[],"bot_framework.flows.request_role_flow.entities":[["bot_framework.flows.request_role_flow.entities.request_role_flow_state",1,"from bot_framework.flows.request_role_flow.entities.request_role_flow_state import ("]],"bot_framework.protocols.i_message_handler":[["bot_framework.entities.bot_message",7,"from bot_framework.entities.bot_message import BotMessage"],["bot_framework.entities",6,"from bot_framework.entities import RoleName"]],"bot_framework.flow_management.services.flow_stack_navigator":[["bot_framework.flow_management.protocols",9,"from bot_framework.flow_management.protocols import ("],["bot_framework.flow_management.flow_registry",8,"from bot_framework.flow_management.flow_registry import FlowRegistry"],["bot_framework.entities.user",6,"from bot_framework.entities.user import User"],["bot_framework.flow_management.entities",7,"from bot_framework.flow_management.entities import FlowStackEntry"]],"bot_framework.flows.request_role_flow":[["bot_framework.flows.request_role_flow.request_role_flow_router",3,"from bot_framework.flows.request_role_flow.request_role_flow_router import ("],["bot_framework.flows.request_role_flow.protocols",2,"from bot_framework.flows.request_role_flow.protocols import IRequestRoleFlowRouter"],["bot_framework.flows.request_role_flow.factory",1,"from bot_framework.flows.request_role_flow.factory import RequestRoleFlowFactory"]],"bot_framework.protocols.i_display_width_calculator":[],"bot_framework.flow_management.repos.redis_flow_message_storage":[],"bot_framework.base_protocols.get_all":[],"bot_framework.flows.request_role_flow.protocols.i_role_request_sender":[["bot_framework.entities.user",4,"from bot_framework.entities.user import User"],["bot_framework.entities.role",3,"from bot_framework.entities.role import Role"]],"bot_framework.entities.role":[],"bot_framework.flows.request_role_flow.handlers.approve_role_handler":[["bot_framework.role_management.repos.protocols.i_role_repo",7,"from bot_framework.role_management.repos.protocols.i_role_repo import IRoleRepo"],["bot_framework.entities.bot_callback",3,"from bot_framework.entities.bot_callback import BotCallback"],["bot_framework.protocols.i_callback_answerer",6,"from bot_framework.protocols.i_callback_answerer import ICallbackAnswerer"],["bot_framework.role_management.repos.protocols.i_user_repo",8,"from bot_framework.role_management.repos.protocols.i_user_repo import IUserRepo"],["bot_framework.entities.role_name",4,"from bot_framework.entities.role_name import RoleName"],["bot_framework.flows.request_role_flow.protocols",5,"from bot_framework.flows.request_role_flow.protocols import IRoleAssigner"]],"bot_framework.telegram.services":[["bot_framework.telegram.services.telegram_notify_replacer",13,"from .telegram_notify_replacer import TelegramNotifyReplacer"],["bot_framework.telegram.services.callback_handler_registry",2,"from .callback_handler_registry import CallbackHandlerRegistry"],["bot_framework.telegram.services.markdown_to_html_converter",6,"from .markdown_to_html_converter import MarkdownToHtmlConverter"],["bot_framework.telegram.services.message_handler_registry",7,"from .message_handler_registry import MessageHandlerRegistry"],["bot_framework.telegram.services.close_callback_handler",3,"from .close_callback_handler import CloseCallbackHandler"],["bot_framework.telegram.services.telegram_message_sender",12,"from .telegram_message_sender import TelegramMessageSender"],["bot_framework.telegram.services.next_step_handler_registrar",8,"from .next_step_handler_registrar import NextStepHandlerRegistrar"],["bot_framework.telegram.services.ensure_user_exists",4,"from .ensure_user_exists import EnsureUserExists"],["bot_framework.telegram.services.telegram_message_deleter",10,"from .telegram_message_deleter import TelegramMessageDeleter"],["bot_framework.telegram.services.markdown_escaper",5,"from .markdown_escaper import MarkdownEscaper"],["bot_framework.telegram.services.telegram_message_replacer",11,"from .telegram_message_replacer import TelegramMessageReplacer"],["bot_framework.telegram.services.telegram_message_core",9,"from .telegram_message_core import TelegramMessageCore"],["bot_framework.telegram.services.callback_answerer",1,"from .callback_answerer import CallbackAnswerer"]],"bot_framework.flows.request_role_flow.presenters":[["bot_framework.flows.request_role_flow.presenters.role_list_presenter",1,"from bot_framework.flows.request_role_flow.presenters.role_list_presenter import ("]],"bot_framework.flows.request_role_flow.actions":[["bot_framework.flows.request_role_flow.actions.role_rejection_notifier",2,"from bot_framework.flows.request_role_flow.actions.role_rejection_notifier import ("],["bot_framework.flows.request_role_flow.actions.role_assigner",1,"from bot_framework.flows.request_role_flow.actions.role_assigner import RoleAssigner"],["bot_framework.flows.request_role_flow.actions.role_request_sender",5,"from bot_framework.flows.request_role_flow.actions.role_request_sender import ("]],"bot_framework.telegram.services.telegram_message_sender":[["bot_framework.protocols.i_message_sender",8,"from bot_framework.protocols.i_message_sender import IMessageSender"],["bot_framework.entities.bot_message",5,"from bot_framework.entities.bot_message import BotMessage"],["bot_framework.entities.parse_mode",7,"from bot_framework.entities.parse_mode import ParseMode"],["bot_framework.telegram.services.telegram_message_core",10,"from .telegram_message_core import TelegramMessageCore"],["bot_framework.entities.keyboard",6,"from bot_framework.entities.keyboard import Keyboard"]],"bot_framework.protocols.i_remaining_time_formatter":[],"bot_framework.protocols.i_message_handler_registry":[["bot_framework.protocols.i_message_handler",4,"from bot_framework.protocols.i_message_handler import IMessageHandler"]],"bot_framework.protocols.i_card_field_formatter":[],"bot_framework.telegram.services.telegram_message_replacer":[["bot_framework.entities.bot_message",5,"from bot_framework.entities.bot_message import BotMessage"],["bot_framework.telegram.services.telegram_message_core",10,"from .telegram_message_core import TelegramMessageCore"],["bot_framework.entities.parse_mode",7,"from bot_framework.entities.parse_mode import ParseMode"],["bot_framework.protocols.i_message_replacer",8,"from bot_framework.protocols.i_message_replacer import IMessageReplacer"],["bot_framework.entities.keyboard",6,"from bot_framework.entities.keyboard import Keyboard"]],"bot_framework.flows.request_role_flow.actions.role_request_sender":[["bot_framework.entities.keyboard",2,"from bot_framework.entities.keyboard import Keyboard"],["bot_framework.protocols.i_message_sender",7,"from bot_framework.protocols.i_message_sender import IMessageSender"],["bot_framework.entities.button",1,"from bot_framework.entities.button import Button"],["bot_framework.entities.user",4,"from bot_framework.entities.user import User"],["bot_framework.language_management.repos.protocols.i_phrase_repo",6,"from bot_framework.language_management.repos.protocols.i_phrase_repo import IPhraseRepo"],["bot_framework.role_management.repos.protocols.i_user_repo",8,"from bot_framework.role_management.repos.protocols.i_user_repo import IUserRepo"],["bot_framework.flows.request_role_flow.exceptions",5,"from bot_framework.flows.request_role_flow.exceptions import NoSupervisorsFoundError"],["bot_framework.entities.role",3,"from bot_framework.entities.role import Role"]],"bot_framework.base_protocols.get_by_key":[],"bot_framework":[["bot_framework.entities.role",15,"from bot_framework.entities.role import Role"],["bot_framework.entities.user",17,"from bot_framework.entities.user import User"],["bot_framework.protocols.i_callback_handler",19,"from bot_framework.protocols.i_callback_handler import ICallbackHandler"],["bot_framework.entities.bot_callback",8,"from bot_framework.entities.bot_callback import BotCallback"],["bot_framework.protocols.i_message_replacer",27,"from bot_framework.protocols.i_message_replacer import IMessageReplacer"],["bot_framework.protocols.i_message_handler",25,"from bot_framework.protocols.i_message_handler import IMessageHandler"],["bot_framework.entities.parse_mode",14,"from bot_framework.entities.parse_mode import ParseMode"],["bot_framework.entities.language_code",13,"from bot_framework.entities.language_code import LanguageCode"],["bot_framework.entities.button",11,"from bot_framework.entities.button import Button"],["bot_framework.entities.bot_user",10,"from bot_framework.entities.bot_user import BotUser"],["bot_framework.entities.bot_message",9,"from bot_framework.entities.bot_message import BotMessage, BotMessageUser"],["bot_framework.protocols.i_callback_handler_registry",20,"from bot_framework.protocols.i_callback_handler_registry import ("],["bot_framework.protocols.i_flow_router",23,"from bot_framework.protocols.i_flow_router import IFlowRouter"],["bot_framework.protocols.i_notify_replacer",29,"from bot_framework.protocols.i_notify_replacer import INotifyReplacer"],["bot_framework.protocols.i_message_sender",28,"from bot_framework.protocols.i_message_sender import IMessageSender"],["bot_framework.protocols.i_message_deleter",24,"from bot_framework.protocols.i_message_deleter import IMessageDeleter"],["bot_framework.entities.keyboard",12,"from bot_framework.entities.keyboard import Keyboard"],["bot_framework.protocols.i_message_handler_registry",26,"from bot_framework.protocols.i_message_handler_registry import IMessageHandlerRegistry"],["bot_framework.entities.role_name",16,"from bot_framework.entities.role_name import RoleName"],["bot_framework.protocols.i_callback_answerer",18,"from bot_framework.protocols.i_callback_answerer import ICallbackAnswerer"]],"bot_framework.language_management.repos.protocols.i_phrase_repo":[],"bot_framework.flow_management.services.flow_stack_validator":[["bot_framework.flow_management.flow_registry",5,"from bot_framework.flow_management.flow_registry import FlowRegistry"],["bot_framework.flow_management.protocols",6,"from bot_framework.flow_management.protocols import IFlowStackStorage"]],"bot_framework.flows.request_role_flow.repos":[["bot_framework.flows.request_role_flow.repos.redis_request_role_flow_state_storage",1,"from bot_framework.flows.request_role_flow.repos.redis_request_role_flow_state_storage import ("]],"bot_framework.flow_management.protocols.i_flow_stack_validator":[],"bot_framework.telegram.services.telegram_message_core":[["bot_framework.telegram.services.markdown_escaper",13,"from .markdown_escaper import MarkdownEscaper"],["bot_framework.entities.keyboard",10,"from bot_framework.entities.keyboard import Keyboard"],["bot_framework.flow_management",11,"from bot_framework.flow_management import IFlowMessageStorage"],["bot_framework.telegram.services.markdown_to_html_converter",14,"from .markdown_to_html_converter import MarkdownToHtmlConverter"],["bot_framework.entities.bot_message",9,"from bot_framework.entities.bot_message import BotMessage"]],"bot_framework.flow_management.protocols":[["bot_framework.flow_management.protocols.i_flow_stack_storage",3,"from bot_framework.flow_management.protocols.i_flow_stack_storage import IFlowStackStorage"],["bot_framework.flow_management.protocols.i_flow_message_storage",2,"from bot_framework.flow_management.protocols.i_flow_message_storage import IFlowMessageStorage"],["bot_framework.flow_management.protocols.i_flow_stack_validator",4,"from bot_framework.flow_management.protocols.i_flow_stack_validator import IFlowStackValidator"],["bot_framework.flow_management.protocols.i_flow_message_deleter",1,"from bot_framework.flow_management.protocols.i_flow_message_deleter import IFlowMessageDeleter"]],"bot_framework.telegram.protocols.i_markdown_escaper":[],"bot_framework.flow_management.entities.flow_stack_entry":[],"bot_framework.flows.request_role_flow.handlers.role_selection_handler":[["bot_framework.flows.request_role_flow.protocols",6,"from bot_framework.flows.request_role_flow.protocols import ("],["bot_framework.protocols.i_callback_answerer",11,"from bot_framework.protocols.i_callback_answerer import ICallbackAnswerer"],["bot_framework.entities.bot_callback",3,"from bot_framework.entities.bot_callback import BotCallback"],["bot_framework.role_management.repos.protocols.i_role_repo",13,"from bot_framework.role_management.repos.protocols.i_role_repo import IRoleRepo"],["bot_framework.entities.role_name",4,"from bot_framework.entities.role_name import RoleName"],["bot_framework.language_management.repos.protocols.i_phrase_repo",10,"from bot_framework.language_management.repos.protocols.i_phrase_repo import IPhraseRepo"],["bot_framework.flows.request_role_flow.exceptions",5,"from bot_framework.flows.request_role_flow.exceptions import NoSupervisorsFoundError"],["bot_framework.role_management.repos.protocols.i_user_repo",14,"from bot_framework.role_management.repos.protocols.i_user_repo import IUserRepo"],["bot_framework.protocols.i_message_sender",12,"from bot_framework.protocols.i_message_sender import IMessageSender"]],"bot_framework.flows.request_role_flow.handlers.request_role_command_handler":[["bot_framework.protocols.i_message_handler",6,"from bot_framework.protocols.i_message_handler import IMessageHandler"],["bot_framework.entities.bot_message",1,"from bot_framework.entities.bot_message import BotMessage"],["bot_framework.entities.role_name",2,"from bot_framework.entities.role_name import RoleName"],["bot_framework.flows.request_role_flow.protocols",3,"from bot_framework.flows.request_role_flow.protocols import ("]],"bot_framework.entities.button":[],"bot_framework.telegram.middleware.ensure_user_middleware":[["bot_framework.entities.bot_user",3,"from bot_framework.entities.bot_user import BotUser"],["bot_framework.protocols",4,"from bot_framework.protocols import IEnsureUserExists"],["bot_framework.telegram.middleware.i_middleware",5,"from bot_framework.telegram.middleware.i_middleware import IMiddleware"]],"bot_framework.flows":[["bot_framework.flows.request_role_flow",1,"from bot_framework.flows.request_role_flow import ("]],"bot_framework.entities.parse_mode":[],"bot_framework.flows.request_role_flow.handlers":[["bot_framework.flows.request_role_flow.handlers.request_role_command_handler",7,"from bot_framework.flows.request_role_flow.handlers.request_role_command_handler import ("],["bot_framework.flows.request_role_flow.handlers.reject_role_handler",4,"from bot_framework.flows.request_role_flow.handlers.reject_role_handler import ("],["bot_framework.flows.request_role_flow.handlers.approve_role_handler",1,"from bot_framework.flows.request_role_flow.handlers.approve_role_handler import ("],["bot_framework.flows.request_role_flow.handlers.role_selection_handler",10,"from bot_framework.flows.request_role_flow.handlers.role_selection_handler import ("],["bot_framework.flows.request_role_flow.handlers.show_roles_handler",13,"from bot_framework.flows.request_role_flow.handlers.show_roles_handler import ("]],"bot_framework.language_management.repos.protocols":[["bot_framework.language_management.repos.protocols.i_language_repo",1,"from .i_language_repo import ILanguageRepo"],["bot_framework.language_management.repos.protocols.i_phrase_repo",2,"from .i_phrase_repo import IPhraseRepo"]],"bot_framework.protocols.i_callback_handler":[["bot_framework.protocols.i_callback_answerer",8,"from bot_framework.protocols.i_callback_answerer import ICallbackAnswerer"],["bot_framework.entities",6,"from bot_framework.entities import RoleName"],["bot_framework.entities.bot_callback",7,"from bot_framework.entities.bot_callback import BotCallback"]],"bot_framework.role_management.repos.protocols.i_role_repo":[["bot_framework.entities.role",7,"from bot_framework.entities.role import Role"],["bot_framework.base_protocols",3,"from bot_framework.base_protocols import ("]],"bot_framework.entities":[["bot_framework.entities.role",8,"from .role import Role"],["bot_framework.entities.bot_callback",1,"from .bot_callback import BotCallback"],["bot_framework.entities.button",4,"from .button import Button"],["bot_framework.entities.bot_message",2,"from .bot_message import BotMessage, BotMessageUser"],["bot_framework.entities.bot_user",3,"from .bot_user import BotUser"],["bot_framework.entities.keyboard",5,"from .keyboard import Keyboard"],["bot_framework.entities.parse_mode",7,"from .parse_mode import ParseMode"],["bot_framework.entities.language_code",6,"from .language_code import LanguageCode"],["bot_framework.entities.user",10,"from .user import User"],["bot_framework.entities.role_name",9,"from .role_name import RoleName"]],"bot_framework.telegram.services.markdown_escaper":[["bot_framework.telegram.protocols.i_markdown_escaper",3,"from bot_framework.telegram.protocols.i_markdown_escaper import IMarkdownEscaper"]],"bot_framework.protocols.i_flow_router":[["bot_framework.entities.user",8,"from bot_framework.entities.user import User"]],"bot_framework.role_management.repos":[["bot_framework.role_management.repos.role_repo",1,"from .role_repo import RoleRepo"]],"bot_framework.language_management.repos.phrase_repo":[["bot_framework.language_management.repos.protocols.i_phrase_repo",3,"from bot_framework.language_management.repos.protocols.i_phrase_repo import IPhraseRepo"]],"bot_framework.flow_management.protocols.i_flow_message_deleter":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"bot_framework.flow_management.services.flow_stack_validator": 1769084168.3913405, "bot_framework.flow_management.flow_registry": 1769084167.8071065, "bot_framework.protocols.i_message_deleter": 1769084002.1797442, "bot_framework.telegram.middleware": 1769084469.6168976, "bot_framework.flows.request_role_flow.presenters": 1769085247.0809307, "bot_framework.services.display_width_calculator": 1769084055.6980267, "bot_framework.entities.language_code": 1769083916.3965182, "bot_framework": 1769085328.2441907, "bot_framework.flows.request_role_flow.protocols.i_request_role_flow_router": 1769085209.0118196, "bot_framework.flow_management.protocols.i_flow_message_storage": 1769084165.7472034, "bot_framework.flow_management.protocols.i_flow_stack_validator": 1769084166.3527896, "bot_framework.base_protocols": 1769083856.0216823, "bot_framework.language_management.entities.language": 1769084242.0496166, "bot_framework.base_protocols.get_by_key": 1769083855.267238, "bot_framework.telegram.protocols.i_markdown_escaper": 1769084468.1410477, "bot_framework.language_management": 1769084244.466946, "bot_framework.flows.request_role_flow.handlers.approve_role_handler": 1769085305.5721917, "bot_framework.protocols.i_message_handler_registry": 1769084004.0697446, "bot_framework.services.card_field_formatter": 1769084056.0071945, "bot_framework.flows.request_role_flow.factory": 1769085307.1022103, "bot_framework.flow_management": 1769084169.265881, "bot_framework.role_management.repos.protocols.i_user_repo": 1769084322.4937305, "bot_framework.protocols.i_next_step_handler_registrar": 1769084004.6439037, "bot_framework.protocols.i_notify_replacer": 1769084002.6966827, "bot_framework.flows.request_role_flow.repos.redis_request_role_flow_state_storage": 1769085246.826745, "bot_framework.telegram.services.callback_handler_registry": 1769084470.2490964, "bot_framework.telegram.services.callback_answerer": 1769084469.9261, "bot_framework.protocols.i_message_replacer": 1769084002.435014, "bot_framework.flows.request_role_flow.handlers.show_roles_handler": 1769085306.591576, "bot_framework.language_management.repos.phrase_repo": 1769084243.5227506, "bot_framework.telegram.services.telegram_message_deleter": 1769084473.5893543, "bot_framework.telegram.services.markdown_escaper": 1769084471.9465578, "bot_framework.protocols.i_message_service": 1769084004.900513, "bot_framework.flows.request_role_flow.protocols.i_role_rejection_notifier": 1769085208.7589476, "bot_framework.telegram.services.telegram_notify_replacer": 1769084473.9205675, "bot_framework.flow_management.services": 1769084168.9666657, "bot_framework.flows.request_role_flow.handlers.reject_role_handler": 1769085305.819845, "bot_framework.entities.role_name": 1769083916.667053, "bot_framework.language_management.repos.protocols.i_phrase_repo": 1769084242.6450753, "bot_framework.base_protocols.get_all": 1769083855.009075, "bot_framework.entities.role": 1769083916.922229, "bot_framework.flow_management.protocols": 1769084166.6405058, "bot_framework.flows.request_role_flow.actions": 1769085247.5899746, "bot_framework.protocols.i_markdown_to_html_converter": 1769084005.4519954, "bot_framework.protocols.i_callback_answerer": 1769084002.9617207, "bot_framework.flow_management.protocols.i_flow_message_deleter": 1769084166.0523162, "bot_framework.base_protocols.read_sequence_by_user_id": 1769083855.771228, "bot_framework.telegram.services.telegram_message_core": 1769084472.610504, "bot_framework.flows.request_role_flow": 1769085307.3666294, "bot_framework.flows.request_role_flow.actions.role_rejection_notifier": 1769085248.0919287, "bot_framework.role_management.repos": 1769084323.6982272, "bot_framework.telegram": 1769084474.6506, "bot_framework.flows.request_role_flow.protocols": 1769085208.0295548, "bot_framework.language_management.repos.protocols": 1769084243.2496955, "bot_framework.protocols.i_display_width_calculator": 1769084005.7322984, "bot_framework.services": 1769084056.5520177, "bot_framework.flows.request_role_flow.handlers.request_role_command_handler": 1769085306.084152, "bot_framework.role_management.entities": 1769084322.1825702, "bot_framework.entities.bot_message": 1769083917.9839096, "bot_framework.flows.request_role_flow.request_role_flow_router": 1769085306.8499892, "bot_framework.language_management.entities": 1769084242.3164392, "bot_framework.entities": 1769083919.04307, "bot_framework.flows.request_role_flow.protocols.i_role_list_presenter": 1769085209.5044606, "bot_framework.telegram.services.next_step_handler_registrar": 1769084470.9087143, "bot_framework.flow_management.protocols.i_flow_stack_storage": 1769084165.4345882, "bot_framework.telegram.services.telegram_message_sender": 1769084472.9412436, "bot_framework.telegram.middleware.ensure_user_middleware": 1769084469.2707036, "bot_framework.protocols.i_callback_handler": 1769084003.2307417, "bot_framework.telegram.services.close_callback_handler": 1769084471.2744713, "bot_framework.flow_management.repos": 1769084167.5311947, "bot_framework.telegram.protocols": 1769084468.5594232, "bot_framework.entities.bot_callback": 1769083918.244317, "bot_framework.flow_management.entities.flow_stack_entry": 1769084164.8425195, "bot_framework.base_protocols.create": 1769083853.98272, "bot_framework.telegram.middleware.i_middleware": 1769084468.9338174, "bot_framework.base_protocols.update": 1769083854.509304, "bot_framework.role_management": 1769084324.5974207, "bot_framework.flows.request_role_flow.protocols.i_role_assigner": 1769085208.5152862, "bot_framework.flows.request_role_flow.repos": 1769085246.580789, "bot_framework.flows.request_role_flow.protocols.i_role_request_sender": 1769085209.2575047, "bot_framework.flows.request_role_flow.actions.role_request_sender": 1769085248.3403716, "bot_framework.protocols.i_callback_handler_registry": 1769084003.4943173, "bot_framework.flows.request_role_flow.protocols.i_request_role_flow_state_storage": 1769085208.2803967, "bot_framework.telegram.services.ensure_user_exists": 1769084471.6043963, "bot_framework.flow_management.repos.redis_flow_stack_storage": 1769084166.9345844, "bot_framework.language_management.repos.language_repo": 1769084243.852085, "bot_framework.flows.request_role_flow.entities.request_role_flow_state": 1769085207.7967117, "bot_framework.role_management.repos.protocols": 1769084323.0900862, "bot_framework.protocols.i_ensure_user_exists": 1769084005.1737041, "bot_framework.entities.user": 1769083918.7785232, "bot_framework.telegram.services.markdown_to_html_converter": 1769084472.3220336, "bot_framework.flows.request_role_flow.actions.role_assigner": 1769085247.837689, "bot_framework.flow_management.services.flow_stack_navigator": 1769084168.686316, "bot_framework.base_protocols.delete": 1769083854.753036, "bot_framework.telegram.services": 1769084474.2942996, "bot_framework.services.remaining_time_formatter": 1769084056.2851474, "bot_framework.flows.request_role_flow.entities": 1769085207.5434995, "bot_framework.flows.request_role_flow.presenters.role_list_presenter": 1769085247.3311746, "bot_framework.protocols.i_card_field_formatter": 1769084006.2695477, "bot_framework.protocols.i_remaining_time_formatter": 1769084006.0039587, "bot_framework.protocols.i_message_handler": 1769084003.7654371, "bot_framework.flows.request_role_flow.handlers.role_selection_handler": 1769085306.3401542, "bot_framework.role_management.services.protocols": 1769084324.3071895, "bot_framework.language_management.repos.protocols.i_language_repo": 1769084242.9498317, "bot_framework.role_management.services": 1769084323.9990444, "bot_framework.base_protocols.get_by_name": 1769083855.5196767, "bot_framework.language_management.entities.phrase": 1769084241.7249546, "bot_framework.role_management.entities.user_role": 1769084321.834536, "bot_framework.telegram.services.message_handler_registry": 1769084470.571668, "bot_framework.language_management.repos": 1769084244.13264, "bot_framework.entities.bot_user": 1769083918.5131512, "bot_framework.protocols.i_message_sender": 1769084001.9209344, "bot_framework.entities.keyboard": 1769083917.7090988, "bot_framework.role_management.repos.protocols.i_role_repo": 1769084322.7735682, "bot_framework.entities.button": 1769083917.4651392, "bot_framework.flow_management.services.flow_message_deleter": 1769084168.1023543, "bot_framework.flows.request_role_flow.handlers": 1769085305.3205793, "bot_framework.protocols": 1769084006.5500958, "bot_framework.protocols.i_flow_router": 1769084004.351776, "bot_framework.flow_management.repos.redis_flow_message_storage": 1769084167.2503977, "bot_framework.flows": 1769085197.6823816, "bot_framework.flows.request_role_flow.exceptions": 1769085248.5914905, "bot_framework.flow_management.entities": 1769084165.1624818, "bot_framework.role_management.repos.role_repo": 1769084323.3947604, "bot_framework.entities.parse_mode": 1769083917.2031662, "bot_framework.base_protocols.read": 1769083854.260077, "bot_framework.telegram.services.telegram_message_replacer": 1769084473.260089}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.14
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: bot-framework
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Reusable Telegram bot framework with Clean Architecture
|
|
5
|
+
Author-email: Vladimir Sumarokov <sumarokov.vp@gmail.com>
|
|
6
|
+
Requires-Python: >=3.13
|
|
7
|
+
Requires-Dist: pydantic>=2.11.0
|
|
8
|
+
Provides-Extra: all
|
|
9
|
+
Requires-Dist: psycopg[binary]>=3.2.0; extra == 'all'
|
|
10
|
+
Requires-Dist: pytelegrambotapi>=4.29.0; extra == 'all'
|
|
11
|
+
Requires-Dist: redis>=6.0.0; extra == 'all'
|
|
12
|
+
Provides-Extra: postgres
|
|
13
|
+
Requires-Dist: psycopg[binary]>=3.2.0; extra == 'postgres'
|
|
14
|
+
Provides-Extra: redis
|
|
15
|
+
Requires-Dist: redis>=6.0.0; extra == 'redis'
|
|
16
|
+
Provides-Extra: telegram
|
|
17
|
+
Requires-Dist: pytelegrambotapi>=4.29.0; extra == 'telegram'
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
|
|
20
|
+
# Bot Framework
|
|
21
|
+
|
|
22
|
+
Reusable Python library for building Telegram bots with Clean Architecture principles.
|
|
23
|
+
|
|
24
|
+
## Installation
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# Basic installation
|
|
28
|
+
pip install bot-framework
|
|
29
|
+
|
|
30
|
+
# With Telegram support
|
|
31
|
+
pip install bot-framework[telegram]
|
|
32
|
+
|
|
33
|
+
# With all optional dependencies
|
|
34
|
+
pip install bot-framework[all]
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Features
|
|
38
|
+
|
|
39
|
+
- **Clean Architecture** - Layered architecture with import-linter enforcement
|
|
40
|
+
- **Telegram Integration** - Ready-to-use services for pyTelegramBotAPI
|
|
41
|
+
- **Flow Management** - Dialog flow stack management with Redis storage
|
|
42
|
+
- **Role Management** - User roles and permissions
|
|
43
|
+
- **Language Management** - Multilingual phrase support
|
|
44
|
+
- **Request Role Flow** - Pre-built flow for role requests
|
|
45
|
+
|
|
46
|
+
## Quick Start
|
|
47
|
+
|
|
48
|
+
```python
|
|
49
|
+
from bot_framework import Button, Keyboard, IMessageSender
|
|
50
|
+
from bot_framework.telegram import TelegramMessageSender
|
|
51
|
+
|
|
52
|
+
# Create keyboard
|
|
53
|
+
keyboard = Keyboard(rows=[
|
|
54
|
+
[Button(text="Option 1", callback_data="opt1")],
|
|
55
|
+
[Button(text="Option 2", callback_data="opt2")],
|
|
56
|
+
])
|
|
57
|
+
|
|
58
|
+
# Send message (implement IMessageSender or use TelegramMessageSender)
|
|
59
|
+
sender.send(chat_id=123, text="Choose an option:", keyboard=keyboard)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Optional Dependencies
|
|
63
|
+
|
|
64
|
+
- `telegram` - pyTelegramBotAPI for Telegram bot integration
|
|
65
|
+
- `postgres` - psycopg for PostgreSQL database support
|
|
66
|
+
- `redis` - Redis for caching and flow state management
|
|
67
|
+
- `all` - All optional dependencies
|
|
68
|
+
|
|
69
|
+
## License
|
|
70
|
+
|
|
71
|
+
MIT
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Bot Framework
|
|
2
|
+
|
|
3
|
+
Reusable Python library for building Telegram bots with Clean Architecture principles.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Basic installation
|
|
9
|
+
pip install bot-framework
|
|
10
|
+
|
|
11
|
+
# With Telegram support
|
|
12
|
+
pip install bot-framework[telegram]
|
|
13
|
+
|
|
14
|
+
# With all optional dependencies
|
|
15
|
+
pip install bot-framework[all]
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Features
|
|
19
|
+
|
|
20
|
+
- **Clean Architecture** - Layered architecture with import-linter enforcement
|
|
21
|
+
- **Telegram Integration** - Ready-to-use services for pyTelegramBotAPI
|
|
22
|
+
- **Flow Management** - Dialog flow stack management with Redis storage
|
|
23
|
+
- **Role Management** - User roles and permissions
|
|
24
|
+
- **Language Management** - Multilingual phrase support
|
|
25
|
+
- **Request Role Flow** - Pre-built flow for role requests
|
|
26
|
+
|
|
27
|
+
## Quick Start
|
|
28
|
+
|
|
29
|
+
```python
|
|
30
|
+
from bot_framework import Button, Keyboard, IMessageSender
|
|
31
|
+
from bot_framework.telegram import TelegramMessageSender
|
|
32
|
+
|
|
33
|
+
# Create keyboard
|
|
34
|
+
keyboard = Keyboard(rows=[
|
|
35
|
+
[Button(text="Option 1", callback_data="opt1")],
|
|
36
|
+
[Button(text="Option 2", callback_data="opt2")],
|
|
37
|
+
])
|
|
38
|
+
|
|
39
|
+
# Send message (implement IMessageSender or use TelegramMessageSender)
|
|
40
|
+
sender.send(chat_id=123, text="Choose an option:", keyboard=keyboard)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Optional Dependencies
|
|
44
|
+
|
|
45
|
+
- `telegram` - pyTelegramBotAPI for Telegram bot integration
|
|
46
|
+
- `postgres` - psycopg for PostgreSQL database support
|
|
47
|
+
- `redis` - Redis for caching and flow state management
|
|
48
|
+
- `all` - All optional dependencies
|
|
49
|
+
|
|
50
|
+
## License
|
|
51
|
+
|
|
52
|
+
MIT
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Bot Framework - A reusable Python library for building Telegram bots.
|
|
3
|
+
|
|
4
|
+
This package provides core components for building Telegram bots with
|
|
5
|
+
Clean Architecture principles.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from bot_framework.entities.bot_callback import BotCallback
|
|
9
|
+
from bot_framework.entities.bot_message import BotMessage, BotMessageUser
|
|
10
|
+
from bot_framework.entities.bot_user import BotUser
|
|
11
|
+
from bot_framework.entities.button import Button
|
|
12
|
+
from bot_framework.entities.keyboard import Keyboard
|
|
13
|
+
from bot_framework.entities.language_code import LanguageCode
|
|
14
|
+
from bot_framework.entities.parse_mode import ParseMode
|
|
15
|
+
from bot_framework.entities.role import Role
|
|
16
|
+
from bot_framework.entities.role_name import RoleName
|
|
17
|
+
from bot_framework.entities.user import User
|
|
18
|
+
from bot_framework.protocols.i_callback_answerer import ICallbackAnswerer
|
|
19
|
+
from bot_framework.protocols.i_callback_handler import ICallbackHandler
|
|
20
|
+
from bot_framework.protocols.i_callback_handler_registry import (
|
|
21
|
+
ICallbackHandlerRegistry,
|
|
22
|
+
)
|
|
23
|
+
from bot_framework.protocols.i_flow_router import IFlowRouter
|
|
24
|
+
from bot_framework.protocols.i_message_deleter import IMessageDeleter
|
|
25
|
+
from bot_framework.protocols.i_message_handler import IMessageHandler
|
|
26
|
+
from bot_framework.protocols.i_message_handler_registry import IMessageHandlerRegistry
|
|
27
|
+
from bot_framework.protocols.i_message_replacer import IMessageReplacer
|
|
28
|
+
from bot_framework.protocols.i_message_sender import IMessageSender
|
|
29
|
+
from bot_framework.protocols.i_notify_replacer import INotifyReplacer
|
|
30
|
+
|
|
31
|
+
__version__ = "0.1.0"
|
|
32
|
+
|
|
33
|
+
__all__ = [
|
|
34
|
+
# Entities
|
|
35
|
+
"BotCallback",
|
|
36
|
+
"BotMessage",
|
|
37
|
+
"BotMessageUser",
|
|
38
|
+
"BotUser",
|
|
39
|
+
"Button",
|
|
40
|
+
"Keyboard",
|
|
41
|
+
"LanguageCode",
|
|
42
|
+
"ParseMode",
|
|
43
|
+
"Role",
|
|
44
|
+
"RoleName",
|
|
45
|
+
"User",
|
|
46
|
+
# Protocols
|
|
47
|
+
"ICallbackAnswerer",
|
|
48
|
+
"ICallbackHandler",
|
|
49
|
+
"ICallbackHandlerRegistry",
|
|
50
|
+
"IFlowRouter",
|
|
51
|
+
"IMessageDeleter",
|
|
52
|
+
"IMessageHandler",
|
|
53
|
+
"IMessageHandlerRegistry",
|
|
54
|
+
"IMessageReplacer",
|
|
55
|
+
"IMessageSender",
|
|
56
|
+
"INotifyReplacer",
|
|
57
|
+
]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from .create import CreateProtocol
|
|
2
|
+
from .delete import DeleteProtocol
|
|
3
|
+
from .get_all import GetAllProtocol
|
|
4
|
+
from .get_by_key import GetByKeyProtocol
|
|
5
|
+
from .get_by_name import GetByNameProtocol
|
|
6
|
+
from .read import ReadProtocol
|
|
7
|
+
from .read_sequence_by_user_id import (
|
|
8
|
+
ReadSequenceByUserIdProtocol,
|
|
9
|
+
)
|
|
10
|
+
from .update import UpdateProtocol
|
|
11
|
+
|
|
12
|
+
__all__ = [
|
|
13
|
+
"CreateProtocol",
|
|
14
|
+
"ReadProtocol",
|
|
15
|
+
"UpdateProtocol",
|
|
16
|
+
"DeleteProtocol",
|
|
17
|
+
"GetAllProtocol",
|
|
18
|
+
"GetByKeyProtocol",
|
|
19
|
+
"GetByNameProtocol",
|
|
20
|
+
"ReadSequenceByUserIdProtocol",
|
|
21
|
+
]
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from .bot_callback import BotCallback
|
|
2
|
+
from .bot_message import BotMessage, BotMessageUser
|
|
3
|
+
from .bot_user import BotUser
|
|
4
|
+
from .button import Button
|
|
5
|
+
from .keyboard import Keyboard
|
|
6
|
+
from .language_code import LanguageCode
|
|
7
|
+
from .parse_mode import ParseMode
|
|
8
|
+
from .role import Role
|
|
9
|
+
from .role_name import RoleName
|
|
10
|
+
from .user import User
|
|
11
|
+
|
|
12
|
+
__all__ = [
|
|
13
|
+
"BotCallback",
|
|
14
|
+
"BotMessage",
|
|
15
|
+
"BotMessageUser",
|
|
16
|
+
"BotUser",
|
|
17
|
+
"Button",
|
|
18
|
+
"Keyboard",
|
|
19
|
+
"LanguageCode",
|
|
20
|
+
"ParseMode",
|
|
21
|
+
"Role",
|
|
22
|
+
"RoleName",
|
|
23
|
+
"User",
|
|
24
|
+
]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from typing import Any
|
|
2
|
+
|
|
3
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class BotCallback(BaseModel):
|
|
7
|
+
model_config = ConfigDict(from_attributes=True)
|
|
8
|
+
|
|
9
|
+
id: str
|
|
10
|
+
user_id: int
|
|
11
|
+
data: str | None
|
|
12
|
+
message_id: int | None
|
|
13
|
+
message_chat_id: int | None
|
|
14
|
+
user_language_code: str | None = None
|
|
15
|
+
_original: Any = Field(default=None, exclude=True)
|
|
16
|
+
|
|
17
|
+
def get_original(self) -> Any:
|
|
18
|
+
return self._original
|
|
19
|
+
|
|
20
|
+
def set_original(self, original: Any) -> None:
|
|
21
|
+
self._original = original
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from typing import Any
|
|
2
|
+
|
|
3
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class BotMessageUser(BaseModel):
|
|
7
|
+
model_config = ConfigDict(from_attributes=True)
|
|
8
|
+
|
|
9
|
+
id: int
|
|
10
|
+
language_code: str | None = None
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class BotMessage(BaseModel):
|
|
14
|
+
model_config = ConfigDict(from_attributes=True)
|
|
15
|
+
|
|
16
|
+
chat_id: int
|
|
17
|
+
message_id: int
|
|
18
|
+
user_id: int | None = None
|
|
19
|
+
text: str | None = None
|
|
20
|
+
from_user: BotMessageUser | None = None
|
|
21
|
+
_original: Any = Field(default=None, exclude=True)
|
|
22
|
+
|
|
23
|
+
def get_original(self) -> Any:
|
|
24
|
+
return self._original
|
|
25
|
+
|
|
26
|
+
def set_original(self, original: Any) -> None:
|
|
27
|
+
self._original = original
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from typing import Any
|
|
2
|
+
|
|
3
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class BotUser(BaseModel):
|
|
7
|
+
model_config = ConfigDict(from_attributes=True)
|
|
8
|
+
|
|
9
|
+
id: int
|
|
10
|
+
username: str | None
|
|
11
|
+
first_name: str | None
|
|
12
|
+
last_name: str | None
|
|
13
|
+
language_code: str
|
|
14
|
+
is_bot: bool
|
|
15
|
+
is_premium: bool
|
|
16
|
+
_original: Any = Field(default=None, exclude=True)
|
|
17
|
+
|
|
18
|
+
def get_original(self) -> Any:
|
|
19
|
+
return self._original
|
|
20
|
+
|
|
21
|
+
def set_original(self, original: Any) -> None:
|
|
22
|
+
self._original = original
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from datetime import datetime
|
|
2
|
+
|
|
3
|
+
from pydantic import (
|
|
4
|
+
BaseModel, ConfigDict, Field,
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Role(BaseModel):
|
|
9
|
+
id: int = 0
|
|
10
|
+
name: str
|
|
11
|
+
description: str | None = None
|
|
12
|
+
is_active: bool = True
|
|
13
|
+
created_at: datetime = Field(default_factory=datetime.now)
|
|
14
|
+
updated_at: datetime = Field(default_factory=datetime.now)
|
|
15
|
+
|
|
16
|
+
model_config = ConfigDict(from_attributes=True)
|