telegrinder 0.3.0.post1__py3-none-any.whl → 0.3.1__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 +1 -1
- telegrinder/bot/cute_types/callback_query.py +2 -14
- telegrinder/bot/cute_types/chat_join_request.py +1 -1
- telegrinder/bot/cute_types/chat_member_updated.py +1 -1
- telegrinder/bot/cute_types/inline_query.py +1 -6
- telegrinder/bot/cute_types/message.py +1 -21
- telegrinder/bot/cute_types/update.py +1 -1
- telegrinder/bot/dispatch/abc.py +45 -3
- telegrinder/bot/dispatch/dispatch.py +8 -8
- telegrinder/bot/dispatch/handler/func.py +8 -10
- telegrinder/bot/dispatch/process.py +1 -1
- telegrinder/bot/dispatch/view/base.py +31 -20
- telegrinder/bot/dispatch/view/raw.py +20 -16
- telegrinder/bot/dispatch/waiter_machine/actions.py +3 -0
- telegrinder/bot/dispatch/waiter_machine/hasher/callback.py +15 -18
- telegrinder/bot/dispatch/waiter_machine/hasher/hasher.py +21 -13
- telegrinder/bot/dispatch/waiter_machine/hasher/message.py +15 -16
- telegrinder/bot/dispatch/waiter_machine/hasher/state.py +6 -6
- telegrinder/bot/dispatch/waiter_machine/machine.py +24 -30
- telegrinder/bot/dispatch/waiter_machine/short_state.py +10 -4
- telegrinder/bot/rules/abc.py +42 -7
- telegrinder/bot/rules/adapter/raw_update.py +1 -3
- telegrinder/bot/rules/callback_data.py +7 -7
- telegrinder/bot/rules/chat_join.py +5 -5
- telegrinder/bot/rules/command.py +1 -1
- telegrinder/bot/rules/enum_text.py +4 -1
- telegrinder/bot/rules/fuzzy.py +1 -1
- telegrinder/bot/rules/inline.py +6 -7
- telegrinder/bot/rules/integer.py +1 -1
- telegrinder/bot/rules/is_from.py +20 -20
- telegrinder/bot/rules/markup.py +6 -3
- telegrinder/bot/rules/mention.py +1 -1
- telegrinder/bot/rules/message.py +2 -2
- telegrinder/bot/rules/message_entities.py +2 -2
- telegrinder/bot/rules/node.py +1 -1
- telegrinder/bot/rules/regex.py +1 -1
- telegrinder/bot/rules/start.py +2 -2
- telegrinder/bot/rules/text.py +6 -4
- telegrinder/bot/rules/update.py +1 -1
- telegrinder/bot/scenario/checkbox.py +9 -1
- telegrinder/msgspec_utils.py +11 -3
- telegrinder/node/attachment.py +6 -6
- telegrinder/node/base.py +17 -11
- telegrinder/node/callback_query.py +1 -1
- telegrinder/node/command.py +1 -1
- telegrinder/node/composer.py +5 -2
- telegrinder/node/container.py +1 -1
- telegrinder/node/event.py +1 -1
- telegrinder/node/message.py +1 -1
- telegrinder/node/polymorphic.py +6 -3
- telegrinder/node/rule.py +1 -1
- telegrinder/node/source.py +5 -7
- telegrinder/node/text.py +2 -2
- telegrinder/node/tools/generator.py +1 -2
- telegrinder/node/update.py +3 -3
- telegrinder/rules.py +2 -0
- telegrinder/tools/buttons.py +4 -4
- telegrinder/tools/error_handler/abc.py +7 -7
- telegrinder/tools/error_handler/error_handler.py +58 -47
- telegrinder/tools/formatting/html.py +0 -2
- telegrinder/tools/functional.py +3 -0
- telegrinder/tools/global_context/telegrinder_ctx.py +2 -0
- telegrinder/tools/i18n/__init__.py +1 -1
- telegrinder/tools/i18n/{base.py → abc.py} +0 -0
- telegrinder/tools/i18n/middleware/__init__.py +1 -1
- telegrinder/tools/i18n/middleware/{base.py → abc.py} +3 -2
- telegrinder/tools/i18n/simple.py +11 -12
- telegrinder/tools/keyboard.py +9 -9
- telegrinder/tools/magic.py +8 -4
- {telegrinder-0.3.0.post1.dist-info → telegrinder-0.3.1.dist-info}/METADATA +1 -1
- {telegrinder-0.3.0.post1.dist-info → telegrinder-0.3.1.dist-info}/RECORD +73 -73
- {telegrinder-0.3.0.post1.dist-info → telegrinder-0.3.1.dist-info}/LICENSE +0 -0
- {telegrinder-0.3.0.post1.dist-info → telegrinder-0.3.1.dist-info}/WHEEL +0 -0
|
@@ -3,21 +3,32 @@ import typing
|
|
|
3
3
|
|
|
4
4
|
from fntypes.result import Error, Ok, Result
|
|
5
5
|
|
|
6
|
-
from telegrinder.api import API
|
|
6
|
+
from telegrinder.api.api import API
|
|
7
7
|
from telegrinder.bot.dispatch.context import Context
|
|
8
8
|
from telegrinder.modules import logger
|
|
9
|
+
from telegrinder.node.base import is_node
|
|
10
|
+
from telegrinder.tools.error_handler.abc import ABCErrorHandler, Event, Handler
|
|
11
|
+
from telegrinder.tools.error_handler.error import CatcherError
|
|
9
12
|
from telegrinder.tools.magic import magic_bundle
|
|
10
13
|
|
|
11
|
-
from .abc import ABCErrorHandler, EventT, Handler
|
|
12
|
-
from .error import CatcherError
|
|
13
|
-
|
|
14
14
|
F = typing.TypeVar("F", bound="FuncCatcher")
|
|
15
15
|
ExceptionT = typing.TypeVar("ExceptionT", bound=BaseException, contravariant=True)
|
|
16
16
|
FuncCatcher = typing.Callable[typing.Concatenate[ExceptionT, ...], typing.Awaitable[typing.Any]]
|
|
17
17
|
|
|
18
18
|
|
|
19
|
+
async def run_handler(
|
|
20
|
+
handler: Handler,
|
|
21
|
+
event: typing.Any,
|
|
22
|
+
ctx: dict[str, typing.Any],
|
|
23
|
+
) -> typing.Any:
|
|
24
|
+
annotations = tuple(handler.__annotations__.values())
|
|
25
|
+
start_idx = 0 if is_node(None if not annotations else annotations[0]) else 1
|
|
26
|
+
context = magic_bundle(handler, ctx, start_idx=start_idx)
|
|
27
|
+
return await (handler(event, **context) if start_idx == 1 else handler(**context))
|
|
28
|
+
|
|
29
|
+
|
|
19
30
|
@dataclasses.dataclass(frozen=True, repr=False, slots=True)
|
|
20
|
-
class Catcher(typing.Generic[
|
|
31
|
+
class Catcher(typing.Generic[Event]):
|
|
21
32
|
func: FuncCatcher[BaseException]
|
|
22
33
|
exceptions: list[type[BaseException] | BaseException] = dataclasses.field(
|
|
23
34
|
default_factory=lambda: [],
|
|
@@ -37,20 +48,29 @@ class Catcher(typing.Generic[EventT]):
|
|
|
37
48
|
|
|
38
49
|
async def __call__(
|
|
39
50
|
self,
|
|
40
|
-
handler: Handler
|
|
41
|
-
event:
|
|
51
|
+
handler: Handler,
|
|
52
|
+
event: Event,
|
|
42
53
|
api: API,
|
|
43
54
|
ctx: Context,
|
|
44
55
|
) -> Result[typing.Any, BaseException]:
|
|
45
56
|
try:
|
|
46
|
-
return Ok(await handler
|
|
57
|
+
return Ok(await run_handler(handler, event, ctx))
|
|
47
58
|
except BaseException as exc:
|
|
48
|
-
return await self.
|
|
59
|
+
return await self.run(api, event, ctx, exc, handler.__name__)
|
|
60
|
+
|
|
61
|
+
def match_exception(self, exception: BaseException) -> bool:
|
|
62
|
+
for exc in self.exceptions:
|
|
63
|
+
if isinstance(exc, type) and type(exception) is exc:
|
|
64
|
+
return True
|
|
65
|
+
if isinstance(exc, object) and type(exception) is type(exc):
|
|
66
|
+
return True if not exc.args else exc.args == exception.args
|
|
67
|
+
|
|
68
|
+
return False
|
|
49
69
|
|
|
50
|
-
async def
|
|
70
|
+
async def run(
|
|
51
71
|
self,
|
|
52
72
|
api: API,
|
|
53
|
-
event:
|
|
73
|
+
event: Event,
|
|
54
74
|
ctx: Context,
|
|
55
75
|
exception: BaseException,
|
|
56
76
|
handler_name: str,
|
|
@@ -61,26 +81,14 @@ class Catcher(typing.Generic[EventT]):
|
|
|
61
81
|
exception, handler_name, self.func.__name__
|
|
62
82
|
)
|
|
63
83
|
)
|
|
64
|
-
return Ok(
|
|
65
|
-
|
|
66
|
-
exception,
|
|
67
|
-
**magic_bundle(self.func, {"event": event, "api": api} | ctx), # type: ignore
|
|
68
|
-
)
|
|
69
|
-
)
|
|
84
|
+
return Ok(await run_handler(self.func, event, {"event": event, "api": api} | ctx))
|
|
85
|
+
|
|
70
86
|
logger.debug("Failed to match exception {!r}.", exception.__class__.__name__)
|
|
71
87
|
return Error(exception)
|
|
72
88
|
|
|
73
|
-
def match_exception(self, exception: BaseException) -> bool:
|
|
74
|
-
for exc in self.exceptions:
|
|
75
|
-
if isinstance(exc, type) and type(exception) is exc:
|
|
76
|
-
return True
|
|
77
|
-
if isinstance(exc, object) and type(exception) is type(exc):
|
|
78
|
-
return True if not exc.args else exc.args == exception.args
|
|
79
|
-
return False
|
|
80
|
-
|
|
81
89
|
|
|
82
|
-
class ErrorHandler(ABCErrorHandler[
|
|
83
|
-
def __init__(self, catcher: Catcher[
|
|
90
|
+
class ErrorHandler(ABCErrorHandler[Event]):
|
|
91
|
+
def __init__(self, catcher: Catcher[Event] | None = None, /) -> None:
|
|
84
92
|
self.catcher = catcher
|
|
85
93
|
|
|
86
94
|
def __repr__(self) -> str:
|
|
@@ -103,8 +111,8 @@ class ErrorHandler(ABCErrorHandler[EventT]):
|
|
|
103
111
|
):
|
|
104
112
|
"""Register the catcher.
|
|
105
113
|
|
|
106
|
-
:param logging: Logging the result of the catcher at the level
|
|
107
|
-
:param raise_exception: Raise an exception if the catcher
|
|
114
|
+
:param logging: Logging the result of the catcher at the level `DEBUG`.
|
|
115
|
+
:param raise_exception: Raise an exception if the catcher has not started.
|
|
108
116
|
:param ignore_errors: Ignore errors that may occur.
|
|
109
117
|
"""
|
|
110
118
|
|
|
@@ -121,10 +129,22 @@ class ErrorHandler(ABCErrorHandler[EventT]):
|
|
|
121
129
|
|
|
122
130
|
return decorator
|
|
123
131
|
|
|
132
|
+
def _process_catcher_error(self, error: CatcherError) -> Result[None, BaseException]:
|
|
133
|
+
assert self.catcher is not None
|
|
134
|
+
|
|
135
|
+
if self.catcher.raise_exception:
|
|
136
|
+
raise error.exc from None
|
|
137
|
+
if self.catcher.logging:
|
|
138
|
+
logger.error(error.message)
|
|
139
|
+
if not self.catcher.ignore_errors:
|
|
140
|
+
return Error(error.exc)
|
|
141
|
+
|
|
142
|
+
return Ok(None)
|
|
143
|
+
|
|
124
144
|
async def process(
|
|
125
145
|
self,
|
|
126
|
-
handler: Handler
|
|
127
|
-
event:
|
|
146
|
+
handler: Handler,
|
|
147
|
+
event: Event,
|
|
128
148
|
api: API,
|
|
129
149
|
ctx: Context,
|
|
130
150
|
) -> Result[typing.Any, BaseException]:
|
|
@@ -143,27 +163,15 @@ class ErrorHandler(ABCErrorHandler[EventT]):
|
|
|
143
163
|
)
|
|
144
164
|
)
|
|
145
165
|
|
|
146
|
-
def process_catcher_error(self, error: CatcherError) -> Result[None, BaseException]:
|
|
147
|
-
assert self.catcher is not None
|
|
148
|
-
|
|
149
|
-
if self.catcher.raise_exception:
|
|
150
|
-
raise error.exc from None
|
|
151
|
-
if self.catcher.logging:
|
|
152
|
-
logger.error(error.message)
|
|
153
|
-
if not self.catcher.ignore_errors:
|
|
154
|
-
return Error(error.exc)
|
|
155
|
-
|
|
156
|
-
return Ok(None)
|
|
157
|
-
|
|
158
166
|
async def run(
|
|
159
167
|
self,
|
|
160
|
-
handler: Handler
|
|
161
|
-
event:
|
|
168
|
+
handler: Handler,
|
|
169
|
+
event: Event,
|
|
162
170
|
api: API,
|
|
163
171
|
ctx: Context,
|
|
164
172
|
) -> Result[typing.Any, BaseException]:
|
|
165
173
|
if not self.catcher:
|
|
166
|
-
return Ok(await handler
|
|
174
|
+
return Ok(await run_handler(handler, event, ctx))
|
|
167
175
|
|
|
168
176
|
match await self.process(handler, event, api, ctx):
|
|
169
177
|
case Ok(value) as ok:
|
|
@@ -176,7 +184,10 @@ class ErrorHandler(ABCErrorHandler[EventT]):
|
|
|
176
184
|
return ok
|
|
177
185
|
case Error(exc) as err:
|
|
178
186
|
if isinstance(exc, CatcherError):
|
|
179
|
-
return self.
|
|
187
|
+
return self._process_catcher_error(exc)
|
|
180
188
|
if self.catcher.ignore_errors:
|
|
181
189
|
return Ok(None)
|
|
182
190
|
return err
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
__all__ = ("Catcher", "ErrorHandler")
|
telegrinder/tools/functional.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import re
|
|
1
2
|
import typing
|
|
2
3
|
|
|
3
4
|
import vbml
|
|
@@ -19,6 +20,7 @@ class TelegrinderContext(GlobalContext):
|
|
|
19
20
|
|
|
20
21
|
__ctx_name__ = "telegrinder"
|
|
21
22
|
|
|
23
|
+
vbml_pattern_flags: re.RegexFlag | None = None
|
|
22
24
|
vbml_patcher: typing.ClassVar[vbml.Patcher] = ctx_var(vbml.Patcher(), const=True)
|
|
23
25
|
|
|
24
26
|
|
|
File without changes
|
|
@@ -2,6 +2,7 @@ import typing
|
|
|
2
2
|
from abc import abstractmethod
|
|
3
3
|
|
|
4
4
|
from telegrinder.bot.cute_types.base import BaseCute
|
|
5
|
+
from telegrinder.bot.dispatch.context import Context
|
|
5
6
|
from telegrinder.bot.dispatch.middleware import ABCMiddleware
|
|
6
7
|
from telegrinder.tools.i18n import ABCI18n, I18nEnum
|
|
7
8
|
|
|
@@ -9,14 +10,14 @@ T = typing.TypeVar("T", bound=BaseCute)
|
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
class ABCTranslatorMiddleware(ABCMiddleware[T]):
|
|
12
|
-
def __init__(self, i18n: ABCI18n):
|
|
13
|
+
def __init__(self, i18n: ABCI18n) -> None:
|
|
13
14
|
self.i18n = i18n
|
|
14
15
|
|
|
15
16
|
@abstractmethod
|
|
16
17
|
async def get_locale(self, event: T) -> str:
|
|
17
18
|
pass
|
|
18
19
|
|
|
19
|
-
async def pre(self, event: T, ctx:
|
|
20
|
+
async def pre(self, event: T, ctx: Context) -> bool:
|
|
20
21
|
ctx[I18nEnum.I18N] = self.i18n.get_translator_by_locale(await self.get_locale(event))
|
|
21
22
|
return True
|
|
22
23
|
|
telegrinder/tools/i18n/simple.py
CHANGED
|
@@ -3,12 +3,20 @@
|
|
|
3
3
|
import gettext
|
|
4
4
|
import os
|
|
5
5
|
|
|
6
|
-
from telegrinder.tools.i18n import ABCI18n
|
|
7
|
-
|
|
6
|
+
from telegrinder.tools.i18n.abc import ABCI18n, ABCTranslator
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class SimpleTranslator(ABCTranslator):
|
|
10
|
+
def __init__(self, locale: str, g: gettext.GNUTranslations) -> None:
|
|
11
|
+
self.g = g
|
|
12
|
+
super().__init__(locale)
|
|
13
|
+
|
|
14
|
+
def get(self, __key: str, *args: object, **kwargs: object) -> str:
|
|
15
|
+
return self.g.gettext(__key).format(*args, **kwargs)
|
|
8
16
|
|
|
9
17
|
|
|
10
18
|
class SimpleI18n(ABCI18n):
|
|
11
|
-
def __init__(self, folder: str, domain: str, default_locale: str):
|
|
19
|
+
def __init__(self, folder: str, domain: str, default_locale: str) -> None:
|
|
12
20
|
self.folder = folder
|
|
13
21
|
self.domain = domain
|
|
14
22
|
self.default_locale = default_locale
|
|
@@ -32,13 +40,4 @@ class SimpleI18n(ABCI18n):
|
|
|
32
40
|
return SimpleTranslator(locale, self.translators.get(locale, self.translators[self.default_locale]))
|
|
33
41
|
|
|
34
42
|
|
|
35
|
-
class SimpleTranslator(ABCTranslator):
|
|
36
|
-
def __init__(self, locale: str, g: gettext.GNUTranslations):
|
|
37
|
-
self.g = g
|
|
38
|
-
super().__init__(locale)
|
|
39
|
-
|
|
40
|
-
def get(self, __key: str, *args, **kwargs) -> str:
|
|
41
|
-
return self.g.gettext(__key).format(*args, **kwargs)
|
|
42
|
-
|
|
43
|
-
|
|
44
43
|
__all__ = ("SimpleI18n", "SimpleTranslator")
|
telegrinder/tools/keyboard.py
CHANGED
|
@@ -11,12 +11,16 @@ from telegrinder.types.objects import (
|
|
|
11
11
|
ReplyKeyboardRemove,
|
|
12
12
|
)
|
|
13
13
|
|
|
14
|
-
from .buttons import Button,
|
|
14
|
+
from .buttons import Button, InlineButton, KeyboardButton, RowButtons
|
|
15
15
|
|
|
16
16
|
DictStrAny: typing.TypeAlias = dict[str, typing.Any]
|
|
17
17
|
AnyMarkup: typing.TypeAlias = InlineKeyboardMarkup | ReplyKeyboardMarkup
|
|
18
18
|
|
|
19
19
|
|
|
20
|
+
def copy_keyboard(keyboard: list[list[DictStrAny]]) -> list[list[DictStrAny]]:
|
|
21
|
+
return [row.copy() for row in keyboard]
|
|
22
|
+
|
|
23
|
+
|
|
20
24
|
@dataclasses.dataclass(kw_only=True, slots=True)
|
|
21
25
|
class KeyboardModel:
|
|
22
26
|
resize_keyboard: bool
|
|
@@ -26,13 +30,8 @@ class KeyboardModel:
|
|
|
26
30
|
keyboard: list[list[DictStrAny]]
|
|
27
31
|
|
|
28
32
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
return [row.copy() for row in keyboard]
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
class ABCMarkup(ABC, typing.Generic[ButtonT]):
|
|
35
|
-
BUTTON: type[ButtonT]
|
|
33
|
+
class ABCMarkup(ABC, typing.Generic[KeyboardButton]):
|
|
34
|
+
BUTTON: type[KeyboardButton]
|
|
36
35
|
keyboard: list[list[DictStrAny]]
|
|
37
36
|
|
|
38
37
|
@abstractmethod
|
|
@@ -47,7 +46,7 @@ class ABCMarkup(ABC, typing.Generic[ButtonT]):
|
|
|
47
46
|
def get_empty_markup(cls) -> AnyMarkup:
|
|
48
47
|
return cls().get_markup()
|
|
49
48
|
|
|
50
|
-
def add(self, row_or_button: RowButtons[
|
|
49
|
+
def add(self, row_or_button: RowButtons[KeyboardButton] | KeyboardButton) -> typing.Self:
|
|
51
50
|
if not len(self.keyboard):
|
|
52
51
|
self.row()
|
|
53
52
|
|
|
@@ -129,4 +128,5 @@ __all__ = (
|
|
|
129
128
|
"InlineKeyboard",
|
|
130
129
|
"Keyboard",
|
|
131
130
|
"KeyboardModel",
|
|
131
|
+
"copy_keyboard",
|
|
132
132
|
)
|
telegrinder/tools/magic.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import enum
|
|
2
|
-
import inspect
|
|
3
2
|
import types
|
|
4
3
|
import typing
|
|
5
4
|
from functools import wraps
|
|
@@ -40,10 +39,15 @@ def resolve_arg_names(func: FuncType, start_idx: int = 1) -> tuple[str, ...]:
|
|
|
40
39
|
|
|
41
40
|
@cache_magic_value("__default_args__")
|
|
42
41
|
def get_default_args(func: FuncType) -> dict[str, typing.Any]:
|
|
43
|
-
|
|
44
|
-
if
|
|
42
|
+
kwdefaults = func.__kwdefaults__
|
|
43
|
+
if kwdefaults:
|
|
44
|
+
return kwdefaults
|
|
45
|
+
|
|
46
|
+
defaults = func.__defaults__
|
|
47
|
+
if not defaults:
|
|
45
48
|
return {}
|
|
46
|
-
|
|
49
|
+
|
|
50
|
+
return {k: defaults[i] for i, k in enumerate(resolve_arg_names(func, start_idx=0)[-len(defaults) :])}
|
|
47
51
|
|
|
48
52
|
|
|
49
53
|
def get_annotations(func: FuncType, *, return_type: bool = False) -> dict[str, typing.Any]:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
telegrinder/__init__.py,sha256=
|
|
1
|
+
telegrinder/__init__.py,sha256=ZQ-xhn_0nk9NS87NNjHy2GyQip0i_oigR389jEq_kd0,5407
|
|
2
2
|
telegrinder/api/__init__.py,sha256=AFZ07UvdL4rhq9lZpB-j9JuGOONmfkvt8RfdG71ND38,226
|
|
3
3
|
telegrinder/api/api.py,sha256=OSwm2_mgHS9jCsKy_vdOJzVtH-j6v68ypkdtvKFlQ3w,2877
|
|
4
4
|
telegrinder/api/error.py,sha256=6_KBR819Tg9mLI7w5aHHYnrS8VSDYNkWIrHCnfgCFKk,422
|
|
@@ -8,23 +8,23 @@ telegrinder/bot/__init__.py,sha256=8Ft0wFT2n-l-DkImsGcxxbt3zgJumMwUIEGTfn0k8XU,2
|
|
|
8
8
|
telegrinder/bot/bot.py,sha256=qrB7GHglZG1wuXdPrAQ7kFzcuOT1og_ybwuem_feL-U,2780
|
|
9
9
|
telegrinder/bot/cute_types/__init__.py,sha256=moe1mSKesNqUBf8m11s2wiL0fJIa8JOEHRqDr2Tira8,639
|
|
10
10
|
telegrinder/bot/cute_types/base.py,sha256=EmQH0UZSzVdaMNT_9ExbN9-YUdngIUory97aDj_-rIM,8084
|
|
11
|
-
telegrinder/bot/cute_types/callback_query.py,sha256=
|
|
12
|
-
telegrinder/bot/cute_types/chat_join_request.py,sha256=
|
|
13
|
-
telegrinder/bot/cute_types/chat_member_updated.py,sha256
|
|
14
|
-
telegrinder/bot/cute_types/inline_query.py,sha256=
|
|
15
|
-
telegrinder/bot/cute_types/message.py,sha256=
|
|
16
|
-
telegrinder/bot/cute_types/update.py,sha256=
|
|
11
|
+
telegrinder/bot/cute_types/callback_query.py,sha256=N28q25vMVyDf-QmWAwAl4onoQZrB3W_IX7_j3mDOCzA,18760
|
|
12
|
+
telegrinder/bot/cute_types/chat_join_request.py,sha256=j0jD9Cmt4ysKp_xYhoCcXKmV-sM4aLcHQSJsmavNMLQ,1997
|
|
13
|
+
telegrinder/bot/cute_types/chat_member_updated.py,sha256=-wl9pA6dgX0TFpnxEaaBnAhM4j7JSRB5qtH4hRodx88,6332
|
|
14
|
+
telegrinder/bot/cute_types/inline_query.py,sha256=hy1uGP0i60Kq3B42kJMx1AIDVewozB20YXbYt9ZEuN8,2326
|
|
15
|
+
telegrinder/bot/cute_types/message.py,sha256=NC7aiiARc1JnPs0M_oRiqo3ym5U2T8sGn2-2zeDIXAw,138662
|
|
16
|
+
telegrinder/bot/cute_types/update.py,sha256=WYpivvNVe0wIHQx3AfIKK3S6cDp2AfNvAQHDwytPOOA,3163
|
|
17
17
|
telegrinder/bot/cute_types/utils.py,sha256=oJWRS7TCkvDhckwhc8yxw3Qn1NKvqDtEGTZ745qEbMg,2530
|
|
18
18
|
telegrinder/bot/dispatch/__init__.py,sha256=UzU0PM22YKtM6J2aVuGRx7NEFUGnbUZlmReCFSTCNek,2477
|
|
19
|
-
telegrinder/bot/dispatch/abc.py,sha256=
|
|
19
|
+
telegrinder/bot/dispatch/abc.py,sha256=RowAphsEhhK9cYAHqs3h0Bnx_ja2WBoWAIkMCsNOGk8,2340
|
|
20
20
|
telegrinder/bot/dispatch/context.py,sha256=vt_kGYhyc0RKQ2GKsbi-ewAwy2OTqaho6H3wVf8c-2g,2607
|
|
21
|
-
telegrinder/bot/dispatch/dispatch.py,sha256=
|
|
21
|
+
telegrinder/bot/dispatch/dispatch.py,sha256=p5vod5FuVxC3523WnZgL8N73cGoZ5Y9159RXoZC0zII,6346
|
|
22
22
|
telegrinder/bot/dispatch/handler/__init__.py,sha256=PL17gyh9u9fHHz1yTglyBpRGoioqdMD5UxFAtmTidC0,911
|
|
23
23
|
telegrinder/bot/dispatch/handler/abc.py,sha256=FB2Xkiy-ZFsX2pEHfM7tCIXXjgWSouu07JYosICS9UA,578
|
|
24
24
|
telegrinder/bot/dispatch/handler/audio_reply.py,sha256=eNj9sO1auG8_HwZ3RGiegh7crqIQRcXuLeZ9Zfwc4vg,1358
|
|
25
25
|
telegrinder/bot/dispatch/handler/base.py,sha256=OnmDTgypbnrHMoDW_-UV--wIRn2Nlw2IM2EM5q2vF2w,1811
|
|
26
26
|
telegrinder/bot/dispatch/handler/document_reply.py,sha256=0SAvmcG9DwuZDJHd_si8itvnMWdhl9ajkviAtPzlkJM,1385
|
|
27
|
-
telegrinder/bot/dispatch/handler/func.py,sha256=
|
|
27
|
+
telegrinder/bot/dispatch/handler/func.py,sha256=XHWYHJOcVLGJD4Jo3pIlvGJ4hTsWQMp7ATGQ_KdGpUU,4794
|
|
28
28
|
telegrinder/bot/dispatch/handler/media_group_reply.py,sha256=0gyODXt2XOPCw-pbgdcun4sI4L2zTmbIvZgyUbO4Rl4,1394
|
|
29
29
|
telegrinder/bot/dispatch/handler/message_reply.py,sha256=kaPubePuj-poRgKfiJNLqweED9kr_0JADxssxr3JeBg,1137
|
|
30
30
|
telegrinder/bot/dispatch/handler/photo_reply.py,sha256=B9vqgIG7vc1hq5EGUI4tnpw97KNweNmu32F5Fgl3-IY,1358
|
|
@@ -32,7 +32,7 @@ telegrinder/bot/dispatch/handler/sticker_reply.py,sha256=E9DNupUhd4EWNUXcJDF6QWk
|
|
|
32
32
|
telegrinder/bot/dispatch/handler/video_reply.py,sha256=G3E1v60ubkmZ1m2CUxbTR08VQywu7D4VQHDAO_Jhlk8,1358
|
|
33
33
|
telegrinder/bot/dispatch/middleware/__init__.py,sha256=znQGQ0jnBioEXr-2RPHOkmDbjei4LEbaTjgiE9c8aXI,96
|
|
34
34
|
telegrinder/bot/dispatch/middleware/abc.py,sha256=O3aiE44XpjE6h9iXYc_uWNZCBxDH1KAFrLej4nsJhUI,413
|
|
35
|
-
telegrinder/bot/dispatch/process.py,sha256=
|
|
35
|
+
telegrinder/bot/dispatch/process.py,sha256=nnceowxYIknJatHQJRZjTN3qDNpC9r57qxiBajl7WQs,4206
|
|
36
36
|
telegrinder/bot/dispatch/return_manager/__init__.py,sha256=z1c9ZC_OdbEJ7utmA8jRiSjJQNTBLlTKmIQzrl-kDJs,602
|
|
37
37
|
telegrinder/bot/dispatch/return_manager/abc.py,sha256=O9k0oJqRbJXPQqEr3PGJAz7Hf2eYiNGRLYtXQq8E8-o,3671
|
|
38
38
|
telegrinder/bot/dispatch/return_manager/callback_query.py,sha256=x7FT1PioR6USsfeyNVyy8mWvP4Vkq-sysIl1OpZm-fI,722
|
|
@@ -40,58 +40,58 @@ telegrinder/bot/dispatch/return_manager/inline_query.py,sha256=pM41c53TyPkVY5o5H
|
|
|
40
40
|
telegrinder/bot/dispatch/return_manager/message.py,sha256=cLnY3sAJCvVr1iA3GpakwngHrm_5STPMES2ip0VhkuQ,1238
|
|
41
41
|
telegrinder/bot/dispatch/view/__init__.py,sha256=zef6oMILerYp9BZ7wQ_0K-4Ws0UZR5Bm9eTUqs8J0_Q,847
|
|
42
42
|
telegrinder/bot/dispatch/view/abc.py,sha256=tOfzTvlfX4-E5ZXCsPFfqhiNpowUwou1hbA68SW7dl0,984
|
|
43
|
-
telegrinder/bot/dispatch/view/base.py,sha256=
|
|
43
|
+
telegrinder/bot/dispatch/view/base.py,sha256=GQD2B3LPXZIcAnbwH3ocl2tYX2b_SnshoAx0AzFIqfA,6888
|
|
44
44
|
telegrinder/bot/dispatch/view/box.py,sha256=ydqvuReC7lUZmuNLCEAbs6xOWDWBUj99MpTMhX0jWT8,5530
|
|
45
45
|
telegrinder/bot/dispatch/view/callback_query.py,sha256=xMmg_ZFV2D0DYRNzoUn32K99N4pW_5avhe4MH5ipUE0,619
|
|
46
46
|
telegrinder/bot/dispatch/view/chat_join_request.py,sha256=NHrl9gDj65bE18nagfRxBmSYWznj6ov8uJFCK7C8VAI,494
|
|
47
47
|
telegrinder/bot/dispatch/view/chat_member.py,sha256=ZDZOxxD-YJZWuX82CCZ2WkGGYKKbFMSoFxpqJWfR4RQ,1238
|
|
48
48
|
telegrinder/bot/dispatch/view/inline_query.py,sha256=Zy9YmDLKOjwgDxPykvskMTTOzGCPlOel-mX3edmlu-k,573
|
|
49
49
|
telegrinder/bot/dispatch/view/message.py,sha256=dI_iL5ASVe36S7Ahrk36RVuMy0Xceb8kx5osgmhoe8M,1416
|
|
50
|
-
telegrinder/bot/dispatch/view/raw.py,sha256=
|
|
50
|
+
telegrinder/bot/dispatch/view/raw.py,sha256=gkyHkJgQheFWjY4AJC3cuz2pUOghHYpQEkCbQcinZWU,3573
|
|
51
51
|
telegrinder/bot/dispatch/waiter_machine/__init__.py,sha256=2I3MQpTAVFCHoHJUxAPCWUyasGOkdGSBKRETiTLgBpg,862
|
|
52
|
-
telegrinder/bot/dispatch/waiter_machine/actions.py,sha256=
|
|
52
|
+
telegrinder/bot/dispatch/waiter_machine/actions.py,sha256=q5sJAN6wdGSRq38bTfedVQZW1xK2WLlgNAviWpVqHEU,361
|
|
53
53
|
telegrinder/bot/dispatch/waiter_machine/hasher/__init__.py,sha256=nu0WhOWmGkhybOP-faiAFEx1nlYo_N_LW2AuAmbC_Z0,497
|
|
54
|
-
telegrinder/bot/dispatch/waiter_machine/hasher/callback.py,sha256=
|
|
55
|
-
telegrinder/bot/dispatch/waiter_machine/hasher/hasher.py,sha256=
|
|
56
|
-
telegrinder/bot/dispatch/waiter_machine/hasher/message.py,sha256=
|
|
57
|
-
telegrinder/bot/dispatch/waiter_machine/hasher/state.py,sha256=
|
|
58
|
-
telegrinder/bot/dispatch/waiter_machine/machine.py,sha256=
|
|
54
|
+
telegrinder/bot/dispatch/waiter_machine/hasher/callback.py,sha256=W-caGejmYBRx-yWdUPH-D54yPPBtESrroNLyVog8e2I,1587
|
|
55
|
+
telegrinder/bot/dispatch/waiter_machine/hasher/hasher.py,sha256=uP8IDlZ3VU4s4Xf2Mtf9SOluRn8BIcrmBSQtsfCXdPg,1735
|
|
56
|
+
telegrinder/bot/dispatch/waiter_machine/hasher/message.py,sha256=NoT2BaTrHVnyaaXsXTkf8riJZp8473-T3EXNri4y70I,1253
|
|
57
|
+
telegrinder/bot/dispatch/waiter_machine/hasher/state.py,sha256=hV4gdQD14dUgo6s_x-_PCIqeU3Ku7EtdoZk_t2fi3MQ,619
|
|
58
|
+
telegrinder/bot/dispatch/waiter_machine/machine.py,sha256=wVSsDjwlmrQl5uqdYLWwnPR906dYWWhKiQ9IwVC79Q4,5666
|
|
59
59
|
telegrinder/bot/dispatch/waiter_machine/middleware.py,sha256=6cXjKASm1I3QPW_FaNU62c1mOleRt9OsuwWY1_zyhwQ,2976
|
|
60
|
-
telegrinder/bot/dispatch/waiter_machine/short_state.py,sha256=
|
|
60
|
+
telegrinder/bot/dispatch/waiter_machine/short_state.py,sha256=GiYqVEL8RVVYgchRnIFiVyhB5KBI_trcytIoGHw_w7Q,1954
|
|
61
61
|
telegrinder/bot/polling/__init__.py,sha256=OqfIFPS_V6UrCg-vCv9pkMFzTKdNbDP2faBfATs_TGg,94
|
|
62
62
|
telegrinder/bot/polling/abc.py,sha256=qFiKzWTWENK-sSuShC5cPlM-JS4In2c8-1_ARdwdTms,442
|
|
63
63
|
telegrinder/bot/polling/polling.py,sha256=SOcVfmMS20M2O6ilXxvu507H7S8iNawebclfmwWJe3U,4765
|
|
64
64
|
telegrinder/bot/rules/__init__.py,sha256=nl2erwXAnICnZwAuqZr5wPm3tLjHGxMU7Qyi03Jym44,2859
|
|
65
|
-
telegrinder/bot/rules/abc.py,sha256=
|
|
65
|
+
telegrinder/bot/rules/abc.py,sha256=9E80uDt9hReMojD94RV9ZPwMRDqyn44ShhBIP6NnE-s,7282
|
|
66
66
|
telegrinder/bot/rules/adapter/__init__.py,sha256=rZNX-Squn4hsE19tW2q3x-f33ZB6yzgU5eoI1VB0TgI,445
|
|
67
67
|
telegrinder/bot/rules/adapter/abc.py,sha256=lPyieSDDr1z98rZ4W6Ic8QzHDzCEU9xIYrPKU9qDCas,682
|
|
68
68
|
telegrinder/bot/rules/adapter/errors.py,sha256=2r_UBTWm5-heU-NchBfobC1f848EWeC64nKvprGnAAY,73
|
|
69
69
|
telegrinder/bot/rules/adapter/event.py,sha256=XDeHYGwOS7bYsI5bP-iPg5Ut_dzGbTBC089OkJhSfpY,2772
|
|
70
70
|
telegrinder/bot/rules/adapter/node.py,sha256=VuC_LGGkZh6GKW3dCvfDZhbiA8WJyddY8xxzerUZ7us,1663
|
|
71
|
-
telegrinder/bot/rules/adapter/raw_update.py,sha256=
|
|
72
|
-
telegrinder/bot/rules/callback_data.py,sha256=
|
|
73
|
-
telegrinder/bot/rules/chat_join.py,sha256=
|
|
74
|
-
telegrinder/bot/rules/command.py,sha256=
|
|
75
|
-
telegrinder/bot/rules/enum_text.py,sha256=
|
|
71
|
+
telegrinder/bot/rules/adapter/raw_update.py,sha256=Pz_xs5dvfsf_FXi9iO0SJFq4JRnDNolYGXqCSP_0tPs,1007
|
|
72
|
+
telegrinder/bot/rules/callback_data.py,sha256=ZU9Qi5LyP_CNvpO8XTfNa0HKgX7H27N6oxz3znHNTTU,5569
|
|
73
|
+
telegrinder/bot/rules/chat_join.py,sha256=pHXQv9VMKmBO7OGcHJLk-a9rB5l6sOybFmOWvgh1PXU,1442
|
|
74
|
+
telegrinder/bot/rules/command.py,sha256=gYEWkrOr_xBWXbCnEXBrDs8EHRyW-pwrlascVRmS854,3906
|
|
75
|
+
telegrinder/bot/rules/enum_text.py,sha256=c-B3_iF6nZOnOY1A8s500W37XYeEyQaJIl1OU5aZ3V0,968
|
|
76
76
|
telegrinder/bot/rules/func.py,sha256=dqcxhC7dIP67Zi20iFz2jCWwwioM2NuemCM5dwpQDXg,769
|
|
77
|
-
telegrinder/bot/rules/fuzzy.py,sha256=
|
|
78
|
-
telegrinder/bot/rules/inline.py,sha256=
|
|
79
|
-
telegrinder/bot/rules/integer.py,sha256=
|
|
80
|
-
telegrinder/bot/rules/is_from.py,sha256=
|
|
81
|
-
telegrinder/bot/rules/markup.py,sha256=
|
|
82
|
-
telegrinder/bot/rules/mention.py,sha256=
|
|
83
|
-
telegrinder/bot/rules/message.py,sha256=
|
|
84
|
-
telegrinder/bot/rules/message_entities.py,sha256=
|
|
85
|
-
telegrinder/bot/rules/node.py,sha256=
|
|
86
|
-
telegrinder/bot/rules/regex.py,sha256=
|
|
77
|
+
telegrinder/bot/rules/fuzzy.py,sha256=GhI0Eqf5Y69bvIlYDvGbGH6RNQqW81aXK3YV5OVlZ04,670
|
|
78
|
+
telegrinder/bot/rules/inline.py,sha256=SKc9AAL5igUd2LX83Xoe2WCZUWPONcNqvdFcNge8fEQ,1921
|
|
79
|
+
telegrinder/bot/rules/integer.py,sha256=nDabEsuGfzC8cBuOtUCAkeWyFHW6u_BKvvcya2HJr-c,429
|
|
80
|
+
telegrinder/bot/rules/is_from.py,sha256=_ZFdPg6zAsXJ8Cb-sjcRc9fsonzmvGJvh-5Fca2JPTI,3700
|
|
81
|
+
telegrinder/bot/rules/markup.py,sha256=Y7PXvE0nlh5GHT2NJqtWzXMiWmGSkfPABF1WFo0xvrw,1328
|
|
82
|
+
telegrinder/bot/rules/mention.py,sha256=u5VQbEwb1BuYmXMLE0bxLde4fDcvEGCq3JAg0dhuaN8,429
|
|
83
|
+
telegrinder/bot/rules/message.py,sha256=1zwZW4JqQPGPmuy4j3hMxQTQPrp2l29MR9HYXJQHRMM,456
|
|
84
|
+
telegrinder/bot/rules/message_entities.py,sha256=S0vxpXPld7gGESMpk7lb37OnPXGcLYCWWXqcMMwQHHM,1085
|
|
85
|
+
telegrinder/bot/rules/node.py,sha256=CQGzT-pOmuh2Wkbq-1WvOzzWrM3vVsRlGEzBUCZ1v6w,886
|
|
86
|
+
telegrinder/bot/rules/regex.py,sha256=PKryH44NGqeKiW53OggwCsGSFh_rQTddMojQ3AQme5A,1147
|
|
87
87
|
telegrinder/bot/rules/rule_enum.py,sha256=35GwPKLBTG_ESn4TZLcFJTLNjYXAi_d9wrfIDexoEH8,2113
|
|
88
|
-
telegrinder/bot/rules/start.py,sha256=
|
|
88
|
+
telegrinder/bot/rules/start.py,sha256=AipwfOQ2LGCofvgouRmkIiY9mGFLlEUJ-7a3CLIiy4Q,1147
|
|
89
89
|
telegrinder/bot/rules/state.py,sha256=3hJTT2yVTqGbsdC52qCXqXyctnCZeZuNC7TkpfDjXic,975
|
|
90
|
-
telegrinder/bot/rules/text.py,sha256=
|
|
91
|
-
telegrinder/bot/rules/update.py,sha256
|
|
90
|
+
telegrinder/bot/rules/text.py,sha256=JyypoDCoR6LM2lmK0Ej5sfcXwtGwbLibY7-96w3a80s,987
|
|
91
|
+
telegrinder/bot/rules/update.py,sha256=-mE12-xy0AjOz9RVRVZ8vS7ohGCuf_bNmG26rDbrjfg,392
|
|
92
92
|
telegrinder/bot/scenario/__init__.py,sha256=nnPjdxdvjoEYYMRUEfWvIhZStiY1C984x1azdRRP9II,136
|
|
93
93
|
telegrinder/bot/scenario/abc.py,sha256=3UwnA9Nt6CETKm2YclD0gVbn-483fTSBriZADd3p-bM,468
|
|
94
|
-
telegrinder/bot/scenario/checkbox.py,sha256=
|
|
94
|
+
telegrinder/bot/scenario/checkbox.py,sha256=hF8YXPtTceijoJpCe-la2Hu0uStmUvn3g9bCHE3cOCQ,4561
|
|
95
95
|
telegrinder/bot/scenario/choice.py,sha256=9BiLViO7MEblBcYqlAkW_L3Nfa6NWcF3sj3X1GyIyBc,1480
|
|
96
96
|
telegrinder/client/__init__.py,sha256=ZiS1Wb_l_kv3FHzEEi1oXtFLwlA_HXmWOzeN0xA3E7Y,104
|
|
97
97
|
telegrinder/client/abc.py,sha256=OxsTX_PLYBEeFT9zpidFUzAbQL9BM7rQqru7zdn5DiQ,1611
|
|
@@ -99,56 +99,56 @@ telegrinder/client/aiohttp.py,sha256=gVYHhhfqdsC1OJ0x6AhK2V1x0yjeXe1PwDC0I3T6UPg
|
|
|
99
99
|
telegrinder/model.py,sha256=2s5UomOJiT97sxAlUc-ySDRWTq1Sx_6vs3jLrlVExM8,7263
|
|
100
100
|
telegrinder/modules.py,sha256=0EDTJsFhM6sa9P34gHOvrsMIV-uouq80iBraFvCbOA8,7743
|
|
101
101
|
telegrinder/msgspec_json.py,sha256=eDuRTP_bFYWtNPDINuzY2OGKXbdleaKyXh2mQgfJdMk,237
|
|
102
|
-
telegrinder/msgspec_utils.py,sha256=
|
|
102
|
+
telegrinder/msgspec_utils.py,sha256=Ta4B4Q4iKsTj2MR1eQQdzqn245yAXUSwWaBpM7W7lSI,12332
|
|
103
103
|
telegrinder/node/__init__.py,sha256=f4rkFvg0TeAjZehHd6qloxHZectsFsTWPh6opdekhSY,1376
|
|
104
|
-
telegrinder/node/attachment.py,sha256=
|
|
105
|
-
telegrinder/node/base.py,sha256=
|
|
106
|
-
telegrinder/node/callback_query.py,sha256=
|
|
107
|
-
telegrinder/node/command.py,sha256=
|
|
108
|
-
telegrinder/node/composer.py,sha256=
|
|
109
|
-
telegrinder/node/container.py,sha256=
|
|
110
|
-
telegrinder/node/event.py,sha256=
|
|
104
|
+
telegrinder/node/attachment.py,sha256=W172F6bgxacrfyNRQCzBntwNRqlz3wd-dKefpZE8Pmc,3025
|
|
105
|
+
telegrinder/node/base.py,sha256=meaj61Kiz8CcaT0FC7fASi2UyGoQhIBx0evFcHbKBLg,3975
|
|
106
|
+
telegrinder/node/callback_query.py,sha256=74vcdj_hQCWbIzPjQAid1eFN0TaJI_xvZqzel5ioykU,501
|
|
107
|
+
telegrinder/node/command.py,sha256=W6DAikNZ_TFliaoLuhpuIR_D0kLkMdrPd8HjsdcB4_Y,907
|
|
108
|
+
telegrinder/node/composer.py,sha256=TV_ByJ4gqM_cs4u5hS20l32tw1dlHLSkL8MWyueuhuA,6330
|
|
109
|
+
telegrinder/node/container.py,sha256=_EUXChgKJCiUnEgR06cNzk4suMHqyLbMKMU54Mqe5yE,835
|
|
110
|
+
telegrinder/node/event.py,sha256=6UxhoRFtfCCmRH28dJ9Bbqcs8DxgPp2KQRRfs2Ifb3o,2521
|
|
111
111
|
telegrinder/node/me.py,sha256=jLAkRbcIijiN7UXZ62Q5F7VgCsmlgBLiU1reffnESQc,417
|
|
112
|
-
telegrinder/node/message.py,sha256=
|
|
113
|
-
telegrinder/node/polymorphic.py,sha256=
|
|
114
|
-
telegrinder/node/rule.py,sha256=
|
|
112
|
+
telegrinder/node/message.py,sha256=ADlNe_b6fUX5jHpoqu4wSyHKR72pXgn6L6CXGaKAb0Q,443
|
|
113
|
+
telegrinder/node/polymorphic.py,sha256=bh53UQBReFz-d481OYEPyS7Ez6l3LcAanL6SEjp_ieU,2124
|
|
114
|
+
telegrinder/node/rule.py,sha256=pzNAWL7BLQdTAGs-Qe8X9uywHwN3vqMFoVjxqf-gzYk,2506
|
|
115
115
|
telegrinder/node/scope.py,sha256=SBC4j6MoqQxhtYzjgLYkfjd0-b8moFOEKm6hQt3fno8,708
|
|
116
|
-
telegrinder/node/source.py,sha256=
|
|
117
|
-
telegrinder/node/text.py,sha256=
|
|
116
|
+
telegrinder/node/source.py,sha256=1iR9DgmbtO38LRZi1yphteypFaDHAjIh_YPSeff0Lvw,2291
|
|
117
|
+
telegrinder/node/text.py,sha256=YiItMrhcXWkBu5DmUJ68hEDY3qs8gG6sEtqwcMwFS8o,569
|
|
118
118
|
telegrinder/node/tools/__init__.py,sha256=iyjs82g3brYGzpPsUQaoK6_r7YuQhRkJ61YjjuPOx9E,67
|
|
119
|
-
telegrinder/node/tools/generator.py,sha256=
|
|
120
|
-
telegrinder/node/update.py,sha256=
|
|
119
|
+
telegrinder/node/tools/generator.py,sha256=YBgQb4ykWT_5RKzkT4V3SmhtjWC0fhkCuKIyB3TkaOw,1102
|
|
120
|
+
telegrinder/node/update.py,sha256=Z1vKLIuuXnGjxKOGTJgsdDSJMsFQF8qMj9coX2hDJ30,447
|
|
121
121
|
telegrinder/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
122
|
-
telegrinder/rules.py,sha256=
|
|
122
|
+
telegrinder/rules.py,sha256=exnbhmzEKnIoYIrOBHgJmvC0cq8qTczFqS3lDPZsu_s,1145
|
|
123
123
|
telegrinder/tools/__init__.py,sha256=DJ1fzGRlxMJ4SzsSAW_hzk6q9YPfY5fxMX-hL7zTMak,2977
|
|
124
|
-
telegrinder/tools/buttons.py,sha256=
|
|
124
|
+
telegrinder/tools/buttons.py,sha256=3JONQh3ua2eFEyDj2aK47WUwcVrYVKWSwnPIOghy_e0,2940
|
|
125
125
|
telegrinder/tools/error_handler/__init__.py,sha256=WmYWZCNhhSk32j4lIOltEwzoYUx086TGTbOF5h3Ps7s,207
|
|
126
|
-
telegrinder/tools/error_handler/abc.py,sha256=
|
|
126
|
+
telegrinder/tools/error_handler/abc.py,sha256=KK6cE8_95scCt74l2NCumHbQmx4WSzRE88c3rl5pWB4,861
|
|
127
127
|
telegrinder/tools/error_handler/error.py,sha256=uLcG-wqyOeCEB45m8vMcGy5kZ87bGHUS_-fPw2cGE9s,221
|
|
128
|
-
telegrinder/tools/error_handler/error_handler.py,sha256=
|
|
128
|
+
telegrinder/tools/error_handler/error_handler.py,sha256=lM8ooBJPEUNTMDs8e71XBbJAWyf7vAMNgceLmKPxfrI,6680
|
|
129
129
|
telegrinder/tools/formatting/__init__.py,sha256=1tFuJjMpDphCIOR4uXQhptyLHuAZ26mYSFx_BQwL5Lo,1459
|
|
130
|
-
telegrinder/tools/formatting/html.py,sha256=
|
|
130
|
+
telegrinder/tools/formatting/html.py,sha256=230nOLTU5HpOzqdyvt3q7x5P5x3096vETH-4ADKdQsY,8710
|
|
131
131
|
telegrinder/tools/formatting/links.py,sha256=dYJy2qPxa4YGHYqSSCTv-6hXz0Aa0AGuzsLXwbxPZ9A,1112
|
|
132
132
|
telegrinder/tools/formatting/spec_html_formats.py,sha256=I-OULqlof8NOeSNGBddKkudqMLjsMAQ02Pc6qH_fNRQ,2617
|
|
133
|
-
telegrinder/tools/functional.py,sha256=
|
|
133
|
+
telegrinder/tools/functional.py,sha256=WBnOlSoIiO8glq8C3NmfGrgqQYK0yC6ISgQ3HPuRf1A,223
|
|
134
134
|
telegrinder/tools/global_context/__init__.py,sha256=5pF9growKd28WO739wk_DZUqCDw5hxs6eUcDtxTosX8,290
|
|
135
135
|
telegrinder/tools/global_context/abc.py,sha256=twwAmbTk49KGl_POImr4yj6POr-zdx8mz74McuphZH0,1644
|
|
136
136
|
telegrinder/tools/global_context/global_context.py,sha256=U-rdGgPJ5Cde4FuV6IP6jQWxlrvDaH6YYuBSA6RFWHU,13679
|
|
137
|
-
telegrinder/tools/global_context/telegrinder_ctx.py,sha256=
|
|
138
|
-
telegrinder/tools/i18n/__init__.py,sha256=
|
|
139
|
-
telegrinder/tools/i18n/
|
|
140
|
-
telegrinder/tools/i18n/middleware/__init__.py,sha256=
|
|
141
|
-
telegrinder/tools/i18n/middleware/
|
|
142
|
-
telegrinder/tools/i18n/simple.py,sha256=
|
|
137
|
+
telegrinder/tools/global_context/telegrinder_ctx.py,sha256=xky1mUflhHonhI6Q1Mwz2SBO-eKTTBs5qBJbZkuuRK0,724
|
|
138
|
+
telegrinder/tools/i18n/__init__.py,sha256=jMrrdFexgMU-BUiKf-p22VowQaqtQeaCb-Cs0fq2Tls,287
|
|
139
|
+
telegrinder/tools/i18n/abc.py,sha256=jxJVYiTplJaNeklkGiin-m7BkfZiac2fbVXTEdhNw6o,726
|
|
140
|
+
telegrinder/tools/i18n/middleware/__init__.py,sha256=a0yJUYmDbl1Mqf_cWx2TTmA3_Andlk8ixLJyDYAA23I,81
|
|
141
|
+
telegrinder/tools/i18n/middleware/abc.py,sha256=jspRUdBYMJ04c2VLOQNbkHCwxIrkqYJh2nG3AMeYUTM,727
|
|
142
|
+
telegrinder/tools/i18n/simple.py,sha256=w2SlMKYqJbDK9ScTwCAB6pdskqwtmqV7pK8yEhSUFDA,1564
|
|
143
143
|
telegrinder/tools/kb_set/__init__.py,sha256=k1KCQTnvEgJ2y4KlghhJWOh5rccwg_27cs8264NtMmk,156
|
|
144
144
|
telegrinder/tools/kb_set/base.py,sha256=mbZs-ViUErfSibzyN064IqZp76LBJPg3NB4D9v4VFtg,243
|
|
145
145
|
telegrinder/tools/kb_set/yaml.py,sha256=glk27r0L9Y8ibaPmTHMAEJZw-ED-ehmSo_NdJNKkrNs,2007
|
|
146
|
-
telegrinder/tools/keyboard.py,sha256=
|
|
146
|
+
telegrinder/tools/keyboard.py,sha256=DHrrn6W6rjBnwTRoDauKhtQq7f3SHj1YzofO7xEE6LQ,3880
|
|
147
147
|
telegrinder/tools/limited_dict.py,sha256=tb1WT4P3Oia5CsCBXTHzlFjrPnIgf9eHCkQ0zhAbEUg,1078
|
|
148
148
|
telegrinder/tools/loop_wrapper/__init__.py,sha256=ZQ5jmE1lOKnqJlMZ9k2OYmjvOEhOlHPijUWqZ4nHIgk,165
|
|
149
149
|
telegrinder/tools/loop_wrapper/abc.py,sha256=ET_Dp-kRz75Jo1fZB3qofUgEXN4FqlU0xH2diESKGCM,266
|
|
150
150
|
telegrinder/tools/loop_wrapper/loop_wrapper.py,sha256=h8Oii3FtLODRafxTez0ZEMNIZ8lhuNRwixO1u0jPhok,6763
|
|
151
|
-
telegrinder/tools/magic.py,sha256=
|
|
151
|
+
telegrinder/tools/magic.py,sha256=jPfjWoNF1cjOewMDpjAajUieSMKNeCSQzyS2fqNwD4M,4597
|
|
152
152
|
telegrinder/tools/parse_mode.py,sha256=JyQ-x9YAMPLhIIiUX01acyKkpWgs5TBA07W-iUyPHpE,92
|
|
153
153
|
telegrinder/tools/state_storage/__init__.py,sha256=G2EK2HwS0NbRQIu0OotVlgEYtO_GuzN1aJOIxmDEtz4,211
|
|
154
154
|
telegrinder/tools/state_storage/abc.py,sha256=9-UOmov9b7bQpeD0JukVsayU2FHmW45FeCnlPdayLhM,958
|
|
@@ -158,7 +158,7 @@ telegrinder/types/enums.py,sha256=q9URlXZvrjOUQKpLfV6v9uspBcLrdW0gtU-m8YDnj7w,19
|
|
|
158
158
|
telegrinder/types/methods.py,sha256=gIqcFHVogw8bbYO7C7tf1xdzE-m5EiKe998NW-IS2fI,201311
|
|
159
159
|
telegrinder/types/objects.py,sha256=tfQuJKWYH8l3vmvx65gg2yGh7kpfueU9wPMFsPZIu9k,246627
|
|
160
160
|
telegrinder/verification_utils.py,sha256=X7N0mHoOzbcYeKa5XxI_EFhmEGX5XNU3qqgbV8YRRa4,987
|
|
161
|
-
telegrinder-0.3.
|
|
162
|
-
telegrinder-0.3.
|
|
163
|
-
telegrinder-0.3.
|
|
164
|
-
telegrinder-0.3.
|
|
161
|
+
telegrinder-0.3.1.dist-info/LICENSE,sha256=Q0tKgU8mPOCQAkc6m__BrNIpRge8mPBQJDd59s21NZo,1095
|
|
162
|
+
telegrinder-0.3.1.dist-info/METADATA,sha256=zpaW8SHYEC-IUf0Sf23IuXK4xun8gRx_zOXoBbW4VDQ,3143
|
|
163
|
+
telegrinder-0.3.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
164
|
+
telegrinder-0.3.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|