telegrinder 0.3.1__py3-none-any.whl → 0.3.2__py3-none-any.whl
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.
Potentially problematic release.
This version of telegrinder might be problematic. Click here for more details.
- telegrinder/__init__.py +144 -144
- telegrinder/api/__init__.py +8 -8
- telegrinder/api/api.py +93 -93
- telegrinder/api/error.py +16 -16
- telegrinder/api/response.py +20 -20
- telegrinder/api/token.py +36 -36
- telegrinder/bot/__init__.py +66 -66
- telegrinder/bot/bot.py +76 -76
- telegrinder/bot/cute_types/__init__.py +11 -11
- telegrinder/bot/cute_types/base.py +258 -234
- telegrinder/bot/cute_types/callback_query.py +382 -382
- telegrinder/bot/cute_types/chat_join_request.py +61 -61
- telegrinder/bot/cute_types/chat_member_updated.py +160 -160
- telegrinder/bot/cute_types/inline_query.py +53 -53
- telegrinder/bot/cute_types/message.py +2631 -2631
- telegrinder/bot/cute_types/update.py +75 -75
- telegrinder/bot/cute_types/utils.py +92 -92
- telegrinder/bot/dispatch/__init__.py +55 -55
- telegrinder/bot/dispatch/abc.py +77 -77
- telegrinder/bot/dispatch/context.py +92 -92
- telegrinder/bot/dispatch/dispatch.py +202 -201
- telegrinder/bot/dispatch/handler/__init__.py +13 -13
- telegrinder/bot/dispatch/handler/abc.py +24 -24
- telegrinder/bot/dispatch/handler/audio_reply.py +44 -44
- telegrinder/bot/dispatch/handler/base.py +57 -57
- telegrinder/bot/dispatch/handler/document_reply.py +44 -44
- telegrinder/bot/dispatch/handler/func.py +128 -123
- telegrinder/bot/dispatch/handler/media_group_reply.py +43 -43
- telegrinder/bot/dispatch/handler/message_reply.py +36 -36
- telegrinder/bot/dispatch/handler/photo_reply.py +44 -44
- telegrinder/bot/dispatch/handler/sticker_reply.py +37 -37
- telegrinder/bot/dispatch/handler/video_reply.py +44 -44
- telegrinder/bot/dispatch/middleware/__init__.py +3 -3
- telegrinder/bot/dispatch/middleware/abc.py +16 -16
- telegrinder/bot/dispatch/process.py +132 -132
- telegrinder/bot/dispatch/return_manager/__init__.py +13 -13
- telegrinder/bot/dispatch/return_manager/abc.py +108 -108
- telegrinder/bot/dispatch/return_manager/callback_query.py +20 -20
- telegrinder/bot/dispatch/return_manager/inline_query.py +15 -15
- telegrinder/bot/dispatch/return_manager/message.py +36 -36
- telegrinder/bot/dispatch/view/__init__.py +13 -13
- telegrinder/bot/dispatch/view/abc.py +41 -41
- telegrinder/bot/dispatch/view/base.py +200 -211
- telegrinder/bot/dispatch/view/box.py +129 -129
- telegrinder/bot/dispatch/view/callback_query.py +17 -17
- telegrinder/bot/dispatch/view/chat_join_request.py +16 -16
- telegrinder/bot/dispatch/view/chat_member.py +39 -39
- telegrinder/bot/dispatch/view/inline_query.py +17 -17
- telegrinder/bot/dispatch/view/message.py +44 -44
- telegrinder/bot/dispatch/view/raw.py +114 -118
- telegrinder/bot/dispatch/waiter_machine/__init__.py +17 -17
- telegrinder/bot/dispatch/waiter_machine/actions.py +13 -13
- telegrinder/bot/dispatch/waiter_machine/hasher/__init__.py +8 -8
- telegrinder/bot/dispatch/waiter_machine/hasher/callback.py +57 -57
- telegrinder/bot/dispatch/waiter_machine/hasher/hasher.py +57 -57
- telegrinder/bot/dispatch/waiter_machine/hasher/message.py +53 -53
- telegrinder/bot/dispatch/waiter_machine/hasher/state.py +19 -19
- telegrinder/bot/dispatch/waiter_machine/machine.py +168 -170
- telegrinder/bot/dispatch/waiter_machine/middleware.py +89 -89
- telegrinder/bot/dispatch/waiter_machine/short_state.py +65 -65
- telegrinder/bot/polling/__init__.py +4 -4
- telegrinder/bot/polling/abc.py +25 -25
- telegrinder/bot/polling/polling.py +131 -131
- telegrinder/bot/rules/__init__.py +62 -62
- telegrinder/bot/rules/abc.py +238 -238
- telegrinder/bot/rules/adapter/__init__.py +9 -9
- telegrinder/bot/rules/adapter/abc.py +29 -29
- telegrinder/bot/rules/adapter/errors.py +5 -5
- telegrinder/bot/rules/adapter/event.py +76 -76
- telegrinder/bot/rules/adapter/node.py +48 -48
- telegrinder/bot/rules/adapter/raw_update.py +30 -30
- telegrinder/bot/rules/callback_data.py +171 -171
- telegrinder/bot/rules/chat_join.py +48 -48
- telegrinder/bot/rules/command.py +126 -126
- telegrinder/bot/rules/enum_text.py +36 -36
- telegrinder/bot/rules/func.py +26 -26
- telegrinder/bot/rules/fuzzy.py +24 -24
- telegrinder/bot/rules/inline.py +60 -60
- telegrinder/bot/rules/integer.py +20 -20
- telegrinder/bot/rules/is_from.py +146 -146
- telegrinder/bot/rules/markup.py +43 -43
- telegrinder/bot/rules/mention.py +14 -14
- telegrinder/bot/rules/message.py +17 -17
- telegrinder/bot/rules/message_entities.py +35 -35
- telegrinder/bot/rules/node.py +27 -27
- telegrinder/bot/rules/regex.py +37 -37
- telegrinder/bot/rules/rule_enum.py +72 -72
- telegrinder/bot/rules/start.py +42 -42
- telegrinder/bot/rules/state.py +37 -37
- telegrinder/bot/rules/text.py +33 -33
- telegrinder/bot/rules/update.py +15 -15
- telegrinder/bot/scenario/__init__.py +5 -5
- telegrinder/bot/scenario/abc.py +19 -19
- telegrinder/bot/scenario/checkbox.py +167 -147
- telegrinder/bot/scenario/choice.py +46 -44
- telegrinder/client/__init__.py +4 -4
- telegrinder/client/abc.py +75 -75
- telegrinder/client/aiohttp.py +130 -130
- telegrinder/model.py +244 -244
- telegrinder/modules.py +237 -237
- telegrinder/msgspec_json.py +14 -14
- telegrinder/msgspec_utils.py +410 -410
- telegrinder/node/__init__.py +20 -20
- telegrinder/node/attachment.py +92 -92
- telegrinder/node/base.py +143 -144
- telegrinder/node/callback_query.py +14 -14
- telegrinder/node/command.py +33 -33
- telegrinder/node/composer.py +196 -184
- telegrinder/node/container.py +27 -27
- telegrinder/node/event.py +71 -73
- telegrinder/node/me.py +16 -16
- telegrinder/node/message.py +14 -14
- telegrinder/node/polymorphic.py +48 -52
- telegrinder/node/rule.py +76 -76
- telegrinder/node/scope.py +38 -38
- telegrinder/node/source.py +71 -71
- telegrinder/node/text.py +21 -21
- telegrinder/node/tools/__init__.py +3 -3
- telegrinder/node/tools/generator.py +40 -40
- telegrinder/node/update.py +15 -15
- telegrinder/rules.py +0 -0
- telegrinder/tools/__init__.py +74 -74
- telegrinder/tools/buttons.py +79 -79
- telegrinder/tools/error_handler/__init__.py +7 -7
- telegrinder/tools/error_handler/abc.py +33 -33
- telegrinder/tools/error_handler/error.py +9 -9
- telegrinder/tools/error_handler/error_handler.py +193 -193
- telegrinder/tools/formatting/__init__.py +46 -46
- telegrinder/tools/formatting/html.py +308 -308
- telegrinder/tools/formatting/links.py +33 -33
- telegrinder/tools/formatting/spec_html_formats.py +111 -111
- telegrinder/tools/functional.py +12 -12
- telegrinder/tools/global_context/__init__.py +7 -7
- telegrinder/tools/global_context/abc.py +63 -63
- telegrinder/tools/global_context/global_context.py +412 -412
- telegrinder/tools/global_context/telegrinder_ctx.py +27 -27
- telegrinder/tools/i18n/__init__.py +12 -12
- telegrinder/tools/i18n/abc.py +32 -32
- telegrinder/tools/i18n/middleware/__init__.py +3 -3
- telegrinder/tools/i18n/middleware/abc.py +25 -25
- telegrinder/tools/i18n/simple.py +43 -43
- telegrinder/tools/kb_set/__init__.py +4 -4
- telegrinder/tools/kb_set/base.py +15 -15
- telegrinder/tools/kb_set/yaml.py +63 -63
- telegrinder/tools/keyboard.py +128 -128
- telegrinder/tools/limited_dict.py +37 -37
- telegrinder/tools/loop_wrapper/__init__.py +4 -4
- telegrinder/tools/loop_wrapper/abc.py +15 -15
- telegrinder/tools/loop_wrapper/loop_wrapper.py +216 -216
- telegrinder/tools/magic.py +168 -168
- telegrinder/tools/parse_mode.py +6 -6
- telegrinder/tools/state_storage/__init__.py +4 -4
- telegrinder/tools/state_storage/abc.py +35 -35
- telegrinder/tools/state_storage/memory.py +25 -25
- telegrinder/types/__init__.py +6 -6
- telegrinder/types/enums.py +672 -672
- telegrinder/types/methods.py +4633 -4633
- telegrinder/types/objects.py +6317 -6317
- telegrinder/verification_utils.py +32 -32
- {telegrinder-0.3.1.dist-info → telegrinder-0.3.2.dist-info}/LICENSE +22 -22
- {telegrinder-0.3.1.dist-info → telegrinder-0.3.2.dist-info}/METADATA +1 -1
- telegrinder-0.3.2.dist-info/RECORD +164 -0
- telegrinder-0.3.1.dist-info/RECORD +0 -164
- {telegrinder-0.3.1.dist-info → telegrinder-0.3.2.dist-info}/WHEEL +0 -0
telegrinder/tools/__init__.py
CHANGED
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
from .buttons import BaseButton
|
|
2
|
-
from .error_handler import ABCErrorHandler, Catcher, CatcherError, ErrorHandler
|
|
3
|
-
from .formatting import (
|
|
4
|
-
BaseSpecFormat,
|
|
5
|
-
ChannelBoostLink,
|
|
6
|
-
FormatString,
|
|
7
|
-
HTMLFormatter,
|
|
8
|
-
InviteChatLink,
|
|
9
|
-
Link,
|
|
10
|
-
Mention,
|
|
11
|
-
PreCode,
|
|
12
|
-
ResolveDomain,
|
|
13
|
-
SpecialFormat,
|
|
14
|
-
StartBotLink,
|
|
15
|
-
StartGroupLink,
|
|
16
|
-
TgEmoji,
|
|
17
|
-
block_quote,
|
|
18
|
-
bold,
|
|
19
|
-
channel_boost_link,
|
|
20
|
-
code_inline,
|
|
21
|
-
escape,
|
|
22
|
-
get_channel_boost_link,
|
|
23
|
-
get_invite_chat_link,
|
|
24
|
-
get_mention_link,
|
|
25
|
-
get_resolve_domain_link,
|
|
26
|
-
get_start_bot_link,
|
|
27
|
-
get_start_group_link,
|
|
28
|
-
invite_chat_link,
|
|
29
|
-
italic,
|
|
30
|
-
link,
|
|
31
|
-
mention,
|
|
32
|
-
pre_code,
|
|
33
|
-
resolve_domain,
|
|
34
|
-
spoiler,
|
|
35
|
-
start_bot_link,
|
|
36
|
-
start_group_link,
|
|
37
|
-
strike,
|
|
38
|
-
tg_emoji,
|
|
39
|
-
underline,
|
|
40
|
-
)
|
|
41
|
-
from .global_context import (
|
|
42
|
-
ABCGlobalContext,
|
|
43
|
-
CtxVar,
|
|
44
|
-
GlobalContext,
|
|
45
|
-
GlobalCtxVar,
|
|
46
|
-
TelegrinderContext,
|
|
47
|
-
ctx_var,
|
|
48
|
-
)
|
|
49
|
-
from .i18n import (
|
|
50
|
-
ABCI18n,
|
|
51
|
-
ABCTranslator,
|
|
52
|
-
ABCTranslatorMiddleware,
|
|
53
|
-
I18nEnum,
|
|
54
|
-
SimpleI18n,
|
|
55
|
-
SimpleTranslator,
|
|
56
|
-
)
|
|
57
|
-
from .kb_set import KeyboardSetBase, KeyboardSetYAML
|
|
58
|
-
from .keyboard import (
|
|
59
|
-
AnyMarkup,
|
|
60
|
-
Button,
|
|
61
|
-
InlineButton,
|
|
62
|
-
InlineKeyboard,
|
|
63
|
-
Keyboard,
|
|
64
|
-
RowButtons,
|
|
65
|
-
)
|
|
66
|
-
from .limited_dict import LimitedDict
|
|
67
|
-
from .loop_wrapper import ABCLoopWrapper, DelayedTask, Lifespan, LoopWrapper
|
|
68
|
-
from .magic import impl, magic_bundle, resolve_arg_names
|
|
69
|
-
from .parse_mode import ParseMode
|
|
70
|
-
from .state_storage import ABCStateStorage, MemoryStateStorage, StateData
|
|
71
|
-
|
|
72
|
-
__all__ = (
|
|
1
|
+
from .buttons import BaseButton
|
|
2
|
+
from .error_handler import ABCErrorHandler, Catcher, CatcherError, ErrorHandler
|
|
3
|
+
from .formatting import (
|
|
4
|
+
BaseSpecFormat,
|
|
5
|
+
ChannelBoostLink,
|
|
6
|
+
FormatString,
|
|
7
|
+
HTMLFormatter,
|
|
8
|
+
InviteChatLink,
|
|
9
|
+
Link,
|
|
10
|
+
Mention,
|
|
11
|
+
PreCode,
|
|
12
|
+
ResolveDomain,
|
|
13
|
+
SpecialFormat,
|
|
14
|
+
StartBotLink,
|
|
15
|
+
StartGroupLink,
|
|
16
|
+
TgEmoji,
|
|
17
|
+
block_quote,
|
|
18
|
+
bold,
|
|
19
|
+
channel_boost_link,
|
|
20
|
+
code_inline,
|
|
21
|
+
escape,
|
|
22
|
+
get_channel_boost_link,
|
|
23
|
+
get_invite_chat_link,
|
|
24
|
+
get_mention_link,
|
|
25
|
+
get_resolve_domain_link,
|
|
26
|
+
get_start_bot_link,
|
|
27
|
+
get_start_group_link,
|
|
28
|
+
invite_chat_link,
|
|
29
|
+
italic,
|
|
30
|
+
link,
|
|
31
|
+
mention,
|
|
32
|
+
pre_code,
|
|
33
|
+
resolve_domain,
|
|
34
|
+
spoiler,
|
|
35
|
+
start_bot_link,
|
|
36
|
+
start_group_link,
|
|
37
|
+
strike,
|
|
38
|
+
tg_emoji,
|
|
39
|
+
underline,
|
|
40
|
+
)
|
|
41
|
+
from .global_context import (
|
|
42
|
+
ABCGlobalContext,
|
|
43
|
+
CtxVar,
|
|
44
|
+
GlobalContext,
|
|
45
|
+
GlobalCtxVar,
|
|
46
|
+
TelegrinderContext,
|
|
47
|
+
ctx_var,
|
|
48
|
+
)
|
|
49
|
+
from .i18n import (
|
|
50
|
+
ABCI18n,
|
|
51
|
+
ABCTranslator,
|
|
52
|
+
ABCTranslatorMiddleware,
|
|
53
|
+
I18nEnum,
|
|
54
|
+
SimpleI18n,
|
|
55
|
+
SimpleTranslator,
|
|
56
|
+
)
|
|
57
|
+
from .kb_set import KeyboardSetBase, KeyboardSetYAML
|
|
58
|
+
from .keyboard import (
|
|
59
|
+
AnyMarkup,
|
|
60
|
+
Button,
|
|
61
|
+
InlineButton,
|
|
62
|
+
InlineKeyboard,
|
|
63
|
+
Keyboard,
|
|
64
|
+
RowButtons,
|
|
65
|
+
)
|
|
66
|
+
from .limited_dict import LimitedDict
|
|
67
|
+
from .loop_wrapper import ABCLoopWrapper, DelayedTask, Lifespan, LoopWrapper
|
|
68
|
+
from .magic import impl, magic_bundle, resolve_arg_names
|
|
69
|
+
from .parse_mode import ParseMode
|
|
70
|
+
from .state_storage import ABCStateStorage, MemoryStateStorage, StateData
|
|
71
|
+
|
|
72
|
+
__all__ = (
|
|
73
73
|
"ABCErrorHandler",
|
|
74
74
|
"ABCGlobalContext",
|
|
75
75
|
"ABCI18n",
|
|
@@ -142,5 +142,5 @@ __all__ = (
|
|
|
142
142
|
"start_group_link",
|
|
143
143
|
"strike",
|
|
144
144
|
"tg_emoji",
|
|
145
|
-
"underline",
|
|
146
|
-
)
|
|
145
|
+
"underline",
|
|
146
|
+
)
|
telegrinder/tools/buttons.py
CHANGED
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
import dataclasses
|
|
2
|
-
import typing
|
|
3
|
-
|
|
4
|
-
import msgspec
|
|
5
|
-
|
|
6
|
-
from telegrinder.msgspec_utils import DataclassInstance, encoder
|
|
7
|
-
from telegrinder.types.objects import (
|
|
8
|
-
CallbackGame,
|
|
9
|
-
KeyboardButtonPollType,
|
|
10
|
-
KeyboardButtonRequestChat,
|
|
11
|
-
KeyboardButtonRequestUsers,
|
|
12
|
-
LoginUrl,
|
|
13
|
-
SwitchInlineQueryChosenChat,
|
|
14
|
-
WebAppInfo,
|
|
15
|
-
)
|
|
16
|
-
|
|
17
|
-
KeyboardButton = typing.TypeVar("KeyboardButton", bound="BaseButton")
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
@dataclasses.dataclass
|
|
21
|
-
class BaseButton:
|
|
22
|
-
def get_data(self) -> dict[str, typing.Any]:
|
|
23
|
-
return {
|
|
24
|
-
k: v if k != "callback_data" or isinstance(v, str) else encoder.encode(v)
|
|
25
|
-
for k, v in dataclasses.asdict(self).items()
|
|
26
|
-
if v is not None
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
class RowButtons(typing.Generic[KeyboardButton]):
|
|
31
|
-
buttons: list[KeyboardButton]
|
|
32
|
-
auto_row: bool
|
|
33
|
-
|
|
34
|
-
def __init__(self, *buttons: KeyboardButton, auto_row: bool = True) -> None:
|
|
35
|
-
self.buttons = list(buttons)
|
|
36
|
-
self.auto_row = auto_row
|
|
37
|
-
|
|
38
|
-
def get_data(self) -> list[dict[str, typing.Any]]:
|
|
39
|
-
return [b.get_data() for b in self.buttons]
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
@dataclasses.dataclass(slots=True)
|
|
43
|
-
class Button(BaseButton):
|
|
44
|
-
text: str
|
|
45
|
-
request_contact: bool = dataclasses.field(default=False, kw_only=True)
|
|
46
|
-
request_location: bool = dataclasses.field(default=False, kw_only=True)
|
|
47
|
-
request_chat: dict[str, typing.Any] | KeyboardButtonRequestChat | None = dataclasses.field(
|
|
48
|
-
default=None, kw_only=True
|
|
49
|
-
)
|
|
50
|
-
request_user: dict[str, typing.Any] | KeyboardButtonRequestUsers | None = dataclasses.field(
|
|
51
|
-
default=None, kw_only=True
|
|
52
|
-
)
|
|
53
|
-
request_poll: dict[str, typing.Any] | KeyboardButtonPollType | None = dataclasses.field(
|
|
54
|
-
default=None, kw_only=True
|
|
55
|
-
)
|
|
56
|
-
web_app: dict[str, typing.Any] | WebAppInfo | None = dataclasses.field(default=None, kw_only=True)
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
@dataclasses.dataclass(slots=True)
|
|
60
|
-
class InlineButton(BaseButton):
|
|
61
|
-
text: str
|
|
62
|
-
url: str | None = dataclasses.field(default=None, kw_only=True)
|
|
63
|
-
login_url: dict[str, typing.Any] | LoginUrl | None = dataclasses.field(default=None, kw_only=True)
|
|
64
|
-
pay: bool | None = dataclasses.field(default=None, kw_only=True)
|
|
65
|
-
callback_data: str | dict[str, typing.Any] | DataclassInstance | msgspec.Struct | None = (
|
|
66
|
-
dataclasses.field(default=None, kw_only=True)
|
|
67
|
-
)
|
|
68
|
-
callback_game: dict[str, typing.Any] | CallbackGame | None = dataclasses.field(default=None, kw_only=True)
|
|
69
|
-
switch_inline_query: str | None = dataclasses.field(default=None, kw_only=True)
|
|
70
|
-
switch_inline_query_current_chat: str | None = dataclasses.field(default=None, kw_only=True)
|
|
71
|
-
switch_inline_query_chosen_chat: dict[str, typing.Any] | SwitchInlineQueryChosenChat | None = (
|
|
72
|
-
dataclasses.field(default=None, kw_only=True)
|
|
73
|
-
)
|
|
74
|
-
web_app: dict[str, typing.Any] | WebAppInfo | None = dataclasses.field(default=None, kw_only=True)
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
__all__ = (
|
|
1
|
+
import dataclasses
|
|
2
|
+
import typing
|
|
3
|
+
|
|
4
|
+
import msgspec
|
|
5
|
+
|
|
6
|
+
from telegrinder.msgspec_utils import DataclassInstance, encoder
|
|
7
|
+
from telegrinder.types.objects import (
|
|
8
|
+
CallbackGame,
|
|
9
|
+
KeyboardButtonPollType,
|
|
10
|
+
KeyboardButtonRequestChat,
|
|
11
|
+
KeyboardButtonRequestUsers,
|
|
12
|
+
LoginUrl,
|
|
13
|
+
SwitchInlineQueryChosenChat,
|
|
14
|
+
WebAppInfo,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
KeyboardButton = typing.TypeVar("KeyboardButton", bound="BaseButton")
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@dataclasses.dataclass
|
|
21
|
+
class BaseButton:
|
|
22
|
+
def get_data(self) -> dict[str, typing.Any]:
|
|
23
|
+
return {
|
|
24
|
+
k: v if k != "callback_data" or isinstance(v, str) else encoder.encode(v)
|
|
25
|
+
for k, v in dataclasses.asdict(self).items()
|
|
26
|
+
if v is not None
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class RowButtons(typing.Generic[KeyboardButton]):
|
|
31
|
+
buttons: list[KeyboardButton]
|
|
32
|
+
auto_row: bool
|
|
33
|
+
|
|
34
|
+
def __init__(self, *buttons: KeyboardButton, auto_row: bool = True) -> None:
|
|
35
|
+
self.buttons = list(buttons)
|
|
36
|
+
self.auto_row = auto_row
|
|
37
|
+
|
|
38
|
+
def get_data(self) -> list[dict[str, typing.Any]]:
|
|
39
|
+
return [b.get_data() for b in self.buttons]
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
@dataclasses.dataclass(slots=True)
|
|
43
|
+
class Button(BaseButton):
|
|
44
|
+
text: str
|
|
45
|
+
request_contact: bool = dataclasses.field(default=False, kw_only=True)
|
|
46
|
+
request_location: bool = dataclasses.field(default=False, kw_only=True)
|
|
47
|
+
request_chat: dict[str, typing.Any] | KeyboardButtonRequestChat | None = dataclasses.field(
|
|
48
|
+
default=None, kw_only=True
|
|
49
|
+
)
|
|
50
|
+
request_user: dict[str, typing.Any] | KeyboardButtonRequestUsers | None = dataclasses.field(
|
|
51
|
+
default=None, kw_only=True
|
|
52
|
+
)
|
|
53
|
+
request_poll: dict[str, typing.Any] | KeyboardButtonPollType | None = dataclasses.field(
|
|
54
|
+
default=None, kw_only=True
|
|
55
|
+
)
|
|
56
|
+
web_app: dict[str, typing.Any] | WebAppInfo | None = dataclasses.field(default=None, kw_only=True)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
@dataclasses.dataclass(slots=True)
|
|
60
|
+
class InlineButton(BaseButton):
|
|
61
|
+
text: str
|
|
62
|
+
url: str | None = dataclasses.field(default=None, kw_only=True)
|
|
63
|
+
login_url: dict[str, typing.Any] | LoginUrl | None = dataclasses.field(default=None, kw_only=True)
|
|
64
|
+
pay: bool | None = dataclasses.field(default=None, kw_only=True)
|
|
65
|
+
callback_data: str | dict[str, typing.Any] | DataclassInstance | msgspec.Struct | None = (
|
|
66
|
+
dataclasses.field(default=None, kw_only=True)
|
|
67
|
+
)
|
|
68
|
+
callback_game: dict[str, typing.Any] | CallbackGame | None = dataclasses.field(default=None, kw_only=True)
|
|
69
|
+
switch_inline_query: str | None = dataclasses.field(default=None, kw_only=True)
|
|
70
|
+
switch_inline_query_current_chat: str | None = dataclasses.field(default=None, kw_only=True)
|
|
71
|
+
switch_inline_query_chosen_chat: dict[str, typing.Any] | SwitchInlineQueryChosenChat | None = (
|
|
72
|
+
dataclasses.field(default=None, kw_only=True)
|
|
73
|
+
)
|
|
74
|
+
web_app: dict[str, typing.Any] | WebAppInfo | None = dataclasses.field(default=None, kw_only=True)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
__all__ = (
|
|
78
78
|
"BaseButton",
|
|
79
79
|
"Button",
|
|
80
80
|
"DataclassInstance",
|
|
81
81
|
"InlineButton",
|
|
82
|
-
"RowButtons",
|
|
83
|
-
)
|
|
82
|
+
"RowButtons",
|
|
83
|
+
)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
from .abc import ABCErrorHandler
|
|
2
|
-
from .error import CatcherError
|
|
3
|
-
from .error_handler import Catcher, ErrorHandler
|
|
4
|
-
|
|
5
|
-
__all__ = (
|
|
1
|
+
from .abc import ABCErrorHandler
|
|
2
|
+
from .error import CatcherError
|
|
3
|
+
from .error_handler import Catcher, ErrorHandler
|
|
4
|
+
|
|
5
|
+
__all__ = (
|
|
6
6
|
"ABCErrorHandler",
|
|
7
7
|
"Catcher",
|
|
8
8
|
"CatcherError",
|
|
9
|
-
"ErrorHandler",
|
|
10
|
-
)
|
|
9
|
+
"ErrorHandler",
|
|
10
|
+
)
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import typing
|
|
2
|
-
from abc import ABC, abstractmethod
|
|
3
|
-
|
|
4
|
-
from fntypes.result import Result
|
|
5
|
-
|
|
6
|
-
from telegrinder.api import API
|
|
7
|
-
from telegrinder.bot.dispatch.context import Context
|
|
8
|
-
|
|
9
|
-
Event = typing.TypeVar("Event")
|
|
10
|
-
Handler = typing.Callable[..., typing.Awaitable[typing.Any]]
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
class ABCErrorHandler(ABC, typing.Generic[Event]):
|
|
14
|
-
@abstractmethod
|
|
15
|
-
def __call__(
|
|
16
|
-
self,
|
|
17
|
-
*args: typing.Any,
|
|
18
|
-
**kwargs: typing.Any,
|
|
19
|
-
) -> typing.Callable[[typing.Callable[..., typing.Any]], typing.Callable[..., typing.Any]]:
|
|
20
|
-
"""Decorator for registering callback as a catcher for the error handler."""
|
|
21
|
-
|
|
22
|
-
@abstractmethod
|
|
23
|
-
async def run(
|
|
24
|
-
self,
|
|
25
|
-
handler: Handler,
|
|
26
|
-
event: Event,
|
|
27
|
-
api: API,
|
|
28
|
-
ctx: Context,
|
|
29
|
-
) -> Result[typing.Any, typing.Any]:
|
|
30
|
-
"""Run the error handler."""
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
__all__ = ("ABCErrorHandler",)
|
|
1
|
+
import typing
|
|
2
|
+
from abc import ABC, abstractmethod
|
|
3
|
+
|
|
4
|
+
from fntypes.result import Result
|
|
5
|
+
|
|
6
|
+
from telegrinder.api import API
|
|
7
|
+
from telegrinder.bot.dispatch.context import Context
|
|
8
|
+
|
|
9
|
+
Event = typing.TypeVar("Event")
|
|
10
|
+
Handler = typing.Callable[..., typing.Awaitable[typing.Any]]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ABCErrorHandler(ABC, typing.Generic[Event]):
|
|
14
|
+
@abstractmethod
|
|
15
|
+
def __call__(
|
|
16
|
+
self,
|
|
17
|
+
*args: typing.Any,
|
|
18
|
+
**kwargs: typing.Any,
|
|
19
|
+
) -> typing.Callable[[typing.Callable[..., typing.Any]], typing.Callable[..., typing.Any]]:
|
|
20
|
+
"""Decorator for registering callback as a catcher for the error handler."""
|
|
21
|
+
|
|
22
|
+
@abstractmethod
|
|
23
|
+
async def run(
|
|
24
|
+
self,
|
|
25
|
+
handler: Handler,
|
|
26
|
+
event: Event,
|
|
27
|
+
api: API,
|
|
28
|
+
ctx: Context,
|
|
29
|
+
) -> Result[typing.Any, typing.Any]:
|
|
30
|
+
"""Run the error handler."""
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
__all__ = ("ABCErrorHandler",)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
class CatcherError(BaseException):
|
|
2
|
-
__slots__ = ("exc", "message")
|
|
3
|
-
|
|
4
|
-
def __init__(self, exc: BaseException, message: str) -> None:
|
|
5
|
-
self.exc = exc
|
|
6
|
-
self.message = message
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
__all__ = ("CatcherError",)
|
|
1
|
+
class CatcherError(BaseException):
|
|
2
|
+
__slots__ = ("exc", "message")
|
|
3
|
+
|
|
4
|
+
def __init__(self, exc: BaseException, message: str) -> None:
|
|
5
|
+
self.exc = exc
|
|
6
|
+
self.message = message
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
__all__ = ("CatcherError",)
|