telegrinder 0.1.dev166__py3-none-any.whl → 0.1.dev167__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.

Files changed (62) hide show
  1. telegrinder/__init__.py +0 -2
  2. telegrinder/bot/__init__.py +0 -2
  3. telegrinder/bot/bot.py +1 -3
  4. telegrinder/bot/cute_types/base.py +3 -12
  5. telegrinder/bot/cute_types/callback_query.py +1 -3
  6. telegrinder/bot/cute_types/chat_join_request.py +3 -1
  7. telegrinder/bot/cute_types/chat_member_updated.py +3 -1
  8. telegrinder/bot/cute_types/message.py +10 -31
  9. telegrinder/bot/cute_types/utils.py +1 -3
  10. telegrinder/bot/dispatch/__init__.py +1 -2
  11. telegrinder/bot/dispatch/composition.py +1 -3
  12. telegrinder/bot/dispatch/dispatch.py +1 -3
  13. telegrinder/bot/dispatch/handler/func.py +3 -10
  14. telegrinder/bot/dispatch/return_manager/abc.py +9 -13
  15. telegrinder/bot/dispatch/return_manager/message.py +5 -7
  16. telegrinder/bot/dispatch/view/abc.py +1 -3
  17. telegrinder/bot/dispatch/view/box.py +3 -11
  18. telegrinder/bot/dispatch/view/raw.py +2 -6
  19. telegrinder/bot/dispatch/waiter_machine/__init__.py +1 -2
  20. telegrinder/bot/dispatch/waiter_machine/machine.py +35 -74
  21. telegrinder/bot/dispatch/waiter_machine/middleware.py +12 -5
  22. telegrinder/bot/dispatch/waiter_machine/short_state.py +6 -6
  23. telegrinder/bot/polling/polling.py +2 -6
  24. telegrinder/bot/rules/adapter/event.py +1 -3
  25. telegrinder/bot/rules/callback_data.py +3 -1
  26. telegrinder/bot/rules/fuzzy.py +1 -2
  27. telegrinder/bot/rules/is_from.py +6 -4
  28. telegrinder/bot/rules/markup.py +1 -2
  29. telegrinder/bot/rules/mention.py +1 -4
  30. telegrinder/bot/rules/regex.py +1 -2
  31. telegrinder/bot/rules/rule_enum.py +1 -3
  32. telegrinder/bot/rules/start.py +1 -3
  33. telegrinder/bot/scenario/checkbox.py +1 -5
  34. telegrinder/client/aiohttp.py +1 -3
  35. telegrinder/model.py +4 -3
  36. telegrinder/modules.py +1 -3
  37. telegrinder/msgspec_utils.py +1 -3
  38. telegrinder/node/attachment.py +18 -14
  39. telegrinder/node/base.py +4 -11
  40. telegrinder/node/composer.py +1 -3
  41. telegrinder/node/message.py +3 -1
  42. telegrinder/node/source.py +3 -1
  43. telegrinder/node/text.py +3 -1
  44. telegrinder/tools/__init__.py +2 -0
  45. telegrinder/tools/buttons.py +4 -6
  46. telegrinder/tools/error_handler/abc.py +1 -3
  47. telegrinder/tools/error_handler/error.py +3 -6
  48. telegrinder/tools/error_handler/error_handler.py +17 -13
  49. telegrinder/tools/formatting/html.py +2 -6
  50. telegrinder/tools/formatting/links.py +1 -3
  51. telegrinder/tools/global_context/abc.py +1 -3
  52. telegrinder/tools/global_context/global_context.py +13 -31
  53. telegrinder/tools/i18n/middleware/base.py +1 -3
  54. telegrinder/tools/limited_dict.py +27 -0
  55. telegrinder/tools/loop_wrapper/loop_wrapper.py +3 -7
  56. telegrinder/types/__init__.py +30 -0
  57. telegrinder/types/objects.py +4 -4
  58. telegrinder/verification_utils.py +2 -1
  59. {telegrinder-0.1.dev166.dist-info → telegrinder-0.1.dev167.dist-info}/METADATA +1 -1
  60. {telegrinder-0.1.dev166.dist-info → telegrinder-0.1.dev167.dist-info}/RECORD +62 -61
  61. {telegrinder-0.1.dev166.dist-info → telegrinder-0.1.dev167.dist-info}/LICENSE +0 -0
  62. {telegrinder-0.1.dev166.dist-info → telegrinder-0.1.dev167.dist-info}/WHEEL +0 -0
@@ -36,9 +36,7 @@ class GlobalCtxVar(typing.Generic[T]):
36
36
  @classmethod
37
37
  def collect(cls, name: str, ctx_value: T | CtxVariable[T]) -> typing.Self:
38
38
  ctx_value = (
39
- CtxVar(ctx_value)
40
- if not isinstance(ctx_value, CtxVar | GlobalCtxVar)
41
- else ctx_value
39
+ CtxVar(ctx_value) if not isinstance(ctx_value, CtxVar | GlobalCtxVar) else ctx_value
42
40
  )
43
41
  params = ctx_value.__dict__
44
42
  params["name"] = name
@@ -15,10 +15,8 @@ F = typing.TypeVar("F", bound=typing.Callable)
15
15
  CtxValueT = typing.TypeVar("CtxValueT", default=typing.Any)
16
16
 
17
17
  if typing.TYPE_CHECKING:
18
-
19
18
  _: typing.TypeAlias = None
20
19
  else:
21
-
22
20
  _ = lambda: None
23
21
 
24
22
 
@@ -51,14 +49,10 @@ def root_protection(func: F) -> F:
51
49
 
52
50
  @wraps(func)
53
51
  def wrapper(self: "GlobalContext", name: str, /, *args) -> typing.Any:
54
- if self.is_root_attribute(name) and name in (
55
- self.__dict__ | self.__class__.__dict__
56
- ):
52
+ if self.is_root_attribute(name) and name in (self.__dict__ | self.__class__.__dict__):
57
53
  root_attr = self.get_root_attribute(name).unwrap()
58
54
  if all((not root_attr.can_be_rewritten, not root_attr.can_be_read)):
59
- raise AttributeError(
60
- f"Unable to set, get, delete root attribute {name!r}."
61
- )
55
+ raise AttributeError(f"Unable to set, get, delete root attribute {name!r}.")
62
56
  if func.__name__ == "__setattr__" and not root_attr.can_be_rewritten:
63
57
  raise AttributeError(f"Unable to set root attribute {name!r}.")
64
58
  if func.__name__ == "__getattr__" and not root_attr.can_be_read:
@@ -106,9 +100,7 @@ class Storage:
106
100
  )
107
101
 
108
102
  def __repr__(self) -> str:
109
- return "<ContextStorage: %s>" % ", ".join(
110
- "ctx @" + repr(x) for x in self._storage
111
- )
103
+ return "<ContextStorage: %s>" % ", ".join("ctx @" + repr(x) for x in self._storage)
112
104
 
113
105
  @property
114
106
  def storage(self) -> dict[str, "GlobalContext"]:
@@ -132,7 +124,9 @@ class Storage:
132
124
  order_default=True,
133
125
  field_specifiers=(ctx_var,),
134
126
  )
135
- class GlobalContext(ABCGlobalContext, typing.Generic[CtxValueT], dict[str, GlobalCtxVar[CtxValueT]]):
127
+ class GlobalContext(
128
+ ABCGlobalContext, typing.Generic[CtxValueT], dict[str, GlobalCtxVar[CtxValueT]]
129
+ ):
136
130
  """GlobalContext.
137
131
 
138
132
  ```
@@ -208,19 +202,14 @@ class GlobalContext(ABCGlobalContext, typing.Generic[CtxValueT], dict[str, Globa
208
202
  """Returns True if the names of context stores
209
203
  that use self and __value instances are equivalent."""
210
204
 
211
- return (
212
- isinstance(__value, GlobalContext)
213
- and self.__ctx_name__ == __value.__ctx_name__
214
- )
205
+ return isinstance(__value, GlobalContext) and self.__ctx_name__ == __value.__ctx_name__
215
206
 
216
207
  def __setitem__(self, __name: str, __value: CtxValueT | CtxVariable[CtxValueT]):
217
208
  if is_dunder(__name):
218
209
  raise NameError("Cannot set a context variable with dunder name.")
219
210
  var = self.get(__name)
220
211
  if var and var.unwrap().const:
221
- raise TypeError(
222
- f"Unable to set variable {__name!r}, because it's a constant."
223
- )
212
+ raise TypeError(f"Unable to set variable {__name!r}, because it's a constant.")
224
213
  dict.__setitem__(self, __name, GlobalCtxVar.collect(__name, __value))
225
214
 
226
215
  def __getitem__(self, __name: str) -> CtxValueT:
@@ -229,9 +218,7 @@ class GlobalContext(ABCGlobalContext, typing.Generic[CtxValueT], dict[str, Globa
229
218
  def __delitem__(self, __name: str):
230
219
  var = self.get(__name).unwrap()
231
220
  if var.const:
232
- raise TypeError(
233
- f"Unable to delete variable {__name!r}, because it's a constant."
234
- )
221
+ raise TypeError(f"Unable to delete variable {__name!r}, because it's a constant.")
235
222
  dict.__delitem__(self, __name)
236
223
 
237
224
  @root_protection
@@ -328,9 +315,7 @@ class GlobalContext(ABCGlobalContext, typing.Generic[CtxValueT], dict[str, Globa
328
315
  var_value_type: type[T],
329
316
  ) -> Option[GlobalCtxVar[T]]: ...
330
317
 
331
- def pop(
332
- self, var_name: str, var_value_type: type[T] = object
333
- ) -> Option[GlobalCtxVar[T]]:
318
+ def pop(self, var_name: str, var_value_type: type[T] = object) -> Option[GlobalCtxVar[T]]:
334
319
  """Pop context variable by name."""
335
320
 
336
321
  val = self.get(var_name, var_value_type)
@@ -398,9 +383,7 @@ class GlobalContext(ABCGlobalContext, typing.Generic[CtxValueT], dict[str, Globa
398
383
 
399
384
  var = self.get(old_var_name).unwrap()
400
385
  if var.const:
401
- return Error(
402
- f"Unable to rename variable {old_var_name!r}, " "because it's a constant."
403
- )
386
+ return Error(f"Unable to rename variable {old_var_name!r}, " "because it's a constant.")
404
387
  del self[old_var_name]
405
388
  self[new_var_name] = var.value
406
389
  return Ok(_())
@@ -419,9 +402,8 @@ class GlobalContext(ABCGlobalContext, typing.Generic[CtxValueT], dict[str, Globa
419
402
  return dict.clear(self)
420
403
 
421
404
  for name, var in self.dict().items():
422
- if var.const:
423
- continue
424
- del self[name]
405
+ if not var.const:
406
+ del self[name]
425
407
 
426
408
  def delete_ctx(self) -> Result[_, str]:
427
409
  """Delete context by `ctx_name`."""
@@ -17,9 +17,7 @@ class ABCTranslatorMiddleware(ABCMiddleware[T]):
17
17
  pass
18
18
 
19
19
  async def pre(self, event: T, ctx: dict) -> bool:
20
- ctx[I18nEnum.I18N] = self.i18n.get_translator_by_locale(
21
- await self.get_locale(event)
22
- )
20
+ ctx[I18nEnum.I18N] = self.i18n.get_translator_by_locale(await self.get_locale(event))
23
21
  return True
24
22
 
25
23
 
@@ -0,0 +1,27 @@
1
+ import typing
2
+ from collections import UserDict, deque
3
+
4
+ KT = typing.TypeVar("KT")
5
+ VT = typing.TypeVar("VT")
6
+
7
+
8
+ class LimitedDict(UserDict[KT, VT]):
9
+ def __init__(self, *, maxlimit: int = 1000) -> None:
10
+ super().__init__()
11
+ self.maxlimit = maxlimit
12
+ self.queue: deque[KT] = deque(maxlen=maxlimit)
13
+
14
+ def __setitem__(self, key: KT, value: VT, /) -> None:
15
+ if len(self.queue) >= self.maxlimit:
16
+ self.pop(self.queue.popleft(), None)
17
+ if key not in self.queue:
18
+ self.queue.append(key)
19
+ super().__setitem__(key, value)
20
+
21
+ def __delitem__(self, key: KT) -> None:
22
+ if key in self.queue:
23
+ self.queue.remove(key)
24
+ return super().__delitem__(key)
25
+
26
+
27
+ __all__ = ("LimitedDict",)
@@ -17,7 +17,7 @@ Task: typing.TypeAlias = typing.Union[CoroutineFunc, CoroutineTask, "DelayedTask
17
17
 
18
18
 
19
19
  def run_tasks(
20
- tasks: list[CoroutineTask[typing.Any]],
20
+ tasks: list[CoroutineTask[typing.Any]],
21
21
  loop: asyncio.AbstractEventLoop,
22
22
  ) -> None:
23
23
  while tasks:
@@ -59,12 +59,8 @@ class DelayedTask(typing.Generic[CoroFunc]):
59
59
 
60
60
  @dataclasses.dataclass(kw_only=True)
61
61
  class Lifespan:
62
- startup_tasks: list[CoroutineTask[typing.Any]] = dataclasses.field(
63
- default_factory=lambda: []
64
- )
65
- shutdown_tasks: list[CoroutineTask[typing.Any]] = dataclasses.field(
66
- default_factory=lambda: []
67
- )
62
+ startup_tasks: list[CoroutineTask[typing.Any]] = dataclasses.field(default_factory=lambda: [])
63
+ shutdown_tasks: list[CoroutineTask[typing.Any]] = dataclasses.field(default_factory=lambda: [])
68
64
 
69
65
  def on_startup(self, task_or_func: Task) -> Task:
70
66
  task_or_func = to_coroutine_task(task_or_func)
@@ -23,6 +23,7 @@ __all__ = (
23
23
  "BotCommandScopeChatAdministrators",
24
24
  "BotCommandScopeChatMember",
25
25
  "BotCommandScopeDefault",
26
+ "BotCommandScopeType",
26
27
  "BotDescription",
27
28
  "BotName",
28
29
  "BotShortDescription",
@@ -35,6 +36,7 @@ __all__ = (
35
36
  "CallbackGame",
36
37
  "CallbackQuery",
37
38
  "Chat",
39
+ "ChatAction",
38
40
  "ChatAdministratorRights",
39
41
  "ChatBackground",
40
42
  "ChatBoost",
@@ -44,6 +46,7 @@ __all__ = (
44
46
  "ChatBoostSourceGiftCode",
45
47
  "ChatBoostSourceGiveaway",
46
48
  "ChatBoostSourcePremium",
49
+ "ChatBoostSourceType",
47
50
  "ChatBoostUpdated",
48
51
  "ChatFullInfo",
49
52
  "ChatInviteLink",
@@ -56,16 +59,23 @@ __all__ = (
56
59
  "ChatMemberMember",
57
60
  "ChatMemberOwner",
58
61
  "ChatMemberRestricted",
62
+ "ChatMemberStatus",
59
63
  "ChatMemberUpdated",
60
64
  "ChatPermissions",
61
65
  "ChatPhoto",
62
66
  "ChatShared",
67
+ "ChatType",
63
68
  "ChosenInlineResult",
64
69
  "Contact",
70
+ "ContentType",
71
+ "Currency",
72
+ "DefaultAccentColor",
65
73
  "Dice",
74
+ "DiceEmoji",
66
75
  "Document",
67
76
  "EncryptedCredentials",
68
77
  "EncryptedPassportElement",
78
+ "EncryptedPassportElementType",
69
79
  "ExternalReplyInfo",
70
80
  "File",
71
81
  "ForceReply",
@@ -86,6 +96,7 @@ __all__ = (
86
96
  "InlineKeyboardButton",
87
97
  "InlineKeyboardMarkup",
88
98
  "InlineQuery",
99
+ "InlineQueryChatType",
89
100
  "InlineQueryResult",
90
101
  "InlineQueryResultArticle",
91
102
  "InlineQueryResultAudio",
@@ -99,13 +110,19 @@ __all__ = (
99
110
  "InlineQueryResultCachedVoice",
100
111
  "InlineQueryResultContact",
101
112
  "InlineQueryResultDocument",
113
+ "InlineQueryResultDocumentMimeType",
102
114
  "InlineQueryResultGame",
103
115
  "InlineQueryResultGif",
116
+ "InlineQueryResultGifThumbnailMimeType",
104
117
  "InlineQueryResultLocation",
118
+ "InlineQueryResultMimeType",
105
119
  "InlineQueryResultMpeg4Gif",
120
+ "InlineQueryResultMpeg4GifThumbnailMimeType",
106
121
  "InlineQueryResultPhoto",
122
+ "InlineQueryResultThumbnailMimeType",
107
123
  "InlineQueryResultVenue",
108
124
  "InlineQueryResultVideo",
125
+ "InlineQueryResultVideoMimeType",
109
126
  "InlineQueryResultVoice",
110
127
  "InlineQueryResultsButton",
111
128
  "InputContactMessageContent",
@@ -133,6 +150,7 @@ __all__ = (
133
150
  "Location",
134
151
  "LoginUrl",
135
152
  "MaskPosition",
153
+ "MaskPositionPoint",
136
154
  "MaybeInaccessibleMessage",
137
155
  "MenuButton",
138
156
  "MenuButtonCommands",
@@ -141,11 +159,13 @@ __all__ = (
141
159
  "Message",
142
160
  "MessageAutoDeleteTimerChanged",
143
161
  "MessageEntity",
162
+ "MessageEntityType",
144
163
  "MessageId",
145
164
  "MessageOrigin",
146
165
  "MessageOriginChannel",
147
166
  "MessageOriginChat",
148
167
  "MessageOriginHiddenUser",
168
+ "MessageOriginType",
149
169
  "MessageOriginUser",
150
170
  "MessageReactionCountUpdated",
151
171
  "MessageReactionUpdated",
@@ -161,18 +181,23 @@ __all__ = (
161
181
  "PassportElementErrorSelfie",
162
182
  "PassportElementErrorTranslationFile",
163
183
  "PassportElementErrorTranslationFiles",
184
+ "PassportElementErrorType",
164
185
  "PassportElementErrorUnspecified",
165
186
  "PassportFile",
166
187
  "PhotoSize",
167
188
  "Poll",
168
189
  "PollAnswer",
169
190
  "PollOption",
191
+ "PollType",
170
192
  "PreCheckoutQuery",
193
+ "ProgrammingLanguage",
171
194
  "ProximityAlertTriggered",
172
195
  "ReactionCount",
196
+ "ReactionEmoji",
173
197
  "ReactionType",
174
198
  "ReactionTypeCustomEmoji",
175
199
  "ReactionTypeEmoji",
200
+ "ReactionTypeType",
176
201
  "ReplyKeyboardMarkup",
177
202
  "ReplyKeyboardRemove",
178
203
  "ReplyParameters",
@@ -183,12 +208,17 @@ __all__ = (
183
208
  "ShippingOption",
184
209
  "ShippingQuery",
185
210
  "Sticker",
211
+ "StickerFormat",
186
212
  "StickerSet",
213
+ "StickerSetStickerType",
214
+ "StickerType",
187
215
  "Story",
188
216
  "SuccessfulPayment",
189
217
  "SwitchInlineQueryChosenChat",
190
218
  "TextQuote",
219
+ "TopicIconColor",
191
220
  "Update",
221
+ "UpdateType",
192
222
  "User",
193
223
  "UserChatBoosts",
194
224
  "UserProfilePhotos",
@@ -210,7 +210,7 @@ class Update(Model):
210
210
  or a user edited an existing connection with the bot."""
211
211
 
212
212
  business_message: Option["Message"] = Nothing
213
- """Optional. New non-service message from a connected business account."""
213
+ """Optional. New message from a connected business account."""
214
214
 
215
215
  edited_business_message: Option["Message"] = Nothing
216
216
  """Optional. New version of a message from a connected business account."""
@@ -534,8 +534,8 @@ class ChatFullInfo(Model):
534
534
  messages."""
535
535
 
536
536
  join_by_request: Option[bool] = Nothing
537
- """Optional. True, if all users directly joining the supergroup need to be
538
- approved by supergroup administrators."""
537
+ """Optional. True, if all users directly joining the supergroup without using
538
+ an invite link need to be approved by supergroup administrators."""
539
539
 
540
540
  description: Option[str] = Nothing
541
541
  """Optional. Description, for groups, supergroups and channel chats."""
@@ -2781,7 +2781,7 @@ class ChatMemberUpdated(Model):
2781
2781
 
2782
2782
  via_join_request: Option[bool] = Nothing
2783
2783
  """Optional. True, if the user joined the chat after sending a direct join request
2784
- and being approved by an administrator."""
2784
+ without using an invite link and being approved by an administrator."""
2785
2785
 
2786
2786
  via_chat_folder_invite_link: Option[bool] = Nothing
2787
2787
  """Optional. True, if the user joined the chat via a chat folder invite link."""
@@ -6,7 +6,8 @@ from telegrinder.api.abc import Token
6
6
 
7
7
 
8
8
  def verify_webapp_request(
9
- secret_token: str, request_headers: typing.Mapping[str, typing.Any]
9
+ secret_token: str,
10
+ request_headers: typing.Mapping[str, typing.Any],
10
11
  ) -> bool:
11
12
  """Verifies update request is from telegram."""
12
13
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: telegrinder
3
- Version: 0.1.dev166
3
+ Version: 0.1.dev167
4
4
  Summary: Framework for effective and reliable async telegram bot building.
5
5
  Home-page: https://github.com/timoniq/telegrinder
6
6
  License: MIT
@@ -1,136 +1,137 @@
1
- telegrinder/__init__.py,sha256=cZ12dE7RtV3Xrl2_7tTqs-nCo0bYkoLWzuebwlanWBM,4165
1
+ telegrinder/__init__.py,sha256=LtOXSbLJKgQZnHIO86vpzTh0YlZDwyg0hM9R_yBBFnE,4117
2
2
  telegrinder/api/__init__.py,sha256=pIDtnsL0NwT5PgVm43Gkp-ByOqDsqnD-oFDiC9tcPT4,246
3
3
  telegrinder/api/abc.py,sha256=IPPGed6dSDvK5lMQ2eABHD_aiXVC2geY04u7ZFlGiCI,1799
4
4
  telegrinder/api/api.py,sha256=3vq9o0s2y3kCFjH-PcIcAMY071Cs_A3BSazgTzum39c,2473
5
5
  telegrinder/api/error.py,sha256=NOlVjQ6AsgCldCgeHZ2zFSA4DXolP6ADBPA16xFEwJU,417
6
6
  telegrinder/api/response.py,sha256=d7Oxd5kOdbZNJiALkzkecHl8Y3K_BzCmsRq2Sn3otqA,491
7
- telegrinder/bot/__init__.py,sha256=FujZXxqVlmId6tXy_sDSuAd-zPxWMdE5lyrF0MG9NI8,1882
8
- telegrinder/bot/bot.py,sha256=6Y7c2bHcc4wvN0PZmKtz4N7chKJ8uNNZbLK2inDGIAI,2486
7
+ telegrinder/bot/__init__.py,sha256=91NKeAbQH10sZ0Lzm-qENoxJRHz2SNvOy-30Ww5gzkA,1834
8
+ telegrinder/bot/bot.py,sha256=FZFyi-CLEcJYlOz5BbL5Ev6dZQ5VhVqxh1nYburXplQ,2464
9
9
  telegrinder/bot/cute_types/__init__.py,sha256=XDcZJMKDFYJExvaNSm3B-bMQ2_wRETALz7-OWAytBC0,457
10
- telegrinder/bot/cute_types/base.py,sha256=madc6KHs7A3xxI9-cynPbMXOd8TsMx1kRBtNlvbBriI,4691
11
- telegrinder/bot/cute_types/callback_query.py,sha256=gSohTLjq9IQimya41Vl6i8HvGSKwLzbkjV00Jgp13QY,20270
12
- telegrinder/bot/cute_types/chat_join_request.py,sha256=ZiG6_44Y3_2PYcxNXY51MPg3nRj8tcGonRzZ1_aVkts,2231
13
- telegrinder/bot/cute_types/chat_member_updated.py,sha256=L1h2TFQWrzOUahldMy_ZNr8Mxrb7tFRCLRtBYmz2MvE,10877
10
+ telegrinder/bot/cute_types/base.py,sha256=k20aJtTNoLn_63xQUFU-upVcwvwT0OX6odTLnCBY-xQ,4521
11
+ telegrinder/bot/cute_types/callback_query.py,sha256=kCPjELrzRNEfa3h_gxbl12bkS6ejY8pTNxCJZTNZuNw,20244
12
+ telegrinder/bot/cute_types/chat_join_request.py,sha256=Rkgu8myVlxbyGX2YIyyMRk5Io_fXqzNFcaTjzuBJ-jw,2237
13
+ telegrinder/bot/cute_types/chat_member_updated.py,sha256=3zoAiSSiFScXcAp8956nxsHTzaiD44boHKALFx_9XkY,10883
14
14
  telegrinder/bot/cute_types/inline_query.py,sha256=QmaYkXSOQHrkWs7N6eD_HiTGGOtegN10hVppU37z3bE,2475
15
- telegrinder/bot/cute_types/message.py,sha256=p_yLTr87C8ROAKNJliXc5lJ09vZmCFI32CZqR3pTOLI,142330
15
+ telegrinder/bot/cute_types/message.py,sha256=sFLnz1C0dtyJkSxJlsfOOrYPLGDsMMgdAHeAyGbpTp4,142042
16
16
  telegrinder/bot/cute_types/update.py,sha256=X2YLPnYqQcZ_7Wtot5vEarcE8yjye47kjjtgfu3pfbo,787
17
- telegrinder/bot/cute_types/utils.py,sha256=RT37cPi4zzjSymD2IAgbsFsslTKfQ7qB55Kc2Qu_fpA,17124
18
- telegrinder/bot/dispatch/__init__.py,sha256=4Zo0vGfCjP9ITgN36wTVu5K1vFJ_nvCeJiIBGY7Tqn4,1528
17
+ telegrinder/bot/cute_types/utils.py,sha256=aCi4D86uVhCVQgalUqxdlTerI36K90B1PTSp86CnGXI,17110
18
+ telegrinder/bot/dispatch/__init__.py,sha256=z4pWNEdWBHKP902bvtUe4WWhtMKW-LgPj5Dds8aUFHE,1484
19
19
  telegrinder/bot/dispatch/abc.py,sha256=YX184RfqSTMtxrt6qyNRu9uhlPHJLEJY3RKsLfBV7nw,462
20
- telegrinder/bot/dispatch/composition.py,sha256=i-R20L2Npb2YG7aF4wj5VscU2Voi7m7s7lckmjLiMBc,2980
20
+ telegrinder/bot/dispatch/composition.py,sha256=bR_fBib4mHEDFgDyGvmejGG1hHBV5zeFWuv2RBHPKXY,2942
21
21
  telegrinder/bot/dispatch/context.py,sha256=lVnFaZm1jWlfG9JbtE5c_0pBV1pWlExvh24ESkO5Nag,2278
22
- telegrinder/bot/dispatch/dispatch.py,sha256=Uw3DAbEyWRbGTWEFnrgdrMG8nsga-wadLKyb222HBXA,5225
22
+ telegrinder/bot/dispatch/dispatch.py,sha256=PHwp3VfN8b9xiFZ2e5rR0VyezG7kHEcObjWxfX_W4so,5193
23
23
  telegrinder/bot/dispatch/handler/__init__.py,sha256=mzchbArrm0eoTEeVKHYrtJX4WSfW5t6T4xDU3-mtYaA,169
24
24
  telegrinder/bot/dispatch/handler/abc.py,sha256=ry5gMUxB6buiDksAFiuWM-LcIAg5S8rJZlW_0PWpVJA,570
25
- telegrinder/bot/dispatch/handler/func.py,sha256=xMenbvMYvwy0BIlKkBXsqGJbqAD50MZXl0aaePHa4-U,3074
25
+ telegrinder/bot/dispatch/handler/func.py,sha256=QBR8vudGmDn1euc3UuecWJxuWiB-yXzdEm0acZtcfKI,3018
26
26
  telegrinder/bot/dispatch/handler/message_reply.py,sha256=_3gb3NLAwfTw7FTd7iga2tSe5WZ8IU9AdxwDWq5nMqI,1811
27
27
  telegrinder/bot/dispatch/middleware/__init__.py,sha256=qDuTt2ZZKX9UMjPdw5xaaNZdMI-i3P4Px2T8qbYCMJw,61
28
28
  telegrinder/bot/dispatch/middleware/abc.py,sha256=Aj9aEQ0yNM-pprUOdnYAmoIbq4wPMgyhCP8EUAvxzXs,413
29
29
  telegrinder/bot/dispatch/process.py,sha256=TNgBoos7MkhIYJsqVC_m6L1iHaMJUu4jT95xPjBmdk4,2377
30
30
  telegrinder/bot/dispatch/return_manager/__init__.py,sha256=M9RmSqs5U_JixX_1FT1byMAxdfcC3UGvZAhmmebFDN4,446
31
- telegrinder/bot/dispatch/return_manager/abc.py,sha256=4f5REWKlEOh69n5Z3PelDbQA5_AUEHpZBCZWziTTOoQ,3508
31
+ telegrinder/bot/dispatch/return_manager/abc.py,sha256=wpAbMJO2Y8sz780X7wFoMNKFm9mKxzdQmhctbzYudvo,3436
32
32
  telegrinder/bot/dispatch/return_manager/callback_query.py,sha256=actPlW6JqZ2Qi8thDQUNiGmYT2WmME4YxhDL9F9OlYQ,666
33
33
  telegrinder/bot/dispatch/return_manager/inline_query.py,sha256=Clo6Uvl__Ja9u5yg6RSJBjyqhhSpJINtq2NFS_pG45Q,489
34
- telegrinder/bot/dispatch/return_manager/message.py,sha256=MARgT9K5Jm0uzs2oiVFtaGCaOhoVBiIujFifu65E2Vw,1171
34
+ telegrinder/bot/dispatch/return_manager/message.py,sha256=ZrCrvq8wNmz8TTykoVMzneKk11cIqkCFZIOynZ5PjAQ,1160
35
35
  telegrinder/bot/dispatch/view/__init__.py,sha256=x8qPwRWosGNTk89tvyiWZhHKvVK2IqFI87D7YTrRKbk,569
36
- telegrinder/bot/dispatch/view/abc.py,sha256=f8Fj9Dcry6zAkLWnom1bQTnR055PCjmN_2_CoOrEh1E,5685
37
- telegrinder/bot/dispatch/view/box.py,sha256=5rO-GDD0J9Dq9Tv5Rq7R3iWSl4rcBpbHuQNO9xJOqtQ,3883
36
+ telegrinder/bot/dispatch/view/abc.py,sha256=AgtskFpCln5tYDdx9nJqYUaU8DO5W5AlXvfnygY6zwE,5639
37
+ telegrinder/bot/dispatch/view/box.py,sha256=4cLaC6U31RbPC0AqrHIjtB_Av-Wbip9gJ0yODZ-jClA,3825
38
38
  telegrinder/bot/dispatch/view/callback_query.py,sha256=ALQm-cUFDQggZqwGVOEVodvpTcYKXCebwYDbLcZ36cE,560
39
39
  telegrinder/bot/dispatch/view/chat_join_request.py,sha256=y1wQMrPSiqxDHQm7TqdOA-ecAP3rnocYTzQxa7-7vws,447
40
40
  telegrinder/bot/dispatch/view/chat_member.py,sha256=VGXp0F_y4b1b3kYNO5Y4QLeoM6pt_DzA1sNysBdObAY,715
41
41
  telegrinder/bot/dispatch/view/inline_query.py,sha256=hRwrgfhgS5YF0E6eUrR8FuWVHUMlnA758kG7V049lkE,531
42
42
  telegrinder/bot/dispatch/view/message.py,sha256=Fb7GRVCsVhE5xHZtFyiNntKcqtGCVzj2pEIOLcfFMm8,1175
43
- telegrinder/bot/dispatch/view/raw.py,sha256=SR8HAPd0dUXsp7MkWNbtIzfxY4Cn_yBL5-4jdDNlOrk,3466
44
- telegrinder/bot/dispatch/waiter_machine/__init__.py,sha256=3cNKRpbvs5HCOcrJPQqZYxavGdENcN4kjqxBeNYy4oo,234
45
- telegrinder/bot/dispatch/waiter_machine/machine.py,sha256=V2lJzRBbik5KdZqDOgbsKJd6x3BGpk6lshjCkA__s-k,5640
46
- telegrinder/bot/dispatch/waiter_machine/middleware.py,sha256=J6GGBOIiS1oAnvFCVrXUsz7dgmoqwNdD-rnU1ztSphA,2536
47
- telegrinder/bot/dispatch/waiter_machine/short_state.py,sha256=hEe2lxlBmpv4nUr8ANGLsPR4Iwoi8ljzC4qt6BVr8cY,1218
43
+ telegrinder/bot/dispatch/view/raw.py,sha256=U1nY4sE_8TSR7nlyYh8Zn8qysfEWYS_dKhPGglE9VFw,3438
44
+ telegrinder/bot/dispatch/waiter_machine/__init__.py,sha256=RUuq-J1qZMeREL8omM8kxEfgAz3-7h3B9NhzSjLTMqA,190
45
+ telegrinder/bot/dispatch/waiter_machine/machine.py,sha256=rWAIwl9-igZ4V40XF87ItdiQBdjiqKvQmVzDKyZr39M,4114
46
+ telegrinder/bot/dispatch/waiter_machine/middleware.py,sha256=YdB3KSJRo11aoUfpV48Rm2GC14ea9ucJWL2ACRiTnig,2706
47
+ telegrinder/bot/dispatch/waiter_machine/short_state.py,sha256=zAtIVsQo1xHXwKeWn8GAsK4mlzzmzCDBUqc9g6r5FTg,1294
48
48
  telegrinder/bot/polling/__init__.py,sha256=OqfIFPS_V6UrCg-vCv9pkMFzTKdNbDP2faBfATs_TGg,94
49
49
  telegrinder/bot/polling/abc.py,sha256=-5BpX55SJfDlEJWt15yOXWCizQRrgeY5oiA5eHkm1Nw,434
50
- telegrinder/bot/polling/polling.py,sha256=fJRpZRPfMBpbqDADPW3aKaJEPwJkmNQIhacHn6dv5_c,4737
50
+ telegrinder/bot/polling/polling.py,sha256=omSV2HhNIY78DTzll5yswRrEtYbbhFZGi5Q4QGHI_fE,4681
51
51
  telegrinder/bot/rules/__init__.py,sha256=htt3Q3OkwBu8LXOMNoEvvLLqtnBQE88umPvLnk7B_kY,2311
52
52
  telegrinder/bot/rules/abc.py,sha256=OJ7QLY-mpuIRU0xPzH_iePLgx15asg7DpbIoXKdzQ6I,3453
53
53
  telegrinder/bot/rules/adapter/__init__.py,sha256=jFWpi3te8n-Ega3caCwLiA3iTW7F86brae0TZzH_BaU,231
54
54
  telegrinder/bot/rules/adapter/abc.py,sha256=VxRGQbNtdfA6gZyTk0JjJBdB5n_7g6uwseewtovZEK8,558
55
55
  telegrinder/bot/rules/adapter/errors.py,sha256=2r_UBTWm5-heU-NchBfobC1f848EWeC64nKvprGnAAY,73
56
- telegrinder/bot/rules/adapter/event.py,sha256=T58cGxfyrrBuNdEUbSyKiXF5XNIgQRgdtbsCMsehaJk,2198
56
+ telegrinder/bot/rules/adapter/event.py,sha256=SHCKW-bE0LS9jK6v2ciZTi5ELVw8WLcYJQ5b2qD53kc,2160
57
57
  telegrinder/bot/rules/adapter/raw_update.py,sha256=K0bwq3Hh-hIs_xbEYDOgZHMS4r-Zvo3VKs1B3gkJLGA,752
58
- telegrinder/bot/rules/callback_data.py,sha256=qZTr7Zc9QxEcmpEiBxIPInvIVIE-xUY9tCNWi2n5clU,5392
58
+ telegrinder/bot/rules/callback_data.py,sha256=iZYDyOej2bSToo1eYQKRM7TryknC3KpvuZUJYJGcciQ,5398
59
59
  telegrinder/bot/rules/chat_join.py,sha256=pWVMhrKi40-1vhBNQqV24i98GGJ0SwhagrvGeL1hMas,1401
60
60
  telegrinder/bot/rules/command.py,sha256=2qzcLr_r4g7i5Hndhfd7zyoDfVCLPplr-Ijbr_yE4jo,3322
61
61
  telegrinder/bot/rules/enum_text.py,sha256=O8J1xm5AtLnLVfIIbY1B1lygm9XLZ86YeApa4LuDn1o,954
62
62
  telegrinder/bot/rules/func.py,sha256=rhLXf6FjS0p3Nx1ZHqmV7uelUYJOkCf1gwc-SZSyRCo,707
63
- telegrinder/bot/rules/fuzzy.py,sha256=ReweSKmql4a6AHFv2tXqCQoGktYpeezBLWvW_hS1YJg,712
63
+ telegrinder/bot/rules/fuzzy.py,sha256=1rYcrMlv2Kepj-OQj-2G40OfelbqW8HGNqnujWwZWzw,700
64
64
  telegrinder/bot/rules/inline.py,sha256=TKJfn2pdpQiFE8nkEZ2saH1oZzynxxd6unAdPJSXV3w,1946
65
65
  telegrinder/bot/rules/integer.py,sha256=iZWctQQbrUV5kIhv8GI-O3iYzeI2d0dUdQ8uCaLB9gQ,531
66
- telegrinder/bot/rules/is_from.py,sha256=r7JAxhztdlI4aKkhUHpfA25DXFHbGw08ukqlDc14Fus,4827
67
- telegrinder/bot/rules/markup.py,sha256=pqmuEhBpnZBVyLA-P2mqgfZ_MqACeu6mDNlYPAFcr8I,1110
68
- telegrinder/bot/rules/mention.py,sha256=ozXV3awsrJhkFKrTvPEl1iyVkDs0GWMmuRSLSnSdOmo,493
66
+ telegrinder/bot/rules/is_from.py,sha256=RXWAS9cG_3Eh9poP0LPzHCrSW7LC0ld2T6Q-Q7d1QaQ,4839
67
+ telegrinder/bot/rules/markup.py,sha256=M81xQ9XJo1uxBXgEU9CY3TVzVANWNVa0JdobBk1Bdcg,1098
68
+ telegrinder/bot/rules/mention.py,sha256=aVhqRHn48f85f3v-gaA-vFh9lI8D9-Ho7akO-Jmryi4,459
69
69
  telegrinder/bot/rules/message.py,sha256=XQ2gV9ivOHuIfNl-565ncmPLKDtlbNrXozURRK-GJyA,419
70
70
  telegrinder/bot/rules/message_entities.py,sha256=QyzpQ6avhI6WniafDHtGZ5PVwyHn6JGffbhU4uA5gE8,1100
71
- telegrinder/bot/rules/regex.py,sha256=wqGEEiFqe5t_RwX9KjVCtg0wRZfwqo1ktGvNBo9JaKE,1191
72
- telegrinder/bot/rules/rule_enum.py,sha256=BUd78f7fEa0hfu1Paa384_Q-r0lB-ZWWukqkrFXdn58,2083
73
- telegrinder/bot/rules/start.py,sha256=TvEaQmaR54igfaXQU-wsdURrSD-MX55YkWe9MKo2h6U,1200
71
+ telegrinder/bot/rules/regex.py,sha256=amd_vIBNGL-Pce-rjRHDi2WXeB4zDTgjsin1d9wQr7Y,1171
72
+ telegrinder/bot/rules/rule_enum.py,sha256=86Qc7mVaMuMLkBv4EtW24IO1-B223h0QEAK2_i79cNk,2059
73
+ telegrinder/bot/rules/start.py,sha256=NyzyPu1t4J60EH44ErP3QpOZFA-Uhhmce2-cjOItN50,1176
74
74
  telegrinder/bot/rules/text.py,sha256=MIEbbIu6X2zcOD70hM0TrQI4jN2ulKmuREos3BN7Ii4,1178
75
75
  telegrinder/bot/rules/update.py,sha256=0ccDDD4QW2qx6hBMwNteUnGRbsGbrdE2fCkCx6AmuEA,480
76
76
  telegrinder/bot/scenario/__init__.py,sha256=Ehe2uH-eQ-vRBPxIzdmE23B-FBOAa9YQyndmb6K8C5E,166
77
77
  telegrinder/bot/scenario/abc.py,sha256=3AZYRjZlkbDtyFbsKdZ6BefzWYlJ0DOrGwh8jI3nzv4,474
78
- telegrinder/bot/scenario/checkbox.py,sha256=C9jltsJd73oIxzwzydGMtOHs3kDJcZtp-wvS4_VQQYY,4238
78
+ telegrinder/bot/scenario/checkbox.py,sha256=vjedhLVurQtSbpFDPwMuLx5j5OJxa0Iv6aV8Ufd_jYw,4128
79
79
  telegrinder/bot/scenario/choice.py,sha256=-NYyzgfGI0njVuT-EY0j3jS4tPlsKOEkZaUagtns7dE,1442
80
80
  telegrinder/client/__init__.py,sha256=ZiS1Wb_l_kv3FHzEEi1oXtFLwlA_HXmWOzeN0xA3E7Y,104
81
81
  telegrinder/client/abc.py,sha256=OxsTX_PLYBEeFT9zpidFUzAbQL9BM7rQqru7zdn5DiQ,1611
82
- telegrinder/client/aiohttp.py,sha256=hSlqjie8C9GJrq98fRqpFG7xdqVMvqS-rBsMQIPQv9k,4123
83
- telegrinder/model.py,sha256=S4QMuZRW49kwTjYSvXQq0z3jQcyHg7BQFDwwLx325L0,4754
84
- telegrinder/modules.py,sha256=7cDiubKiA72ZL5Q8rjSQ_QiZdWmxx2WuKuFvwAXjkhg,7815
82
+ telegrinder/client/aiohttp.py,sha256=AqmuHd6Z3zy96YBe7xIMC4U8Hi9SA7j-0EI7xYE3ZCU,4085
83
+ telegrinder/model.py,sha256=F6lJAgNMTi7krCRDgATRSKiVbw7s-mJlt-hyo1TxUwU,4759
84
+ telegrinder/modules.py,sha256=_-xjQBCOpS63FXPlFdAIOQOFb0v0P9bcyPUYakOoSqE,7785
85
85
  telegrinder/msgspec_json.py,sha256=phfyhUvYYZUGEcI6RAyRx9lnARPK_Fqtw3Q0MEJnuUk,226
86
- telegrinder/msgspec_utils.py,sha256=Tpq_-5GxFsnKO9ekugqdWZFU5RQ2Mbe7jOLaLOAOzcA,8221
86
+ telegrinder/msgspec_utils.py,sha256=4K9Tgjzko7p_yQlo5Wm2X2qpWgdRNyWg4_cGZITD7zE,8199
87
87
  telegrinder/node/__init__.py,sha256=QfIzKIzRxYjnphilZMecZ2Wj-RpQ6RGvGUHdC9AtQ38,706
88
- telegrinder/node/attachment.py,sha256=JHZfEA4NSV4GlekHEHC1vbqJfDsOTyAZ5275dmWSzcA,2657
89
- telegrinder/node/base.py,sha256=fvMVzeFjEC-CQHOiv8J0II-bVeHPVJWLgmuz8gyWKBA,2247
90
- telegrinder/node/composer.py,sha256=Krv232MEwMX3EXHoEtLuDJY_VggqvoOKy7aLfBjrpr4,2241
88
+ telegrinder/node/attachment.py,sha256=Dd6J7a8-S3UqHQ_JZ4sFupqw0aDElz_zRJRWpHPX9OE,2877
89
+ telegrinder/node/base.py,sha256=bgQZdkbwJD9RhTqyybSATDqnlMYvS_i6USZ6UAxNSxk,2201
90
+ telegrinder/node/composer.py,sha256=k8PSEj9GUx6l3WJqBbNVRxTUc34h1h8zs15Ije_eHw4,2219
91
91
  telegrinder/node/container.py,sha256=arXgXw92nVJVvsxCYAljUwPGGbKqLcu0qcdILWt09X8,632
92
- telegrinder/node/message.py,sha256=2IW6DjF0KqH2_TZbZ-MXNsDioQRVPg9TUt86aQos0Kk,415
92
+ telegrinder/node/message.py,sha256=2SRVmkcZJZT6AUOihLSUmdyMxhjkkT4VU5tmiQ71OwQ,465
93
93
  telegrinder/node/rule.py,sha256=-Hww0foPCg3-uk1w6lKGSeKEekbnVLP9W9fOShJ35Dc,1708
94
- telegrinder/node/source.py,sha256=MyWLDkLwbQ4R5-6ZUgUoU1KQRd58yn5jnLpdlQLh1Dg,754
95
- telegrinder/node/text.py,sha256=4kVMHvYRi0hxztVNT4Cv0DvUoI9QSn7NIYMG4U-uqYM,303
94
+ telegrinder/node/source.py,sha256=atv84Ehu0icpfqRdFCMvhCxiIx2htxf0Q2PGM59kmUU,787
95
+ telegrinder/node/text.py,sha256=j9fqOuGtGaaeRxawqDU9QT-duQ--XD8FH5kXj1ILTiM,351
96
96
  telegrinder/node/tools/__init__.py,sha256=TI_o7MbS4DUOSkNNgJGLocXfRybPFv2WOhBty058wrY,57
97
97
  telegrinder/node/tools/generator.py,sha256=rs7UcFxgnXgjiSdFPyChqZW4K4oRcmiPst6nYYOSrnw,1024
98
98
  telegrinder/node/update.py,sha256=QD-m9soBgsP3voTbhaErWdE1FciwYyJCIFNDYf_zra0,253
99
99
  telegrinder/rules.py,sha256=BFB8RFwKKxqs9HFfo_p0RfulQNonPZAX8cHpmnG7qCU,39
100
- telegrinder/tools/__init__.py,sha256=bwPuWKR3vNKnAtivRUTjhjbfRsvxZ431KQBIIsLCLlM,2904
101
- telegrinder/tools/buttons.py,sha256=qMvtpawzkjdqopqE7o9C0k-no1dGJVy5gjFX4SiOE6A,2430
100
+ telegrinder/tools/__init__.py,sha256=lDcl3dDXQ_4daAmxoe9r8lyAsUhG79MZHgmq3uSpSko,2961
101
+ telegrinder/tools/buttons.py,sha256=0p-hebPWNVPfX6f_8CNtruRZ_W9monthz0Mb3rwPFRY,2414
102
102
  telegrinder/tools/error_handler/__init__.py,sha256=WmYWZCNhhSk32j4lIOltEwzoYUx086TGTbOF5h3Ps7s,207
103
- telegrinder/tools/error_handler/abc.py,sha256=1mGibcLti1bDuxn555eGWkQOONer-zmoIRJT8h-4nSY,902
104
- telegrinder/tools/error_handler/error.py,sha256=jVp3J4pMkkL20QHvDtlid9hKtAc66jZIcpsecB3-f98,188
105
- telegrinder/tools/error_handler/error_handler.py,sha256=uCKDzZyA612VHzXAVOCMtSusWXKoGBMfvZbaHNpXch4,6045
103
+ telegrinder/tools/error_handler/abc.py,sha256=w5t2sWa_xt9iy7pdphiFs1kgmsll7A7eaPbm3Yes8t0,888
104
+ telegrinder/tools/error_handler/error.py,sha256=3T2nbxL9vEXzZX2sxeUqpiEd5RPv-R1ZDT1Yjq9Fb4I,185
105
+ telegrinder/tools/error_handler/error_handler.py,sha256=yXlzbHv_h7XclD5xOZ9gWiawznGVxUBP3uX_kJlieHc,6313
106
106
  telegrinder/tools/formatting/__init__.py,sha256=_oxb-4y_vyIgALlO2rfaa-azqicySpHHIcaYBrVPdSg,1609
107
- telegrinder/tools/formatting/html.py,sha256=AJanurVKrrygUYA0R0JgaZxo74xRkhtd3OHa6fevsSI,8728
108
- telegrinder/tools/formatting/links.py,sha256=thRwOUBoJvg7iLUD1WMeV23V7T4XUj_J4EJgLcAOXts,1334
107
+ telegrinder/tools/formatting/html.py,sha256=58WOeUBHqOBbSphyKj-4YomicYIQmiWFKd6c37RbaDg,8708
108
+ telegrinder/tools/formatting/links.py,sha256=ge9ZJflnfJEZIW8FGdsentzEsepyhSGwnk66tW9j7YI,1320
109
109
  telegrinder/tools/formatting/spec_html_formats.py,sha256=akqgiKvRWQSYl3bgaX2UEVHfpZp-qBIOYdHmscjaXvI,2743
110
110
  telegrinder/tools/global_context/__init__.py,sha256=QcNZpVTS-ZsPGdF4BQ10wnrfr1fZ3jX9aI-6It0nQxE,282
111
- telegrinder/tools/global_context/abc.py,sha256=iIhIBtyGhs5j0LCbgUS6mnkffIt_82Nvsrnm2tK64f8,1692
112
- telegrinder/tools/global_context/global_context.py,sha256=XhrpRGYcW7I3Ke3D89ervSRZbMa6crkkiqeH8n9eqt0,13947
111
+ telegrinder/tools/global_context/abc.py,sha256=NgaySAslYkYSN_FMwVjLG907PJs1kSNEBzb08VzJEQo,1668
112
+ telegrinder/tools/global_context/global_context.py,sha256=IRjsJRCgwQZLCsyI3GRPpay6brljOdOLFpGMCwE12sM,13712
113
113
  telegrinder/tools/global_context/telegrinder_ctx.py,sha256=6vlUAtdDUTF_pbKByOBTwJm1Rst6m6LQnz59Lx1mV2g,647
114
114
  telegrinder/tools/i18n/__init__.py,sha256=CLUoiCJzOZzF-dqDIHZ5Fc8QUa38cYhIG4WF-ctPLfE,288
115
115
  telegrinder/tools/i18n/base.py,sha256=jxJVYiTplJaNeklkGiin-m7BkfZiac2fbVXTEdhNw6o,726
116
116
  telegrinder/tools/i18n/middleware/__init__.py,sha256=y5ZX6s3fOix_Yn98UNO8VqQ7ihJbQ_e5Uz01RgL7pHg,82
117
- telegrinder/tools/i18n/middleware/base.py,sha256=Gc0G4ix4xlYCcUzO4SHH1L-1h3c3vmudvNuxeuwZDSE,685
117
+ telegrinder/tools/i18n/middleware/base.py,sha256=gGqcPxJLLC3f6XfV_0-drhr27TND40cL1Z5sNmC84lo,663
118
118
  telegrinder/tools/i18n/simple.py,sha256=aVPhBZJQG33sq8uumF0DkSzpc-o13ZCCwAvmFnwfm8s,1589
119
119
  telegrinder/tools/kb_set/__init__.py,sha256=k1KCQTnvEgJ2y4KlghhJWOh5rccwg_27cs8264NtMmk,156
120
120
  telegrinder/tools/kb_set/base.py,sha256=mbZs-ViUErfSibzyN064IqZp76LBJPg3NB4D9v4VFtg,243
121
121
  telegrinder/tools/kb_set/yaml.py,sha256=rDoVkdfxp3gz-pS82nB1LDQU8cyckErwMee4nCXHunI,2027
122
122
  telegrinder/tools/keyboard.py,sha256=oHwFnqj_pmKsxI6AnvFgZWQYqSkyK-Lgnnd6qbNTmEI,3730
123
+ telegrinder/tools/limited_dict.py,sha256=SkfHdDI3hb02zVDaKpFwTggcVU7yYqcudSRNsKqKYA4,763
123
124
  telegrinder/tools/loop_wrapper/__init__.py,sha256=ZQ5jmE1lOKnqJlMZ9k2OYmjvOEhOlHPijUWqZ4nHIgk,165
124
125
  telegrinder/tools/loop_wrapper/abc.py,sha256=ET_Dp-kRz75Jo1fZB3qofUgEXN4FqlU0xH2diESKGCM,266
125
- telegrinder/tools/loop_wrapper/loop_wrapper.py,sha256=zHeKD4LU85lXSWfPrW_ISfmIrzT2kP2T2QZ0xjzbAIA,5730
126
+ telegrinder/tools/loop_wrapper/loop_wrapper.py,sha256=4JvtVIy14oAMYUy0Z3hayFqFXvoh6cBdgmnFHMo4s0Y,5701
126
127
  telegrinder/tools/magic.py,sha256=ijUw7LipMPn0vO7UJzUpx5kNNRL_MTFArTxnxn_8qEU,1855
127
128
  telegrinder/tools/parse_mode.py,sha256=JyQ-x9YAMPLhIIiUX01acyKkpWgs5TBA07W-iUyPHpE,92
128
- telegrinder/types/__init__.py,sha256=5aD91jX6Ez-ut4gScjlOVFpjwo3K8R1Lb_9S4kHNiQk,5230
129
+ telegrinder/types/__init__.py,sha256=IDaQRxugF7lh8LHFjs1fjAQY9y6Z5en_j8CezBdoL7E,6036
129
130
  telegrinder/types/enums.py,sha256=LRPPSB95NhKnt5hd3dW_wMhiGEzGjyWSo5bheAfyz_s,19152
130
131
  telegrinder/types/methods.py,sha256=RPDCeYHuVFtF0CT3XW4Gq8fI26P5ql4UqyVdQdIeXTE,186543
131
- telegrinder/types/objects.py,sha256=A8n6WrzmZ-3y1B4z1R9NPgLgzk0iDkEjTAkQOYUdkGY,228638
132
- telegrinder/verification_utils.py,sha256=6slXeFQGjaNLIZCDOCBYzBBwDecV-vDHBwks0FskK6g,1023
133
- telegrinder-0.1.dev166.dist-info/LICENSE,sha256=J9ngGsqHCNNjpm3xYPT7EnlzsnjhfqNXej5mJFjM6lw,1094
134
- telegrinder-0.1.dev166.dist-info/METADATA,sha256=dK_23cvUitNJSUoEsqoctiZ8Oe2sCR8UlEblnq_q59c,2892
135
- telegrinder-0.1.dev166.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
136
- telegrinder-0.1.dev166.dist-info/RECORD,,
132
+ telegrinder/types/objects.py,sha256=QWlpNjjJc1jRBpG8cFKGLXhSyIiwtUHP2aIw446oPo8,228684
133
+ telegrinder/verification_utils.py,sha256=ZUgHsouZjs930D5rI_w7VGy0ub69vovwKXeKjqgrSNc,1028
134
+ telegrinder-0.1.dev167.dist-info/LICENSE,sha256=J9ngGsqHCNNjpm3xYPT7EnlzsnjhfqNXej5mJFjM6lw,1094
135
+ telegrinder-0.1.dev167.dist-info/METADATA,sha256=CPe-uupiL9vzJsSSiPLo9qvA78F9CnRNsbKOUn-hBfA,2892
136
+ telegrinder-0.1.dev167.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
137
+ telegrinder-0.1.dev167.dist-info/RECORD,,