arpakitlib 1.8.106__py3-none-any.whl → 1.8.108__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.
Files changed (66) hide show
  1. arpakitlib/_arpakit_project_template_v_5/project/api/authorize.py +5 -4
  2. arpakitlib/_arpakit_project_template_v_5/project/api/create_api_app.py +1 -0
  3. arpakitlib/_arpakit_project_template_v_5/project/api/exception.py +1 -0
  4. arpakitlib/_arpakit_project_template_v_5/project/api/exception_handler.py +1 -0
  5. arpakitlib/_arpakit_project_template_v_5/project/api/response.py +1 -0
  6. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/clear_log_file.py +2 -1
  7. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/create_operation.py +1 -0
  8. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_arpakitlib_project_template_info.py +1 -0
  9. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_auth_data.py +2 -1
  10. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_log_file.py +2 -1
  11. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation.py +2 -1
  12. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_settings.py +1 -0
  13. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_sqlalchemy_db_table_name_to_amount.py +1 -0
  14. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_story_log.py +2 -1
  15. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_user.py +2 -1
  16. arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user.py +2 -1
  17. arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user_token.py +1 -0
  18. arpakitlib/_arpakit_project_template_v_5/project/api/router/general/healthcheck.py +2 -1
  19. arpakitlib/_arpakit_project_template_v_5/project/api/router/general/now_utc_datetime.py +2 -1
  20. arpakitlib/_arpakit_project_template_v_5/project/core/easy_openai_api_client.py +45 -0
  21. arpakitlib/_arpakit_project_template_v_5/project/core/jinja2_templates.py +1 -0
  22. arpakitlib/_arpakit_project_template_v_5/project/core/settings.py +7 -2
  23. arpakitlib/_arpakit_project_template_v_5/project/operation_execution/operation_executor_worker.py +2 -1
  24. arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operations.py +3 -2
  25. arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/api_key.py +2 -1
  26. arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py +3 -2
  27. arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py +3 -2
  28. arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/story_log.py +2 -1
  29. arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py +2 -1
  30. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/admin.py +2 -1
  31. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/client.py +1 -0
  32. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/{callback → callback_data_}/admin.py +1 -1
  33. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback_data_/client.py +5 -0
  34. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/event.py +1 -0
  35. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/message_text.py +1 -0
  36. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin/hello_world.py +1 -1
  37. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/common.py +2 -1
  38. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/init_user.py +1 -0
  39. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/hello_world.py +1 -1
  40. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_old_cd.py +1 -1
  41. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_raise_error.py +1 -1
  42. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_remove_message.py +1 -1
  43. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/log_file.py +1 -0
  44. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/about.py +1 -0
  45. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/author.py +1 -0
  46. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/cancel.py +1 -0
  47. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/error_handler.py +1 -0
  48. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/raw_callback_query.py +1 -0
  49. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/remove_message.py +2 -1
  50. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/start.py +1 -0
  51. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/support.py +1 -0
  52. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/start_tg_bot.py +1 -0
  53. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/tg_bot.py +1 -0
  54. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/notify_admins.py +2 -1
  55. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/set_tg_bot_commands.py +1 -0
  56. arpakitlib/_arpakit_project_template_v_5/todo.txt +1 -0
  57. arpakitlib/ar_base64_util.py +15 -1
  58. arpakitlib/ar_openai_api_client_util.py +106 -35
  59. {arpakitlib-1.8.106.dist-info → arpakitlib-1.8.108.dist-info}/METADATA +1 -1
  60. {arpakitlib-1.8.106.dist-info → arpakitlib-1.8.108.dist-info}/RECORD +65 -63
  61. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/client.py +0 -5
  62. /arpakitlib/_arpakit_project_template_v_5/project/tg_bot/{callback → callback_data_}/__init__.py +0 -0
  63. /arpakitlib/_arpakit_project_template_v_5/project/tg_bot/{callback → callback_data_}/common.py +0 -0
  64. {arpakitlib-1.8.106.dist-info → arpakitlib-1.8.108.dist-info}/LICENSE +0 -0
  65. {arpakitlib-1.8.106.dist-info → arpakitlib-1.8.108.dist-info}/WHEEL +0 -0
  66. {arpakitlib-1.8.106.dist-info → arpakitlib-1.8.108.dist-info}/entry_points.txt +0 -0
@@ -2,6 +2,7 @@ import asyncio
2
2
  import logging
3
3
 
4
4
  from aiogram.types import BotCommand, BotCommandScopeChat
5
+
5
6
  from arpakitlib.ar_str_util import return_str_if_none
6
7
  from project.core.settings import get_cached_settings
7
8
  from project.core.util import setup_logging
@@ -15,6 +15,13 @@ def convert_base64_string_to_bytes(base64_string: str, raise_for_error: bool = F
15
15
  return None
16
16
 
17
17
 
18
+ def convert_base64_string_to_string(base64_string: str, raise_for_error: bool = False) -> Optional[str]:
19
+ return convert_base64_string_to_bytes(
20
+ base64_string=base64_string,
21
+ raise_for_error=raise_for_error
22
+ ).decode()
23
+
24
+
18
25
  def convert_bytes_to_base64_string(bytes_: bytes, raise_for_error: bool = False) -> Optional[str]:
19
26
  try:
20
27
  return base64.b64encode(bytes_).decode()
@@ -24,8 +31,15 @@ def convert_bytes_to_base64_string(bytes_: bytes, raise_for_error: bool = False)
24
31
  return None
25
32
 
26
33
 
34
+ def convert_file_to_base64_string(*, filepath: str, raise_for_error: bool = False) -> Optional[str]:
35
+ with open(filepath, "rb") as f:
36
+ return convert_bytes_to_base64_string(bytes_=f.read(), raise_for_error=raise_for_error)
37
+
38
+
27
39
  def __example():
28
- pass
40
+ print(convert_base64_string_to_string(
41
+ base64_string=convert_file_to_base64_string(filepath="./ar_arpakitlib_cli_util.py")
42
+ ))
29
43
 
30
44
 
31
45
  if __name__ == '__main__':
@@ -1,5 +1,7 @@
1
1
  # arpakit
2
2
 
3
+ from __future__ import annotations
4
+
3
5
  import asyncio
4
6
  import logging
5
7
 
@@ -7,7 +9,7 @@ import httpx
7
9
  from openai import OpenAI, AsyncOpenAI
8
10
  from openai.types.chat import ChatCompletion
9
11
 
10
- from arpakitlib.ar_logging_util import setup_normal_logging
12
+ from arpakitlib.ar_base64_util import convert_file_to_base64_string
11
13
 
12
14
  _ARPAKIT_LIB_MODULE_VERSION = "3.0"
13
15
 
@@ -16,7 +18,7 @@ https://platform.openai.com/docs/
16
18
  """
17
19
 
18
20
 
19
- class OpenAIAPIClient:
21
+ class EasyOpenAIAPIClient:
20
22
  def __init__(
21
23
  self,
22
24
  *,
@@ -28,6 +30,39 @@ class OpenAIAPIClient:
28
30
  self.open_ai = open_ai
29
31
  self.async_open_ai = async_open_ai
30
32
 
33
+ @classmethod
34
+ def create_easily(
35
+ cls,
36
+ openai_api_key: str,
37
+ openai_api_base_url: str | None = "https://api.proxyapi.ru/openai/v1"
38
+ ) -> EasyOpenAIAPIClient:
39
+ return EasyOpenAIAPIClient(
40
+ open_ai=OpenAI(
41
+ api_key=openai_api_key,
42
+ base_url=openai_api_base_url,
43
+ timeout=httpx.Timeout(
44
+ timeout=300, # общий таймаут
45
+ connect=60, # таймаут подключения
46
+ read=300, # чтение ответа
47
+ write=60, # запись запроса
48
+ pool=60 # пул соединений
49
+ )
50
+ ),
51
+ async_open_ai=AsyncOpenAI(
52
+ api_key=openai_api_key,
53
+ base_url=openai_api_base_url,
54
+ http_client=httpx.AsyncClient(
55
+ timeout=httpx.Timeout(
56
+ timeout=300,
57
+ connect=60,
58
+ read=300,
59
+ write=60,
60
+ pool=60
61
+ )
62
+ )
63
+ )
64
+ )
65
+
31
66
  def check_conn(self):
32
67
  self.open_ai.models.list()
33
68
 
@@ -54,49 +89,110 @@ class OpenAIAPIClient:
54
89
  self,
55
90
  *,
56
91
  prompt: str | None = None,
57
- content: str,
92
+ text: str,
58
93
  model: str = "gpt-4o",
59
- max_tokens: int = 300
94
+ image_links: str | list[str] | None = None,
95
+ image_filepaths: str | list[str] | None = None
60
96
  ) -> ChatCompletion:
97
+ if isinstance(image_links, str):
98
+ image_links = [image_links]
99
+ if isinstance(image_filepaths, str):
100
+ image_filepaths = [image_filepaths]
101
+
61
102
  messages = []
103
+
62
104
  if prompt is not None:
63
105
  messages.append({
64
106
  "role": "system",
65
107
  "content": prompt
66
108
  })
109
+
110
+ content = [{"type": "text", "text": text}]
111
+
112
+ if image_links:
113
+ for link in image_links:
114
+ content.append({
115
+ "type": "image_url",
116
+ "image_url": {"url": link}
117
+ })
118
+
119
+ if image_filepaths:
120
+ for path in image_filepaths:
121
+ base64_url = convert_file_to_base64_string(filepath=path, raise_for_error=True)
122
+ content.append({
123
+ "type": "image_url",
124
+ "image_url": {"url": base64_url}
125
+ })
126
+
67
127
  messages.append({
68
128
  "role": "user",
69
129
  "content": content
70
130
  })
131
+
71
132
  response: ChatCompletion = self.open_ai.chat.completions.create(
72
133
  model=model,
73
134
  messages=messages,
74
135
  n=1,
75
136
  temperature=0.1,
76
137
  top_p=0.9,
77
- max_tokens=max_tokens
138
+ max_tokens=1000
78
139
  )
140
+
79
141
  return response
80
142
 
81
- async def async_simple_ask(self, *, prompt: str | None = None, string: str) -> ChatCompletion:
143
+ async def async_simple_ask(
144
+ self,
145
+ *,
146
+ prompt: str | None = None,
147
+ text: str,
148
+ model: str = "gpt-4o",
149
+ image_links: str | list[str] | None = None,
150
+ image_filepaths: str | list[str] | None = None
151
+ ) -> ChatCompletion:
152
+ if isinstance(image_links, str):
153
+ image_links = [image_links]
154
+ if isinstance(image_filepaths, str):
155
+ image_filepaths = [image_filepaths]
156
+
82
157
  messages = []
158
+
83
159
  if prompt is not None:
84
160
  messages.append({
85
161
  "role": "system",
86
162
  "content": prompt
87
163
  })
164
+
165
+ content = [{"type": "text", "text": text}]
166
+
167
+ if image_links:
168
+ for link in image_links:
169
+ content.append({
170
+ "type": "image_url",
171
+ "image_url": {"url": link}
172
+ })
173
+
174
+ if image_filepaths:
175
+ for path in image_filepaths:
176
+ base64_url = convert_file_to_base64_string(filepath=path, raise_for_error=True)
177
+ content.append({
178
+ "type": "image_url",
179
+ "image_url": {"url": base64_url}
180
+ })
181
+
88
182
  messages.append({
89
183
  "role": "user",
90
- "content": string
184
+ "content": content
91
185
  })
186
+
92
187
  response: ChatCompletion = await self.async_open_ai.chat.completions.create(
93
- model="gpt-4o",
188
+ model=model,
94
189
  messages=messages,
95
190
  n=1,
96
191
  temperature=0.1,
97
192
  top_p=0.9,
98
- max_tokens=300
193
+ max_tokens=1000
99
194
  )
195
+
100
196
  return response
101
197
 
102
198
 
@@ -105,32 +201,7 @@ def __example():
105
201
 
106
202
 
107
203
  async def __async_example():
108
- setup_normal_logging()
109
- api_key = ""
110
- base_url = "https://api.proxyapi.ru/openai/v1"
111
- client = OpenAIAPIClient(
112
- open_ai=OpenAI(
113
- api_key=api_key,
114
- base_url=base_url,
115
- timeout=httpx.Timeout(
116
- timeout=60,
117
- )
118
- ),
119
- async_open_ai=AsyncOpenAI(
120
- api_key=api_key,
121
- base_url=base_url,
122
- timeout=httpx.Timeout(
123
- timeout=60,
124
- )
125
- )
126
- )
127
-
128
- print(await client.async_is_conn_good())
129
-
130
- response = client.simple_ask(
131
- content="Привет, проверяю тебя"
132
- )
133
- print(response.choices[0].message.content)
204
+ pass
134
205
 
135
206
 
136
207
  if __name__ == '__main__':
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: arpakitlib
3
- Version: 1.8.106
3
+ Version: 1.8.108
4
4
  Summary: arpakitlib
5
5
  License: Apache-2.0
6
6
  Keywords: arpakitlib,arpakit,arpakit-company,arpakitcompany,arpakit_company
@@ -82,49 +82,49 @@ arpakitlib/_arpakit_project_template_v_5/project/additional_model/__init__.py,sh
82
82
  arpakitlib/_arpakit_project_template_v_5/project/additional_model/common.py,sha256=BRz-B699ZY52DfUD6kmhpuThBWpPzpZpD0QXIjlkwC8,168
83
83
  arpakitlib/_arpakit_project_template_v_5/project/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
84
  arpakitlib/_arpakit_project_template_v_5/project/api/asgi.py,sha256=ES3YGwNxWUHVyD6e2ii6QkvTyB-vlVmr8_PhfVIXQ4Y,78
85
- arpakitlib/_arpakit_project_template_v_5/project/api/authorize.py,sha256=lQlpEKwwseWzBs8_knf3JpEEKoSbXBN7OZDWKwZbXWk,15423
85
+ arpakitlib/_arpakit_project_template_v_5/project/api/authorize.py,sha256=puOmx2OSV2ExcLqtAD1zmvfY0zbLqLxkytF5xLZTnQg,15424
86
86
  arpakitlib/_arpakit_project_template_v_5/project/api/blank/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
87
  arpakitlib/_arpakit_project_template_v_5/project/api/blank/admin.py,sha256=ii1zLHjvB7OVLQKFOhp4lpodXcwAmtwDdrM1iaafQfg,100
88
88
  arpakitlib/_arpakit_project_template_v_5/project/api/blank/client.py,sha256=rvJKtAB26Qy2pKVSHSMUM_70oI4v8Yr6Vmpr6r4EzNk,101
89
89
  arpakitlib/_arpakit_project_template_v_5/project/api/blank/common.py,sha256=ug1FylE_CVC5eij-u4nh-IHNO-gwkbBGo5KgyWDujC8,91
90
90
  arpakitlib/_arpakit_project_template_v_5/project/api/const.py,sha256=J9bqaRRiIc3RLn6SJTvdfDvFrSsM_Ixii9t2M8dA5Jc,433
91
- arpakitlib/_arpakit_project_template_v_5/project/api/create_api_app.py,sha256=Z7hMtmcVsnJF20Rx2IRlcZU7zjbrpMT3AVkX73lx8r4,2860
91
+ arpakitlib/_arpakit_project_template_v_5/project/api/create_api_app.py,sha256=fRYjpKEB5pMpFtWEhUe84mVvaFBKQ2WU5BTwCpb0J2Y,2861
92
92
  arpakitlib/_arpakit_project_template_v_5/project/api/event.py,sha256=xKfJ3UnOx_g1s7KNZjWRp0eZbVRTsSlyJhT3wkfwT6k,2414
93
- arpakitlib/_arpakit_project_template_v_5/project/api/exception.py,sha256=6v45GQzoFZ83Nud8BxCmfVP-zFCiGFtxbAL1b_pKxZk,1279
94
- arpakitlib/_arpakit_project_template_v_5/project/api/exception_handler.py,sha256=92icNa338l4S8BY7E_lt47l0_F7BIhGKKFCzxxJbyOo,11178
93
+ arpakitlib/_arpakit_project_template_v_5/project/api/exception.py,sha256=cNZaI2DacGLl8Hyn1qIfFpVjvQzOQjwXWsVW4auBrCo,1280
94
+ arpakitlib/_arpakit_project_template_v_5/project/api/exception_handler.py,sha256=TEzkCNOg_TAELRTZgLtblVagSaHf-vego_oH5FNCbcs,11179
95
95
  arpakitlib/_arpakit_project_template_v_5/project/api/openapi_ui.py,sha256=PLhH-W6zDViO-75AGCs8Vq3IoyHChdqwBYAqLvdQN0U,904
96
- arpakitlib/_arpakit_project_template_v_5/project/api/response.py,sha256=UOwy2mMJl_xz7FqHlk9Tz1_J8DcjTKRRchmnFGxhHOI,1027
96
+ arpakitlib/_arpakit_project_template_v_5/project/api/response.py,sha256=xZMymP2BuQaRNVWLeIp3UgUUo-MFN8MJnsn9Al4vOb8,1028
97
97
  arpakitlib/_arpakit_project_template_v_5/project/api/router/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
98
  arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
99
  arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/check_sqlalchemy_db.py,sha256=JGe2HvUSvXaIOaFG0ezNBhANCjvHJJFIG3aBtWF2dTY,1218
100
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/clear_log_file.py,sha256=35EiCIS8p-4k4pyZabAkAxNaSMFaDsK47knSaLVgpps,1353
101
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/create_operation.py,sha256=i-a_i8h2EfJdkmDye9mamummXOAuHVNiaEsnCVyAdxA,2357
102
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_arpakitlib_project_template_info.py,sha256=rkeybEoY2gpcw45Mgyof5pboKkclG78t460H11DPlNw,1264
103
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_auth_data.py,sha256=2Lh7EbVylDyI1RfUR0P4D0kPTkveLV2i2wEXo3EyIEY,1194
104
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_log_file.py,sha256=0RWxz0N_Ir3lrzHqOmh3EcrCAN8drIngkqq6mk5sq9U,1161
105
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation.py,sha256=y82PxkcBTzSTlM_VYboFN9kLJPhOFwZCAjvyZPhpuas,2290
100
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/clear_log_file.py,sha256=HZYc4isEPEDx92v0cxTomS5j3hG7Nm2vn71hqkajM4M,1354
101
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/create_operation.py,sha256=aZFZzJM36knQIf2I2jCOjqzQ6nn70WgcPv88V18u8Ho,2358
102
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_arpakitlib_project_template_info.py,sha256=c4HAHSivR8viAlHVyTut4VaKNkYsYiabE833FsUl9Yk,1265
103
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_auth_data.py,sha256=Hpjkucwnb2LtytWpMMA2WMROY2cTLn0q_tnUFijk0so,1195
104
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_log_file.py,sha256=rzEPco45I-4FzrlbI3z5B-smhrHFIVIsDiHtTULoE4g,1162
105
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation.py,sha256=uo3QK4Rw8V0YjMbCeymC6JZF2-qkMay3ofZlxBC3-S0,2291
106
106
  arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation_allowed_statuses.py,sha256=eN-1XHeeSkgSTmYLldV-8uAY8qEmdUVCfvY2A5IHtw0,1096
107
107
  arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation_allowed_types.py,sha256=R5d3lZCHQNadPzG77WbJbLFQwTwPFU3l7BLYUlIOA6c,1090
108
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_settings.py,sha256=8oSlOz-Kj_Raln---9M4J9RYYuPwTKLj_hRQoBPSzxQ,1156
109
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_sqlalchemy_db_table_name_to_amount.py,sha256=gWC5FLo3JzuN7KZXahCIqQnYVmH3VujlE8sL9qDUSF0,1200
110
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_story_log.py,sha256=zuYxRksXWH4klnqpr5B-LHrbU1-eejQc9NEKdVQ9LP8,2282
111
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_user.py,sha256=S5O13_HSHhYrc9QCbirjy07GgnNX4DHRvKnPX-_Tf74,3020
108
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_settings.py,sha256=UhTWDrBkZHqkbqanDMr6Q4vZibDBeCIrVNzAInzjR8o,1157
109
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_sqlalchemy_db_table_name_to_amount.py,sha256=H6D9gEhbSKEwKeYj2HAyk948-sPvhxRark_Iqq67Jzk,1201
110
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_story_log.py,sha256=XEVouJSYgEIa0y6ujwfv26tAd6M-tMixOQZCxFUnHec,2283
111
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_user.py,sha256=ChsorTfFI03PzJfvcKU4mSHMTXuIrphXgoZBft6nMy4,3021
112
112
  arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/init_sqlalchemy_db.py,sha256=HUDaDeyb5ldpiEaA2mJIsAuGF6H-XupGvKfxjrkxMTE,1333
113
113
  arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/main_router.py,sha256=pu5-H9JlXhsVrY4a2ajbgeTbPo9ijIGSiq7J1Q77QT0,2479
114
114
  arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/make_test_data_1.py,sha256=tITqtXW2C7od04_ECQudR_5kupVoKrYVnUVU2YcZp-g,1178
115
115
  arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/raise_fake_error.py,sha256=kMr06QR39XVUoVwUuwJHoQmaWHvlfi2j53ZCMX3CU48,1048
116
116
  arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/reinit_sqlalchemy_db.py,sha256=kTa_RSZgPKbDfdFHzhAJroddWOUDRK4YTJN2WVnKu-Q,1343
117
117
  arpakitlib/_arpakit_project_template_v_5/project/api/router/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
- arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user.py,sha256=BgjKWJV8ndoL0LVqT5ETx61jJSxuElU1BNZP0eYVEZo,1669
119
- arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user_token.py,sha256=3qhHhA-6crS-6msE8ls4D8pYRCA8paUprAsRfj76dJM,1285
118
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user.py,sha256=5pGclUqLb9NYHYhxUJMcCjzQmGs8OwrosAZ2UgWrP1A,1670
119
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user_token.py,sha256=wwga5rcUBPWL9qgnYgEelaGqc2gKlRMutbjtw9g-srQ,1286
120
120
  arpakitlib/_arpakit_project_template_v_5/project/api/router/client/main_router.py,sha256=IIy6VxG5xPR4ZjGaMwDM59izMIMoFxjqVmAvh-Fq330,386
121
121
  arpakitlib/_arpakit_project_template_v_5/project/api/router/general/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
122
122
  arpakitlib/_arpakit_project_template_v_5/project/api/router/general/check_authorization.py,sha256=NUQK4KI0XpwzPEGjgQMxU43ZaTm-dEXrmU1BMIFcA3k,1853
123
123
  arpakitlib/_arpakit_project_template_v_5/project/api/router/general/get_current_api_key.py,sha256=fkQ2SYnjBiJkNu__DfDV4tpu83sZBRVZK6aiUbABJOY,1195
124
124
  arpakitlib/_arpakit_project_template_v_5/project/api/router/general/get_errors_info.py,sha256=OS4R5UVVjvnI8S6lDBMEZ9jXbpbttPKe4n2q-jzTs9Y,1157
125
- arpakitlib/_arpakit_project_template_v_5/project/api/router/general/healthcheck.py,sha256=Otzqhzaexh7aUaHJOuz59C8BQsuYyVBrcgU9ecHrgYg,694
125
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/general/healthcheck.py,sha256=n-ANP4x4AD6903Lt25r2mZx3tQ1DdxKn2SRPwk-POv0,695
126
126
  arpakitlib/_arpakit_project_template_v_5/project/api/router/general/main_router.py,sha256=zYei_6fiEVRkP3fuhCmu_c1rNzTUULAlh18PckTKfR4,774
127
- arpakitlib/_arpakit_project_template_v_5/project/api/router/general/now_utc_datetime.py,sha256=_msDsNe8xOd2gy_IcyGGzo6PsVAchhxlY8OuBtFdPA4,908
127
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/general/now_utc_datetime.py,sha256=SG-x57FCs9_nWPJAnNhem6HIx5vQ-DLj4IXwuI0GEiY,909
128
128
  arpakitlib/_arpakit_project_template_v_5/project/api/router/main_router.py,sha256=Y-PPHWbLoICn0O8NRdx49f7ifEw2uN_QIRwfIseo0J0,615
129
129
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
130
130
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/common.py,sha256=DX6Yz63JHoNlgmZnpss2PuRgEtBh3PPlxM6wImYLpXo,718
@@ -168,9 +168,10 @@ arpakitlib/_arpakit_project_template_v_5/project/core/__init__.py,sha256=47DEQpj
168
168
  arpakitlib/_arpakit_project_template_v_5/project/core/cache_file_storage_in_dir.py,sha256=0lKPKvrs30DlAZwNS5ydPsQ9ETFLBjZqEcNv8LoQVCU,623
169
169
  arpakitlib/_arpakit_project_template_v_5/project/core/const.py,sha256=hgiiPIYL9543-eEnNAhZWYgX7ZzLKjOqRD0skkROSOw,951
170
170
  arpakitlib/_arpakit_project_template_v_5/project/core/dump_file_storage_in_dir.py,sha256=u3-vStMGaseMsRLuJmQK04UDhaez9vw6o5jyHb1fwNg,617
171
- arpakitlib/_arpakit_project_template_v_5/project/core/jinja2_templates.py,sha256=y-kxNQH-QykgdFELimNj2eSJxRit0IAQc5rDgg3Z-Qc,351
171
+ arpakitlib/_arpakit_project_template_v_5/project/core/easy_openai_api_client.py,sha256=NAwu0e7m4m2OVcZC0KBbgjiNxKmpIUofBzwTRbC1GBQ,1219
172
+ arpakitlib/_arpakit_project_template_v_5/project/core/jinja2_templates.py,sha256=jCNLaBauGC7YNvZdTLNHuPp7hmRGt94O23Skg6ewo7o,352
172
173
  arpakitlib/_arpakit_project_template_v_5/project/core/media_file_storage_in_dir.py,sha256=fMofTsfJtA8pp5lEUhucEUu3PBsmj-elaRZzExDsdLI,623
173
- arpakitlib/_arpakit_project_template_v_5/project/core/settings.py,sha256=IQGRJM1kOttFG8YeCmNOO-MueGMTA1K4ugupkiV7fGE,5880
174
+ arpakitlib/_arpakit_project_template_v_5/project/core/settings.py,sha256=NlbGFZCR98hytoigP4E5TjazIUJt8NPSI0NZOmQ365A,5995
174
175
  arpakitlib/_arpakit_project_template_v_5/project/core/util.py,sha256=1ha9UrguVPsTSjoMHhVZVCD0_mNBfhIDGEvcG1nA4Zw,667
175
176
  arpakitlib/_arpakit_project_template_v_5/project/json_db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
177
  arpakitlib/_arpakit_project_template_v_5/project/json_db/json_db.py,sha256=tBML-z4Y7uY8f_0ggcxvlDNt15Sf93Jr_OUeHwWxqOA,724
@@ -178,9 +179,9 @@ arpakitlib/_arpakit_project_template_v_5/project/more/__init__.py,sha256=47DEQpj
178
179
  arpakitlib/_arpakit_project_template_v_5/project/more/helloworld,sha256=eH7Hbcr9IMGQjrCTahL5Ht0QWrXNfswrGuIDJkg0Xf8,11
179
180
  arpakitlib/_arpakit_project_template_v_5/project/operation_execution/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
180
181
  arpakitlib/_arpakit_project_template_v_5/project/operation_execution/const.py,sha256=dcvj5C9E2F2KCsGZPBBncQf_EvVJAC1qQgnyD8P4ZEw,6
181
- arpakitlib/_arpakit_project_template_v_5/project/operation_execution/operation_executor_worker.py,sha256=Wcdv_AUCLgr-L2fqwe6M0XuwaC0-GDSiNvHX9J5PUjg,12129
182
+ arpakitlib/_arpakit_project_template_v_5/project/operation_execution/operation_executor_worker.py,sha256=GlJYHw63RONeTfQa6goLoFSlcLp0m7CcAYai-1RtSl0,12130
182
183
  arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operation_creator_worker.py,sha256=WzZC6r0GVSwOpphsxqpRZIdeewK_wzi3YshjLOutYGA,4524
183
- arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operations.py,sha256=vAr-dkGoVcsl5dzLUzPHAMv8-9ahIS66aKXZ5IhfGsY,1711
184
+ arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operations.py,sha256=WZyRWzrLvGre_1TjWy0I8V7WfKFZJ0f_8LuZZNrzgy8,1712
184
185
  arpakitlib/_arpakit_project_template_v_5/project/operation_execution/util.py,sha256=sqHF2AU5Y5IurYHcIH2bu3-JbS1amLO3GD13Zvy8epM,923
185
186
  arpakitlib/_arpakit_project_template_v_5/project/resource/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
186
187
  arpakitlib/_arpakit_project_template_v_5/project/resource/static/1,sha256=IIO7Wvjwlr2-LPSQ7Y8O35hcI6t0_s8zqITDxkYCO8I,11
@@ -244,12 +245,12 @@ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/__init__.py,sha2
244
245
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/const.py,sha256=dcvj5C9E2F2KCsGZPBBncQf_EvVJAC1qQgnyD8P4ZEw,6
245
246
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_db.py,sha256=1y3FaMFzm_5UM2poqtBve_UP_mh1vjs--krq6yO8PsA,742
246
247
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/__init__.py,sha256=zRK-ao92u6Q-NNTtsPycTVEjzRjK5BOXgsUZRtNblpM,688
247
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/api_key.py,sha256=4Y4zgKzty_7xqqJWg4DDiS0nbDXzQVtq2r6d0lunnTw,2025
248
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py,sha256=_ddBled1XX6YR3LxoWmRlZjwMRHlBmQRBVg0vGcPe_8,3228
249
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py,sha256=VkaUFYgnpGfQbJP_APuCRwzzQRr7yGgnEbbNlsizwgU,5912
250
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/story_log.py,sha256=hqkXH7oV-BT8pRDzrDYWYseVFg2J6ca-WYyiucPOiH4,2395
248
+ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/api_key.py,sha256=R-wAGtRtRS4CjW2DPJ9ZUyRnMqICWTaqyUTlhsAd7LY,2026
249
+ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py,sha256=9j3QwBkaQSmsqXZbAYZDysGXP3xPPAHJfqIja5UnLcc,3229
250
+ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py,sha256=op5cSkTlHJyGjULgcSWE9-_PNinKSneHLxhG5DUkd9M,5913
251
+ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/story_log.py,sha256=wig_D6OZyYYGsqZEbmSK56qoAIOnOVnOEB_sRSZLSIU,2396
251
252
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user.py,sha256=xdayFM48y4OPAd5HVNgWHvdujiO62fEj3XDcquwTrBk,7533
252
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py,sha256=y97em7M2WfDV8Wm7GMrIejalk9NkCsZDGK-sETkXscM,1943
253
+ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py,sha256=UtSbQRlNJOnD7q-d_aZfMjQnPFnchGPf1fWGwsgCm5k,1944
253
254
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/verification_code.py,sha256=13aDT9m2l9zaJXqHZi0MsoY--5BNWhbw0O9uQJAW16E,3136
254
255
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/util.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
255
256
  arpakitlib/_arpakit_project_template_v_5/project/test_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -261,18 +262,18 @@ arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_4.py,s
261
262
  arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_5.py,sha256=cew0ndlJspNkeQVOS0UPoceg1ARIm5ZFCzytiDIyvbg,416
262
263
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
263
264
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
264
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/admin.py,sha256=Z802nclQbn2lkzrUmKD0La4xXxfhuuwrsp3IMGRDyyE,875
265
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/client.py,sha256=YJYB3chOBfkoaohUNKckgXVvZN0306reTWFjHE_B0q8,2732
265
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/admin.py,sha256=ozabEfB7r38NqbV9XIbBYC3JCzZLzWhBQT4uUxwm_MY,876
266
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/client.py,sha256=4Mt-VXvKZhoUJ63NxAXhfT4ScHRvebBKVf9kfXyzmE4,2733
266
267
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/common.py,sha256=HjJnKLQAdHtLLM73wURiFR2zzJEvkypVg0pMsKu5mKs,93
267
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
268
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/admin.py,sha256=6_GPIa9azJGgsDB2SHs6IpSi5jc18PwqXMFgyMatooU,114
269
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/client.py,sha256=VsYtsjTHzsYrTV4ejEib9aoaRN1NieYgYVt_lt2tu48,98
270
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/common.py,sha256=FhSQLjdR-XArdorqG9RxsCjgQv_RyWbFZFHM52Sar-4,1023
268
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback_data_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
269
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback_data_/admin.py,sha256=GH8R-Lv2hCGgyKdjb7X9BzD064gPG9p-OqC_Spp9zQ0,120
270
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback_data_/client.py,sha256=B9yoHwm9ziacWUb0zuGmDJcsx9vD9MlCW7KqYIT-Tyo,104
271
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback_data_/common.py,sha256=FhSQLjdR-XArdorqG9RxsCjgQv_RyWbFZFHM52Sar-4,1023
271
272
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/const.py,sha256=DJBbN7lLkQMIPVYeWSRF-qX_GuHWyM442I9haTOSQx0,1214
272
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/event.py,sha256=GdVK-5X56chIGf-yEb0c5DKXvqqS96oSGYMjKlGIU8s,4081
273
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/event.py,sha256=nTyJt6QRBKPz3BcVz9KtgGMtV3qTh_RaCSZe-6q2M6Q,4082
273
274
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
274
275
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/is_private_chat.py,sha256=2anQo68KqkNYQnfIZDXSOX0P9hU59oSSSIJ36bWQdo8,500
275
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/message_text.py,sha256=7aXOwQBhteajaZN5unXEUf8dW3jMuAJ8VgoB4gJIAAA,1325
276
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/message_text.py,sha256=OdQSWtdqAQeiJt2hr1z5XMreT-esVkBHLBLvMx4PzAw,1326
276
277
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/not_prod_mode_filter.py,sha256=WY2Bl6_vznUi2bT0WMbVUkQq_JQ783hMFFwLs4u9Whk,236
277
278
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/prod_mode_filter.py,sha256=WfbAnzW8X4wJVtv_lHbr6u2SXXGwLhplTKPaHpuWQZ4,229
278
279
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/user_roles_has_admin.py,sha256=cFDYs03CgRkuAi6XDXdMxXKatWG_YeH5TpHP-lIIMTw,593
@@ -281,7 +282,7 @@ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/__init__.py,sha256=47
281
282
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
282
283
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
283
284
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin/common.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
284
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin/hello_world.py,sha256=BhYA2y_saDSer4WZoPhr8fsnZvuS4ZXs2od-waRY-Lo,586
285
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin/hello_world.py,sha256=fPYXuleAKBZMKaB10z2yY4iD7W1qUQLtdjdWxhGCKa4,592
285
286
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
286
287
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/common.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
287
288
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/support.py,sha256=lWeCeu49IbypjOPH8zWYAAnHej5fFKKC7EhrnrfsMUo,512
@@ -294,8 +295,8 @@ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/client/__init
294
295
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/client/common.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
295
296
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/common.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
296
297
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
297
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/common.py,sha256=P716ccy_7YLoPlgh-ecO_n0W7aHaoBjBITo5BS2q4Ls,405
298
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/init_user.py,sha256=TlbSGRr7aMDlnGZ-XRbTEHTXNCPB2DYHVhxoGl75rGU,4059
298
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/common.py,sha256=Z1LMCJUtdzVBe7W60HWTUQT7G_vKfNh4i4dFZT7BmLM,406
299
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/init_user.py,sha256=slnd3Sdz_OqMtwybJdc1qsQ9AM3UNmwmby7A20gNIV4,4060
299
300
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/uil.py,sha256=66v3pHu8nhJ8pJayXaHNKjmPVK4fKUCNWilOM0yzNKg,319
300
301
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
301
302
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -303,45 +304,46 @@ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/arpakitlib_
303
304
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/clear_log_file.py,sha256=UTmkAes7u87n5v_6wAu3ukzijY2xC1pW1pS9tD0Wd_0,1345
304
305
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/current_state.py,sha256=20ZosYuI7sR_2H2C_EpM8SqTLdJdjc7O-6FhbSpQuh4,921
305
306
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/drop_sqlalchemy_db.py,sha256=g8B_68y_VEJUBlMfsAOQ-IGy54e7RUwKmUMBl-jQsvM,1274
306
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/hello_world.py,sha256=lTdz-Q6H0nuLGQtP-3pKJNCh4Fi0xvh5gQD-E3LcT2A,2424
307
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/hello_world.py,sha256=jGE8p-rBiWIwDz8Hozg-q92NdFenD5uE6K8cLbXuXRA,2430
307
308
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/init_sqlalchemy_db.py,sha256=XOjclZdmzQdXd_vmsUZa2GJbD1kS7MD5d62tgcUvqgQ,1050
308
309
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_not_modified.py,sha256=rCcsVnbze2Rx8TyfthV5TZjRXE-eJ9Tucrv6GfBPZoA,2031
309
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_old_cd.py,sha256=y-06B6jnHXEM90Ygj4Ie0hT7PHxr9tX-QpUr6exIWCc,1279
310
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_raise_error.py,sha256=yajAkA1DQqhCt6SC9bbgpLrY-3Wt8BF5iNpE7ur77_s,1599
311
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_remove_message.py,sha256=oFoZDtcWl9TqaOxG4pT99_VBQQBq16ZUyqytkxdmd_8,1321
312
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/log_file.py,sha256=MQc_gwDEmRyHpoOb0VHfncrTplSueOy1--DdVzjm3O4,1343
310
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_old_cd.py,sha256=lCPpzbLoyyrD9IGOxUvRunxy6Ydh8YmEPN0rZs-wdRg,1285
311
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_raise_error.py,sha256=XNGzidsJ8468Thsam_lg83IfCLH-Q-b2ifUSAjUPWsU,1605
312
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_remove_message.py,sha256=VgCukyiVKm4N5jmbSHlRToYacfnuWtvfIe_6oFN0VGI,1327
313
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/log_file.py,sha256=c_0REIcl2_3ceHXEKwwNXx0b2UEKtdwUXdz8WfmUdpc,1344
313
314
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/me.py,sha256=-oeAQEfvoHfN9BaMm66noEUggRBf6NjvJu4LhuOfkts,974
314
315
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/raise_fake_error.py,sha256=OKnSZ0IXt6Ma5F1212dnw1You3WT706N7VcU6djRQTE,815
315
316
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/reinit_sqlalchemy_db.py,sha256=SmtuNFzxiUKmZ5WjVihwsjIQtw9cDMzTPlHSTpG4Ckc,1295
316
317
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/set_tg_bot_commands.py,sha256=IXVWqwlbmiphA0qtEdZiwS6UJJyXfHl6uXhqsX74wmc,1083
317
318
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
318
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/about.py,sha256=XoFPp-5l6qMmJPt7dV_M5JT_Drs7y_E4wfssaJgyBMA,934
319
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/author.py,sha256=gOaequhV1WX77oNr12AqNss4ctkqBG9dnX0Ee-WKupE,956
320
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/cancel.py,sha256=7Q9gPMNQ-vwXI1hs34wqlDcZJ0DlGpbZ26AVmnALQ5Q,936
321
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/error_handler.py,sha256=eH-zlZHPHXlM63CWc3V2nj23gxwqRjFllbQ5cSlF_3E,3333
319
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/about.py,sha256=blOgJ2eNJm6eE2odtcnCMfIrmelJUmEaZVP_Kirwclo,935
320
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/author.py,sha256=7GXp916EAtCjnG5bekEACjSxTSwilZgod0NzQYDn--I,957
321
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/cancel.py,sha256=ScD8JUTaGy5GUapFzhcb1hreuwN7_M4BBuAwUo8RWEc,937
322
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/error_handler.py,sha256=_whYErhFEXUmJe181uB_BHiMUFJwIF4rkFVSW_A6UlM,3334
322
323
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/healthcheck.py,sha256=Vha3kiIAI5ZKgX9O62us6kbuEE3uKIFLh_C6qm3JFPI,631
323
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/raw_callback_query.py,sha256=WGOQ0gi-f51YNiM5EyrFUmkX3o1HMUeCd1lOVnLo11E,869
324
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/raw_callback_query.py,sha256=zQurJqBROhhbec2elBunE3sFce31HZMDB3WgNWXDg5A,870
324
325
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/raw_inline_query.py,sha256=H6lMpcbC_qXMibNPGUnRHG3TSA4BG9gIL3RBLJhSckg,359
325
326
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/raw_message.py,sha256=80fmR-BOjJd5e5dXLJnxGVUkpMTKBmuY5N7uYqiOQJ4,515
326
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/remove_message.py,sha256=1SAO5uXsKk9p3TDSZnStHoLBAC9dj-AWs4zzPLP3XMY,784
327
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/start.py,sha256=GuhaV7ppdAfXZmn0KiGix8X_44F9cukAQwQ707FsASA,1015
328
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/support.py,sha256=JJbklXoIeJNLss2eyX9AZPfsed2ie5UtXHQrE_pYAmk,1095
327
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/remove_message.py,sha256=DeHoq6nCIHAhxwPZgcy7zU01Y7cpIJNapwsE_MjiRtY,791
328
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/start.py,sha256=jD9WbJn4tND6wsfxxxmvYl8DDhoAXAkFziueV9IY4iM,1016
329
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/support.py,sha256=MCvb-yJCBrJWBoESdU2X8Uft50oxEVe_m5YhZ_oHY4M,1096
329
330
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/main_router.py,sha256=5r9wZLjhxWTL89I_NF8NUwcMcBkyOQR7IRw9y4gWXWY,2435
330
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/start_tg_bot.py,sha256=IniVc5Sj72nb0AumjOxLtmuyNRb8AxrgAygdkbkVwug,1252
331
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/start_tg_bot.py,sha256=vHARWETCD4hlK624aFxnkjsytgEbZY20bt973Oc_Peo,1253
331
332
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/state/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
332
333
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/state/admin.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
333
334
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/state/client.py,sha256=B1mslhGJEibHDS-YHtWncAnd3UVeyzJmVsdQK4UAzB4,119
334
335
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/state/common.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
335
336
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/state/util.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
336
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/tg_bot.py,sha256=IYoYlpq3_1xicDKBixuXTHJeYmqzj7Lwk9MnFCqZLaU,848
337
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/tg_bot.py,sha256=jMX_awQl3GvyKZ8pmR0dQOzg_2LyrYTmn31DAVmOxxs,849
337
338
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/tg_bot_dispatcher.py,sha256=1uxUooMhkDzUVHrHZgWU-SqwElh9KETgD5JtkkV4wAs,653
338
339
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
339
340
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/etc.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
340
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/notify_admins.py,sha256=P-pqF5TPK3T_EgtGYk717W7tFVOc4xNuccFehYv-054,2095
341
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/set_tg_bot_commands.py,sha256=gCcc-nWyu_MGKkhFSs9qk44el99hCzJiJBLksyN3nV8,3488
341
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/notify_admins.py,sha256=ikjp5J0qgq6LGxh6iFcVIKtO3cUed3p39NwcFLcatVE,2096
342
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/set_tg_bot_commands.py,sha256=eTVOpwp8zn74QhLgmbLkxn3cH4xPzQN02euS-7UP-Eg,3489
342
343
  arpakitlib/_arpakit_project_template_v_5/project/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
343
344
  arpakitlib/_arpakit_project_template_v_5/project/util/arpakitlib_project_template_util.py,sha256=syA_IuszHVub0zm0sVdB4_7rPJXwXRW4JmQ4qHbjXPk,396
344
345
  arpakitlib/_arpakit_project_template_v_5/project/util/etc.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
346
+ arpakitlib/_arpakit_project_template_v_5/todo.txt,sha256=q132Jbx229ThY77S3YiN-Cj5AVm7k1VlJcMYIbZUHUY,3
345
347
  arpakitlib/ar_additional_model_util.py,sha256=GFg-glLCxH9X95R2bhTJsscVwv37FgE1qbaAAyXrnIE,917
346
348
  arpakitlib/ar_aiogram_util.py,sha256=4bizX5Xg-E2-r2TXXGQGanJozsIWPVf5luO3vKUN8p8,8471
347
349
  arpakitlib/ar_arpakit_lib_module_util.py,sha256=g9uWwTK2eEzmErqwYeVgXDYVMREN8m5CdmgEumAEQfw,5919
@@ -349,7 +351,7 @@ arpakitlib/ar_arpakit_project_template_util.py,sha256=5-o6eTmh-2DqsIqmo63SXw7ttE
349
351
  arpakitlib/ar_arpakit_schedule_uust_api_client_util.py,sha256=MRPaF31CRhYA45ldPnoRpaTPMazCJq0jbwDxW5rvMww,12937
350
352
  arpakitlib/ar_arpakit_schedule_uust_site_util.py,sha256=8wLct9Gd4MWkXzB6nSmETAwTPLw8lfpWgx0LoWSAOvg,1643
351
353
  arpakitlib/ar_arpakitlib_cli_util.py,sha256=RJGcfEZ_q74FJ4tqdXvt7xQpShTszOvKu1mbp3D8qzw,2599
352
- arpakitlib/ar_base64_util.py,sha256=aZkg2cZTuAaP2IWeG_LXJ6RO7qhyskVwec-Lks0iM-k,676
354
+ arpakitlib/ar_base64_util.py,sha256=udSSpeXMZx0JgQknl4hQgZ8kr1Ps_aQOloIXu4T9dMQ,1286
353
355
  arpakitlib/ar_base_worker_util.py,sha256=eyaoDy4T_wKSNFu_npigVYZKHpxmt66Vdzb3gZ2BAis,5861
354
356
  arpakitlib/ar_blank_util.py,sha256=qFUdY8usL_pRYamz8Rw1fW3fzNIgrLmpdYP8q-_PQvw,2281
355
357
  arpakitlib/ar_cache_file_util.py,sha256=Fo2pH-Zqm966KWFBHG_pbiySGZvhIFCYqy7k1weRfJ0,3476
@@ -375,7 +377,7 @@ arpakitlib/ar_list_util.py,sha256=2woOAHAU8oTIiVjZ8GLnx15odEaoQUq3Q0JPxlufFF0,45
375
377
  arpakitlib/ar_logging_util.py,sha256=GLw87L6qUASHS4-eAoBW0kN2hHXVdmWcmE9huw-J5aI,1681
376
378
  arpakitlib/ar_mongodb_util.py,sha256=2ECkTnGAZ92qxioL-fmN6R4yZOSr3bXdXLWTzT1C3vk,4038
377
379
  arpakitlib/ar_need_type_util.py,sha256=XmY1kswz8j9oo5f9CxRu0_zgfvxWrXPYKOj6MM04sGk,2604
378
- arpakitlib/ar_openai_api_client_util.py,sha256=nMF8-ybcSx29Q7HK3X6vhliQIy7UnuNcpXiYOWgyMn0,3316
380
+ arpakitlib/ar_openai_api_client_util.py,sha256=dWgsSPXtxNBxS5VRi_NharGQrUXF_YjIfhU3Bj5cW9M,5651
379
381
  arpakitlib/ar_parse_command.py,sha256=1WTdQoWVshoDZ1jDaKeTzajfqaYHP3FNO0-REyo1aMY,3003
380
382
  arpakitlib/ar_postgresql_util.py,sha256=1AuLjEaa1Lg4pzn-ukCVnDi35Eg1k91APRTqZhIJAdo,945
381
383
  arpakitlib/ar_rat_func_util.py,sha256=Ca10o3RJwyx_DJLxjTxgHDO6NU3M6CWgUR4bif67OE4,2006
@@ -390,8 +392,8 @@ arpakitlib/ar_ssh_runner_util.py,sha256=yvAwza480MkHKvLkDEsR7JNh2bYNs6P9rCVo4NA8
390
392
  arpakitlib/ar_str_util.py,sha256=CAv0wH8nP5Ja59S-hEdmNhNrM_Fwy935d0zntLpJkx8,4309
391
393
  arpakitlib/ar_type_util.py,sha256=Cs_tef-Fc5xeyAF54KgISCsP11NHyzIsglm4S3Xx7iM,4049
392
394
  arpakitlib/ar_yookassa_api_client_util.py,sha256=VozuZeCJjmLd1zj2BdC9WfiAQ3XYOrIMsdpNK-AUlm0,5347
393
- arpakitlib-1.8.106.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
394
- arpakitlib-1.8.106.dist-info/METADATA,sha256=3LOWtcSBVG24HT2LynMRfoXWxU9fnrQVRP-aZuTMWWo,3566
395
- arpakitlib-1.8.106.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
396
- arpakitlib-1.8.106.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
397
- arpakitlib-1.8.106.dist-info/RECORD,,
395
+ arpakitlib-1.8.108.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
396
+ arpakitlib-1.8.108.dist-info/METADATA,sha256=jgzV39GScpi1sgRSiPkI7Bbt520miM5phD-0PlF6x2c,3566
397
+ arpakitlib-1.8.108.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
398
+ arpakitlib-1.8.108.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
399
+ arpakitlib-1.8.108.dist-info/RECORD,,
@@ -1,5 +0,0 @@
1
- from project.tg_bot.callback.common import BaseCD
2
-
3
-
4
- class RemoveMessageClientCD(BaseCD):
5
- pass