arpakitlib 1.8.65__py3-none-any.whl → 1.8.66__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 (33) hide show
  1. arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user_token.py +13 -1
  2. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/common.py +2 -2
  3. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/operation.py +2 -2
  4. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/story_log.py +2 -2
  5. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/user.py +2 -2
  6. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/common.py +2 -2
  7. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user.py +2 -2
  8. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user_token.py +2 -2
  9. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/api_key.py +4 -4
  10. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/common.py +2 -2
  11. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user.py +4 -4
  12. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user_token.py +4 -4
  13. arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py +0 -4
  14. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/admin.py +3 -7
  15. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/hello_world.py +1 -1
  16. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/client/hello_world.py +1 -1
  17. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/about.py +1 -1
  18. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/author.py +1 -1
  19. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/error_handler.py +1 -1
  20. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/healthcheck.py +1 -1
  21. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/hello_world.py +1 -1
  22. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/raw_callback_query.py +1 -1
  23. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/raw_message.py +1 -1
  24. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/start.py +1 -1
  25. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/support.py +1 -1
  26. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/set_tg_bot_commands.py +1 -1
  27. arpakitlib/ar_sqlalchemy_util.py +31 -80
  28. {arpakitlib-1.8.65.dist-info → arpakitlib-1.8.66.dist-info}/METADATA +1 -1
  29. {arpakitlib-1.8.65.dist-info → arpakitlib-1.8.66.dist-info}/RECORD +33 -33
  30. /arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/{general.py → client.py} +0 -0
  31. {arpakitlib-1.8.65.dist-info → arpakitlib-1.8.66.dist-info}/LICENSE +0 -0
  32. {arpakitlib-1.8.65.dist-info → arpakitlib-1.8.66.dist-info}/WHEEL +0 -0
  33. {arpakitlib-1.8.65.dist-info → arpakitlib-1.8.66.dist-info}/entry_points.txt +0 -0
@@ -6,12 +6,24 @@ from project.api.authorize import APIAuthorizeData, api_authorize, require_user_
6
6
  from project.api.schema.out.client.user import User1ClientSO
7
7
  from project.api.schema.out.client.user_token import UserToken1ClientSO
8
8
  from project.api.schema.out.common.error import ErrorCommonSO
9
- from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
9
+ from project.sqlalchemy_db_.sqlalchemy_model import UserDBM, UserTokenDBM
10
10
 
11
11
 
12
12
  class _UserToken1ClientSO(UserToken1ClientSO):
13
13
  user: User1ClientSO
14
14
 
15
+ @classmethod
16
+ def from_dbm(cls, *, simple_dbm: UserTokenDBM) -> UserToken1ClientSO:
17
+ simple_dict = simple_dbm.simple_dict(
18
+ include_columns_and_sd_properties=cls.model_fields.keys(),
19
+ kwargs={
20
+ "user": simple_dbm.user.simple_dict(
21
+ include_columns_and_sd_properties=User1ClientSO.model_fields.keys()
22
+ )
23
+ }
24
+ )
25
+ return cls.model_validate(simple_dict)
26
+
15
27
 
16
28
  api_router = APIRouter()
17
29
 
@@ -18,6 +18,6 @@ class SimpleDBMAdminSO(BaseSO):
18
18
 
19
19
  @classmethod
20
20
  def from_dbm(cls, *, simple_dbm: SimpleDBM) -> SimpleDBMAdminSO:
21
- return cls.model_validate(simple_dbm.simple_dict_with_sd_properties(
22
- only_columns_and_sd_properties=cls.model_fields.keys()
21
+ return cls.model_validate(simple_dbm.simple_dict(
22
+ include_columns_and_sd_properties=cls.model_fields.keys()
23
23
  ))
@@ -23,6 +23,6 @@ class Operation1AdminSO(SimpleDBMAdminSO):
23
23
 
24
24
  @classmethod
25
25
  def from_dbm(cls, *, simple_dbm: OperationDBM) -> Operation1AdminSO:
26
- return cls.model_validate(simple_dbm.simple_dict_with_sd_properties(
27
- only_columns_and_sd_properties=cls.model_fields.keys()
26
+ return cls.model_validate(simple_dbm.simple_dict(
27
+ include_columns_and_sd_properties=cls.model_fields.keys()
28
28
  ))
@@ -14,6 +14,6 @@ class StoryLog1AdminSO(SimpleDBMAdminSO):
14
14
 
15
15
  @classmethod
16
16
  def from_dbm(cls, *, simple_dbm: StoryLogDBM) -> StoryLog1AdminSO:
17
- return cls.model_validate(simple_dbm.simple_dict_with_sd_properties(
18
- only_columns_and_sd_properties=cls.model_fields.keys()
17
+ return cls.model_validate(simple_dbm.simple_dict(
18
+ include_columns_and_sd_properties=cls.model_fields.keys()
19
19
  ))
@@ -30,6 +30,6 @@ class User1AdminSO(SimpleDBMAdminSO):
30
30
 
31
31
  @classmethod
32
32
  def from_dbm(cls, *, simple_dbm: UserDBM) -> User1AdminSO:
33
- return cls.model_validate(simple_dbm.simple_dict_with_sd_properties(
34
- only_columns_and_sd_properties=cls.model_fields.keys()
33
+ return cls.model_validate(simple_dbm.simple_dict(
34
+ include_columns_and_sd_properties=cls.model_fields.keys()
35
35
  ))
@@ -16,6 +16,6 @@ class SimpleDBMClientSO(BaseSO):
16
16
 
17
17
  @classmethod
18
18
  def from_dbm(cls, *, simple_dbm: SimpleDBM) -> SimpleDBMClientSO:
19
- return cls.model_validate(simple_dbm.simple_dict_with_sd_properties(
20
- only_columns_and_sd_properties=cls.model_fields.keys()
19
+ return cls.model_validate(simple_dbm.simple_dict(
20
+ include_columns_and_sd_properties=cls.model_fields.keys()
21
21
  ))
@@ -29,6 +29,6 @@ class User1ClientSO(SimpleDBMClientSO):
29
29
 
30
30
  @classmethod
31
31
  def from_dbm(cls, *, simple_dbm: UserDBM) -> User1ClientSO:
32
- return cls.model_validate(simple_dbm.simple_dict_with_sd_properties(
33
- only_columns_and_sd_properties=cls.model_fields.keys()
32
+ return cls.model_validate(simple_dbm.simple_dict(
33
+ include_columns_and_sd_properties=cls.model_fields.keys()
34
34
  ))
@@ -11,6 +11,6 @@ class UserToken1ClientSO(SimpleDBMClientSO):
11
11
 
12
12
  @classmethod
13
13
  def from_dbm(cls, *, simple_dbm: UserTokenDBM) -> UserToken1ClientSO:
14
- return cls.model_validate(simple_dbm.simple_dict_with_sd_properties(
15
- only_columns_and_sd_properties=cls.model_fields.keys()
14
+ return cls.model_validate(simple_dbm.simple_dict(
15
+ include_columns_and_sd_properties=cls.model_fields.keys()
16
16
  ))
@@ -1,16 +1,16 @@
1
1
  from __future__ import annotations
2
2
 
3
- from project.api.schema.out.client.common import SimpleDBMClientSO
3
+ from project.api.schema.out.general.common import SimpleDBMGeneralSO
4
4
  from project.sqlalchemy_db_.sqlalchemy_model import ApiKeyDBM
5
5
 
6
6
 
7
- class ApiKey1GeneralSO(SimpleDBMClientSO):
7
+ class ApiKey1GeneralSO(SimpleDBMGeneralSO):
8
8
  title: str | None
9
9
  value: str
10
10
  is_active: bool
11
11
 
12
12
  @classmethod
13
13
  def from_dbm(cls, *, simple_dbm: ApiKeyDBM) -> ApiKey1GeneralSO:
14
- return cls.model_validate(simple_dbm.simple_dict_with_sd_properties(
15
- only_columns_and_sd_properties=cls.model_fields.keys()
14
+ return cls.model_validate(simple_dbm.simple_dict(
15
+ include_columns_and_sd_properties=cls.model_fields.keys()
16
16
  ))
@@ -16,6 +16,6 @@ class SimpleDBMGeneralSO(BaseSO):
16
16
 
17
17
  @classmethod
18
18
  def from_dbm(cls, *, simple_dbm: SimpleDBM) -> SimpleDBMGeneralSO:
19
- return cls.model_validate(simple_dbm.simple_dict_with_sd_properties(
20
- only_columns_and_sd_properties=cls.model_fields.keys()
19
+ return cls.model_validate(simple_dbm.simple_dict(
20
+ include_columns_and_sd_properties=cls.model_fields.keys()
21
21
  ))
@@ -3,11 +3,11 @@ from __future__ import annotations
3
3
  import datetime as dt
4
4
  from typing import Any
5
5
 
6
- from project.api.schema.out.client.common import SimpleDBMClientSO
6
+ from project.api.schema.out.general.common import SimpleDBMGeneralSO
7
7
  from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
8
8
 
9
9
 
10
- class User1GeneralSO(SimpleDBMClientSO):
10
+ class User1GeneralSO(SimpleDBMGeneralSO):
11
11
  email: str | None
12
12
  username: str | None
13
13
  roles: list[str]
@@ -29,6 +29,6 @@ class User1GeneralSO(SimpleDBMClientSO):
29
29
 
30
30
  @classmethod
31
31
  def from_dbm(cls, *, simple_dbm: UserDBM) -> User1GeneralSO:
32
- return cls.model_validate(simple_dbm.simple_dict_with_sd_properties(
33
- only_columns_and_sd_properties=cls.model_fields.keys()
32
+ return cls.model_validate(simple_dbm.simple_dict(
33
+ include_columns_and_sd_properties=cls.model_fields.keys()
34
34
  ))
@@ -1,16 +1,16 @@
1
1
  from __future__ import annotations
2
2
 
3
- from project.api.schema.out.client.common import SimpleDBMClientSO
3
+ from project.api.schema.out.general.common import SimpleDBMGeneralSO
4
4
  from project.sqlalchemy_db_.sqlalchemy_model import UserTokenDBM
5
5
 
6
6
 
7
- class UserToken1GeneralSO(SimpleDBMClientSO):
7
+ class UserToken1GeneralSO(SimpleDBMGeneralSO):
8
8
  value: str
9
9
  user_id: int
10
10
  is_active: bool
11
11
 
12
12
  @classmethod
13
13
  def from_dbm(cls, *, simple_dbm: UserTokenDBM) -> UserToken1GeneralSO:
14
- return cls.model_validate(simple_dbm.simple_dict_with_sd_properties(
15
- only_columns_and_sd_properties=cls.model_fields.keys()
14
+ return cls.model_validate(simple_dbm.simple_dict(
15
+ include_columns_and_sd_properties=cls.model_fields.keys()
16
16
  ))
@@ -68,7 +68,3 @@ class UserTokenDBM(SimpleDBM):
68
68
  if not value:
69
69
  raise ValueError(f"{key=}, {value=}, value is empty")
70
70
  return value
71
-
72
- @property
73
- def sdp_user(self) -> UserDBM:
74
- return self.user
@@ -2,9 +2,9 @@ from functools import lru_cache
2
2
 
3
3
  from emoji import emojize
4
4
 
5
+ from arpakitlib.ar_json_util import transfer_data_to_json_str
5
6
  from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
6
7
  from project.tg_bot.blank.common import SimpleBlankTgBot
7
- from project.util.arpakitlib_project_template import get_arpakitlib_project_template_info
8
8
 
9
9
 
10
10
  class AdminTgBotBlank(SimpleBlankTgBot):
@@ -15,7 +15,7 @@ class AdminTgBotBlank(SimpleBlankTgBot):
15
15
  def user_dbm(self, *, user_dbm: UserDBM | None) -> str:
16
16
  if user_dbm is None:
17
17
  return "None"
18
- return user_dbm.simple_dict_json(include_sd_properties=True)
18
+ return transfer_data_to_json_str(user_dbm.simple_dict(), beautify=True)
19
19
 
20
20
 
21
21
  def create_admin_tg_bot_blank() -> AdminTgBotBlank:
@@ -28,11 +28,7 @@ def get_cached_admin_tg_bot_blank() -> AdminTgBotBlank:
28
28
 
29
29
 
30
30
  def __example():
31
- print(
32
- get_cached_admin_tg_bot_blank().arpakit_project_template_info(
33
- arpakitlib_project_template_info=get_arpakitlib_project_template_info()
34
- )
35
- )
31
+ pass
36
32
 
37
33
 
38
34
  if __name__ == '__main__':
@@ -1,7 +1,7 @@
1
1
  from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
2
2
  from aiogram.utils.keyboard import InlineKeyboardBuilder
3
3
 
4
- from project.tg_bot.blank.general import get_cached_client_tg_bot_blank
4
+ from project.tg_bot.blank.client import get_cached_client_tg_bot_blank
5
5
  from project.tg_bot.callback.client import HelloWorldClientCD
6
6
 
7
7
 
@@ -1,7 +1,7 @@
1
1
  from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
2
2
  from aiogram.utils.keyboard import ReplyKeyboardBuilder
3
3
 
4
- from project.tg_bot.blank.general import get_cached_client_tg_bot_blank
4
+ from project.tg_bot.blank.client import get_cached_client_tg_bot_blank
5
5
 
6
6
 
7
7
  def hello_world_client_static_kb_tg_bot() -> ReplyKeyboardMarkup:
@@ -4,7 +4,7 @@ import aiogram
4
4
  from aiogram import Router
5
5
  from aiogram.filters import Command, or_f
6
6
 
7
- from project.tg_bot.blank.general import get_cached_client_tg_bot_blank
7
+ from project.tg_bot.blank.client import get_cached_client_tg_bot_blank
8
8
  from project.tg_bot.const import GeneralTgBotCommands
9
9
  from project.tg_bot.filter_.message_text import MessageTextTgBotFilter
10
10
  from project.tg_bot.middleware.common import MiddlewareDataTgBot
@@ -4,7 +4,7 @@ import aiogram
4
4
  from aiogram import Router
5
5
  from aiogram.filters import Command, or_f
6
6
 
7
- from project.tg_bot.blank.general import get_cached_client_tg_bot_blank
7
+ from project.tg_bot.blank.client import get_cached_client_tg_bot_blank
8
8
  from project.tg_bot.const import GeneralTgBotCommands
9
9
  from project.tg_bot.filter_.message_text import MessageTextTgBotFilter
10
10
  from project.tg_bot.middleware.common import MiddlewareDataTgBot
@@ -7,7 +7,7 @@ from aiogram.exceptions import TelegramBadRequest
7
7
  from arpakitlib.ar_exception_util import exception_to_traceback_str
8
8
  from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
9
9
  from project.sqlalchemy_db_.sqlalchemy_model import StoryLogDBM
10
- from project.tg_bot.blank.general import get_cached_client_tg_bot_blank
10
+ from project.tg_bot.blank.client import get_cached_client_tg_bot_blank
11
11
  from project.tg_bot.middleware.common import MiddlewareDataTgBot
12
12
 
13
13
  _logger = logging.getLogger(__name__)
@@ -1,6 +1,6 @@
1
1
  import aiogram.filters
2
2
 
3
- from project.tg_bot.blank.general import get_cached_client_tg_bot_blank
3
+ from project.tg_bot.blank.client import get_cached_client_tg_bot_blank
4
4
  from project.tg_bot.const import GeneralTgBotCommands
5
5
  from project.tg_bot.middleware.common import MiddlewareDataTgBot
6
6
 
@@ -2,7 +2,7 @@ import aiogram.filters
2
2
  from aiogram.filters import or_f
3
3
 
4
4
  from arpakitlib.ar_str_util import remove_html
5
- from project.tg_bot.blank.general import get_cached_client_tg_bot_blank
5
+ from project.tg_bot.blank.client import get_cached_client_tg_bot_blank
6
6
  from project.tg_bot.callback.client import HelloWorldClientCD
7
7
  from project.tg_bot.const import GeneralTgBotCommands
8
8
  from project.tg_bot.filter_.message_text import MessageTextTgBotFilter
@@ -3,7 +3,7 @@ import logging
3
3
  import aiogram.filters
4
4
  from aiogram.exceptions import AiogramError
5
5
 
6
- from project.tg_bot.blank.general import get_cached_client_tg_bot_blank
6
+ from project.tg_bot.blank.client import get_cached_client_tg_bot_blank
7
7
  from project.tg_bot.middleware.common import MiddlewareDataTgBot
8
8
 
9
9
  _logger = logging.getLogger(__name__)
@@ -1,6 +1,6 @@
1
1
  import aiogram.filters
2
2
 
3
- from project.tg_bot.blank.general import get_cached_client_tg_bot_blank
3
+ from project.tg_bot.blank.client import get_cached_client_tg_bot_blank
4
4
  from project.tg_bot.middleware.common import MiddlewareDataTgBot
5
5
 
6
6
  tg_bot_router = aiogram.Router()
@@ -4,7 +4,7 @@ import aiogram
4
4
  from aiogram import Router
5
5
  from aiogram.filters import Command, or_f
6
6
 
7
- from project.tg_bot.blank.general import get_cached_client_tg_bot_blank
7
+ from project.tg_bot.blank.client import get_cached_client_tg_bot_blank
8
8
  from project.tg_bot.const import GeneralTgBotCommands
9
9
  from project.tg_bot.filter_.message_text import MessageTextTgBotFilter
10
10
  from project.tg_bot.middleware.common import MiddlewareDataTgBot
@@ -4,7 +4,7 @@ import aiogram
4
4
  from aiogram import Router
5
5
  from aiogram.filters import Command, or_f
6
6
 
7
- from project.tg_bot.blank.general import get_cached_client_tg_bot_blank
7
+ from project.tg_bot.blank.client import get_cached_client_tg_bot_blank
8
8
  from project.tg_bot.const import GeneralTgBotCommands
9
9
  from project.tg_bot.filter_.message_text import MessageTextTgBotFilter
10
10
  from project.tg_bot.middleware.common import MiddlewareDataTgBot
@@ -8,7 +8,7 @@ from project.core.settings import get_cached_settings
8
8
  from project.core.util import setup_logging
9
9
  from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
10
10
  from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
11
- from project.tg_bot.blank.general import get_cached_client_tg_bot_blank
11
+ from project.tg_bot.blank.client import get_cached_client_tg_bot_blank
12
12
  from project.tg_bot.const import GeneralTgBotCommands, AdminTgBotCommands
13
13
  from project.tg_bot.tg_bot import get_cached_tg_bot
14
14
 
@@ -2,7 +2,7 @@
2
2
  import asyncio
3
3
  import logging
4
4
  from datetime import timedelta, datetime
5
- from typing import Any
5
+ from typing import Any, Collection
6
6
  from urllib.parse import quote_plus
7
7
  from uuid import uuid4
8
8
 
@@ -13,7 +13,6 @@ from sqlalchemy.orm import sessionmaker, DeclarativeBase
13
13
  from sqlalchemy.orm.session import Session
14
14
 
15
15
  from arpakitlib.ar_datetime_util import now_utc_dt
16
- from arpakitlib.ar_json_util import transfer_data_to_json_str
17
16
 
18
17
  _ARPAKIT_LIB_MODULE_VERSION = "3.0"
19
18
 
@@ -71,12 +70,14 @@ class BaseDBM(DeclarativeBase):
71
70
  def simple_dict(
72
71
  self,
73
72
  *,
74
- include_sd_properties: bool = True,
75
- exclude_columns: set[str] | None = None,
76
- only_columns: list[str] | None = None,
77
- exclude_sd_properties: set[str] | None = None,
78
- only_sd_properties: list[str] | None = None,
79
- only_columns_and_sd_properties: list[str] | None = None
73
+ need_include_columns: bool = True,
74
+ need_include_sd_properties: bool = True,
75
+ include_columns: Collection[str] | None = None,
76
+ exclude_columns: Collection[str] | None = None,
77
+ include_sd_properties: Collection[str] | None = None,
78
+ exclude_sd_properties: Collection[str] | None = None,
79
+ include_columns_and_sd_properties: Collection[str] | None = None,
80
+ kwargs: dict[str, Any] | None = None
80
81
  ) -> dict[str, Any]:
81
82
  if exclude_columns is None:
82
83
  exclude_columns = set()
@@ -85,20 +86,18 @@ class BaseDBM(DeclarativeBase):
85
86
 
86
87
  res = {}
87
88
 
88
- # Обрабатываем только колонки текущей модели
89
- for c in inspect(self).mapper.column_attrs:
90
- if only_columns_and_sd_properties is not None and c.key not in only_columns_and_sd_properties:
91
- continue # Пропускаем колонку, если она не в only_columns_and_sd_properties
92
- if only_columns is not None and c.key not in only_columns:
93
- continue # Пропускаем колонку, если она не в only_columns
94
- if c.key in exclude_columns:
95
- continue # Пропускаем колонку, если она в exclude_columns
96
-
97
- value = getattr(self, c.key)
98
- res[c.key] = value # Просто сохраняем значение
89
+ if need_include_columns:
90
+ for c in inspect(self).mapper.column_attrs:
91
+ if include_columns_and_sd_properties is not None and c.key not in include_columns_and_sd_properties:
92
+ continue
93
+ if include_columns is not None and c.key not in include_columns:
94
+ continue
95
+ if c.key in exclude_columns:
96
+ continue
97
+ value = getattr(self, c.key)
98
+ res[c.key] = value
99
99
 
100
- # Обработка свойств с префиксом "sdp_"
101
- if include_sd_properties:
100
+ if need_include_sd_properties:
102
101
  for attr_name in dir(self):
103
102
  if not attr_name.startswith("sdp_") or not isinstance(getattr(type(self), attr_name, None), property):
104
103
  continue
@@ -106,69 +105,21 @@ class BaseDBM(DeclarativeBase):
106
105
  sd_property_name = attr_name.removeprefix("sdp_")
107
106
 
108
107
  if (
109
- only_columns_and_sd_properties is not None
110
- and sd_property_name not in only_columns_and_sd_properties
108
+ include_columns_and_sd_properties is not None
109
+ and sd_property_name not in include_columns_and_sd_properties
111
110
  ):
112
- continue # Пропускаем свойство, если оно не в only_columns_and_sd_properties
113
- if only_sd_properties is not None and sd_property_name not in only_sd_properties:
114
- continue # Пропускаем свойство, если оно не в only_sd_properties
111
+ continue
112
+ if include_sd_properties is not None and sd_property_name not in include_sd_properties:
113
+ continue
115
114
  if sd_property_name in exclude_sd_properties:
116
- continue # Пропускаем свойство, если оно в exclude_sd_properties
117
-
118
- value = getattr(self, attr_name)
119
- if isinstance(value, BaseDBM):
120
- res[sd_property_name] = value.simple_dict(include_sd_properties=include_sd_properties)
121
- elif isinstance(value, list):
122
- res[sd_property_name] = [
123
- item.simple_dict(include_sd_properties=include_sd_properties)
124
- if isinstance(item, BaseDBM) else item
125
- for item in value
126
- ]
127
- else:
128
- res[sd_property_name] = value
115
+ continue
129
116
 
130
- return res
117
+ res[sd_property_name] = getattr(self, attr_name)
131
118
 
132
- def simple_dict_with_sd_properties(
133
- self,
134
- *,
135
- exclude_columns: set[str] | None = None,
136
- only_columns: list[str] | None = None,
137
- exclude_sdp_properties: set[str] | None = None,
138
- only_sd_properties: list[str] | None = None,
139
- only_columns_and_sd_properties: list[str] | None = None # Новый параметр
140
- ) -> dict[str, Any]:
141
- return self.simple_dict(
142
- include_sd_properties=True,
143
- exclude_columns=exclude_columns,
144
- only_columns=only_columns,
145
- exclude_sd_properties=exclude_sdp_properties,
146
- only_sd_properties=only_sd_properties,
147
- only_columns_and_sd_properties=only_columns_and_sd_properties # Новый параметр
148
- )
149
-
150
- def simple_dict_json(
151
- self,
152
- *,
153
- include_sd_properties: bool = True,
154
- exclude_columns: set[str] | None = None,
155
- only_columns: list[str] | None = None,
156
- exclude_sd_properties: set[str] | None = None,
157
- only_sd_properties: list[str] | None = None,
158
- only_columns_and_sd_properties: list[str] | None = None,
159
- **transfer_data_to_json_str_kwargs
160
- ) -> str:
161
- return transfer_data_to_json_str(
162
- data=self.simple_dict(
163
- include_sd_properties=include_sd_properties,
164
- exclude_columns=exclude_columns,
165
- only_columns=only_columns,
166
- exclude_sd_properties=exclude_sd_properties,
167
- only_sd_properties=only_sd_properties,
168
- only_columns_and_sd_properties=only_columns_and_sd_properties
169
- ),
170
- **transfer_data_to_json_str_kwargs
171
- )
119
+ if kwargs is not None:
120
+ res.update(kwargs)
121
+
122
+ return res
172
123
 
173
124
 
174
125
  class SQLAlchemyDb:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: arpakitlib
3
- Version: 1.8.65
3
+ Version: 1.8.66
4
4
  Summary: arpakitlib
5
5
  License: Apache-2.0
6
6
  Keywords: arpakitlib,arpakit,arpakit-company,arpakitcompany,arpakit_company
@@ -114,7 +114,7 @@ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/raise_fake_err
114
114
  arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/reinit_sqlalchemy_db.py,sha256=CdTXbkkl0IWa-tAFSwc5dq-rx0u1EBhOAlwbat5mPOU,1325
115
115
  arpakitlib/_arpakit_project_template_v_5/project/api/router/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
116
116
  arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user.py,sha256=5cT2Z2tK0Hld6a9Aev2vxe-LpVS3sc_Zq0CZduJ-3qE,1217
117
- arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user_token.py,sha256=12I4MlyofibN9CXrntYjo74atdShgZmC0CojAyue_uE,1340
117
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user_token.py,sha256=fJbdpezvsmWb44-4iDMDIFQpz44EAWW2wRZ1w78fO1Y,1814
118
118
  arpakitlib/_arpakit_project_template_v_5/project/api/router/client/main_router.py,sha256=IIy6VxG5xPR4ZjGaMwDM59izMIMoFxjqVmAvh-Fq330,386
119
119
  arpakitlib/_arpakit_project_template_v_5/project/api/router/general/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
120
120
  arpakitlib/_arpakit_project_template_v_5/project/api/router/general/check_authorization.py,sha256=NUQK4KI0XpwzPEGjgQMxU43ZaTm-dEXrmU1BMIFcA3k,1853
@@ -136,24 +136,24 @@ arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/general/__init__
136
136
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/general/common.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
137
137
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
138
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/common.py,sha256=7c9e45xW9TmBMedEdAgVGy5vSJ4m_oEUTxteMsldLLA,597
140
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/operation.py,sha256=id2w_72qD8jsdeWFowx2wOEkvuOmq-_6uLHGrSR6qXY,839
141
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/story_log.py,sha256=XgywJ6vQFUgK1fLJWIZN-UD4VP1iRNgzfskZY2G-ujo,571
142
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/user.py,sha256=4MAwY6C0B-QBU8xW1kIDTtK6beHxeUIK0maQbSCk4-I,1025
139
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/common.py,sha256=aKLBVc3H7PKoCtataAwTZTiJIJcG_vjBg9m-FvJf6nM,581
140
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/operation.py,sha256=2tpHb6DawxHa7i__8jqHj4EF4c6BdtprrK5FIKEIJX4,823
141
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/story_log.py,sha256=kGy5X3MJDhCQyXt7cKGuLjqF19TyQuX6XJBWsjLPgzY,555
142
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/user.py,sha256=7gwB00A0QlKOSvlvaTLs0WdKk_yHcxhErLgXPrj1O8Q,1009
143
143
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/common.py,sha256=yCDLd4q5X9QoRdJ2FzLKa__2yuoivPuhoHpnnhuNNw0,545
145
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user.py,sha256=WujO2tMqxht18q90QFwmudCgagucmmHlsRS69w9jQzI,1005
146
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user_token.py,sha256=P1tHrp4GPyudelvhSYJ42vsh6QtEaiekdkwMMEvgOBY,514
144
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/common.py,sha256=t5jDaS7As_1zmiTNl2b0p3gZs_2AAdhKvnbTLeCQdRY,529
145
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user.py,sha256=hj7fngi0lfvQjrM73r4gxIjgqbVVU0FJr3SsUP4NmyQ,989
146
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user_token.py,sha256=zHcKGhqZDDDnzoI0W1cQojMDcNx2Gk1D91hsqi76pDA,498
147
147
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
148
148
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/datetime_.py,sha256=YFo29Qc7JMVq-OR398kPy4ypjh9kYAxPuZZUsobhDdc,942
149
149
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/error.py,sha256=C8oaHotxmxBnN7Lr1qT7T5Mk0SIU2Ha7_tPDpgiR6M8,286
150
150
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/ok.py,sha256=6FINL5kdA60W0Keo8kykR_bgHYhYx_xzfWF3d_Fv7_0,90
151
151
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/raw_data.py,sha256=T7DWPHlno37-2qfQLLGXY2_4Ajs_l9_UxDDF1VGdpqk,136
152
152
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
153
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/api_key.py,sha256=yUVnA8nebOI0F76BmPPbffC3PSkMVqmGlmI4_Xuh_sI,509
154
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/common.py,sha256=4j2yZm8B1UfRx5-i-cSfN7sVUvNRwknD6GDTsUVIqpk,547
155
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user.py,sha256=MZMvPBpTZJmkPElzbU52SN285QGRqYe_Tqp_6ioEnsQ,1007
156
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user_token.py,sha256=JgMnj4eyxE_I-quOq32BYZWoGGB2w2HuwlCqC6_Uhtk,516
153
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/api_key.py,sha256=45d1aTCowI5kdRbdcVeMTHd--F3YlI4xL8PtcavBjVc,496
154
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/common.py,sha256=T-PebdGZaPHgyCeGP4pNp2zwtYOQlyKPUcsBSHF3Pak,531
155
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user.py,sha256=5offs2Q3662ZCY8ijHUM5InZWdE6-1_ojvQaPZ872mY,994
156
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user_token.py,sha256=QBdIDUlGm3MImTYvGYKG5sms28aTAJIDSI_nldzgWLw,503
157
157
  arpakitlib/_arpakit_project_template_v_5/project/api/util.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
158
  arpakitlib/_arpakit_project_template_v_5/project/business_service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
159
159
  arpakitlib/_arpakit_project_template_v_5/project/business_service/hello_world.py,sha256=lvWlVF6SlnC33swSCd-_QK6guxBg50myOd8cPS7hZrA,251
@@ -241,7 +241,7 @@ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model
241
241
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py,sha256=op5cSkTlHJyGjULgcSWE9-_PNinKSneHLxhG5DUkd9M,5913
242
242
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/story_log.py,sha256=wig_D6OZyYYGsqZEbmSK56qoAIOnOVnOEB_sRSZLSIU,2396
243
243
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user.py,sha256=LXJdVUpY58nCGmG6Q8qYM7SAZrPtUbDgwLsWVpeM5-o,6690
244
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py,sha256=mRxAbPQj2Re99rJ9VZSkXKqvtXGwirp4pfTPObskKWc,2019
244
+ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py,sha256=UtSbQRlNJOnD7q-d_aZfMjQnPFnchGPf1fWGwsgCm5k,1944
245
245
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/util.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
246
246
  arpakitlib/_arpakit_project_template_v_5/project/test_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
247
247
  arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_api_keys.py,sha256=9F2bMfymaqx_Czh_tF945BKpKqNrVNjSIfCQl13Dkxw,911
@@ -252,9 +252,9 @@ arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_4.py,s
252
252
  arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_5.py,sha256=cew0ndlJspNkeQVOS0UPoceg1ARIm5ZFCzytiDIyvbg,416
253
253
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
254
254
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
255
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/admin.py,sha256=RG9YRcOJAkS3Z4VNEnwyTnKj8Xb65gCZWta7NdGdxvU,1008
255
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/admin.py,sha256=GsXv4fqdkj0C38s7BoFjN7IuR3y6OWTz9kJGHqnJ4j0,818
256
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/client.py,sha256=BGOS9_3wimjl5SHrOW7hqmRRF8FvPlYr8CG8Haio7nw,2579
256
257
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/common.py,sha256=HjJnKLQAdHtLLM73wURiFR2zzJEvkypVg0pMsKu5mKs,93
257
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/general.py,sha256=BGOS9_3wimjl5SHrOW7hqmRRF8FvPlYr8CG8Haio7nw,2579
258
258
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
259
259
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/admin.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
260
260
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/client.py,sha256=8eJAc0mq8bX6BbP0eWY4NYToFOFSUXB-nujBmTlQF-k,157
@@ -274,14 +274,14 @@ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin/__init_
274
274
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin/common.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
275
275
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
276
276
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/common.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
277
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/hello_world.py,sha256=TikXrordHSAuROALekVyzzNt9Kwg8hB1MBMwC7_0Dro,586
277
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/hello_world.py,sha256=8ifsC8J_xQfEa6q7XeqI1bEt2C2i6K3TBDlM__NU6jQ,585
278
278
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/common.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
279
279
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
280
280
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
281
281
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/admin/common.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
282
282
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
283
283
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/client/common.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
284
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/client/hello_world.py,sha256=NIoA-uVensaxZ7dcIPVtfxeSGSkss9YnpYSKNRkBuV8,486
284
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/client/hello_world.py,sha256=FibmClY_AbnJL8dqjWSerybI9sh8Y7m5ggHcPW3UAVI,485
285
285
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/common.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
286
286
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
287
287
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/common.py,sha256=DbUyWtk3zmWJx28QmJLX9keTNBUhI9ZJJjEnjrgxhgs,390
@@ -303,17 +303,17 @@ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/raise_fake_
303
303
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/reinit_sqlalchemy_db.py,sha256=x2Er6OZd0ymLvyMxqMfPVoSf62QpNh0mPcrYxB2wyGE,1193
304
304
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/set_tg_bot_commands.py,sha256=Agdjw1qjcT6l0K-k_AVrgGvLGEY5Jh9fQX66wLwJRVM,981
305
305
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
306
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/about.py,sha256=imLQJrCd1whyySk_D_ZkprqRRzxnBuI3TFbM39SpXE0,837
307
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/author.py,sha256=C2R3svqRlpx42Gv-UTJsabwIjgk7N4ZWPDfoPJlDv5E,859
308
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/error_handler.py,sha256=_o_dxaZ5zJ43awBh3YihRbsP-jmNAVv_sw-GVHrM78Q,3228
309
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/healthcheck.py,sha256=qMlmB-fdFah960POG0RBTrS0gUIGkkCwd5NXn5ifJJc,532
310
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/hello_world.py,sha256=Jq___RNDE6POa4-27xIeF-i4nlYgrexK8n1rzLjk7Ek,1587
311
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/raw_callback_query.py,sha256=MIs1U46Rzt46UjX142OPonIeJu126-FHwtiDuG97N0c,793
306
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/about.py,sha256=kB2yw0iajZUArlToBBnD-APZSO9LPaZVpN6MrTHZ0KI,836
307
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/author.py,sha256=1XzEQbhXwJJL45Cx3HDIBUgOI9DKm1QnzEgIZz99ql8,858
308
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/error_handler.py,sha256=sksBnf-DkxR4ti1rFzfrI1e5O8Be6Qm_dhe3UA9LKtg,3227
309
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/healthcheck.py,sha256=jU0WfD1z_GqQm5gI6rolCkTNHFtN4ovEa2yISbMGoF4,531
310
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/hello_world.py,sha256=X9clFZNymZbcaLpva-OStF5KPD_UtoNONr7pVBOW_iU,1586
311
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/raw_callback_query.py,sha256=s4jVTZ6k_syYbXdixKnwgj5wHeARP4QD96_sLmBy1vc,792
312
312
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/raw_inline_query.py,sha256=77LZnmvTtBgIqhJmLV1k_1IUKcm66uW_lLzFV8oi930,289
313
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/raw_message.py,sha256=w59V9MFQhSIA9LeXQEyOZxGus7-xQXtoFdOyP0JEXho,414
313
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/raw_message.py,sha256=rdLdF9ML7ezM9V6sy9j67JX-ffpny2nFViBB5thKTa8,413
314
314
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/remove_message.py,sha256=nYS-Q7ZqVCcHw4oClOzG9w86exbCWcInZc9vF_KfMcw,703
315
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/start.py,sha256=NNBNmc1FSq3wptcFDDlmTZsHshak89YRwgw6TzrSG3E,918
316
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/support.py,sha256=Z-lm6ePK8Q496UMSYzWLRzIn2Z8BIXOV58EG3Fm18Zs,843
315
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/start.py,sha256=RZkr-OXHIexeDAaIgtCModHqGyIzprvLYP1UXUMwf0Q,917
316
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/support.py,sha256=ztDDYea1EJwA2tTD-glD8HWt5DiEI7E29aH9QA4bZD8,842
317
317
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/main_router.py,sha256=nz94jcuZ0rmjGt6NuUXY7bD_cL2SMD0vdjuompd2KK4,2271
318
318
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/start_tg_bot.py,sha256=vHARWETCD4hlK624aFxnkjsytgEbZY20bt973Oc_Peo,1253
319
319
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/tg_bot.py,sha256=jMX_awQl3GvyKZ8pmR0dQOzg_2LyrYTmn31DAVmOxxs,849
@@ -321,7 +321,7 @@ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/tg_bot_dispatcher.py,sha
321
321
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
322
322
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/etc.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
323
323
  arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/notify_admins.py,sha256=Qoqa45bbTYCpBhhgSVzN8AH5WBXM0oFnahrCd3XGmTU,1835
324
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/set_tg_bot_commands.py,sha256=DFJrSR-t3kjq_jr9vc8YeD_I0wKBh-5SiUaran7aM7E,3484
324
+ arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/set_tg_bot_commands.py,sha256=3Vp29YG9DGMrQSB2WPYciI4pdBHyT1vOGDBKfZ8OLTE,3483
325
325
  arpakitlib/_arpakit_project_template_v_5/project/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
326
326
  arpakitlib/_arpakit_project_template_v_5/project/util/arpakitlib_project_template.py,sha256=syA_IuszHVub0zm0sVdB4_7rPJXwXRW4JmQ4qHbjXPk,396
327
327
  arpakitlib/ar_additional_model_util.py,sha256=GFg-glLCxH9X95R2bhTJsscVwv37FgE1qbaAAyXrnIE,917
@@ -367,14 +367,14 @@ arpakitlib/ar_schedule_uust_api_client_util.py,sha256=rXI2_3OTaIBgR-GixM1Ti-Ue1f
367
367
  arpakitlib/ar_settings_util.py,sha256=Y5wi_cmsjDjfJpM0VJHjbo0NoVPKfypKaD1USowwDtQ,1327
368
368
  arpakitlib/ar_sleep_util.py,sha256=OaLtRaJQWMkGjfj_mW1RB2P4RaSWsAIH8LUoXqsH0zM,1061
369
369
  arpakitlib/ar_sqladmin_util.py,sha256=Jd33EX_fAso4bvrcDhNEYOUlUHkudbadNGOJDg7rqhQ,301
370
- arpakitlib/ar_sqlalchemy_util.py,sha256=iuxEXxC4nOADTg62D3dwp-PmGaWK-RDiELCALX1MRqE,13303
370
+ arpakitlib/ar_sqlalchemy_util.py,sha256=Fo7xdHu1rjyHNj2XzN7r_yXbaajGK8dxBPsOL6-DzVU,10559
371
371
  arpakitlib/ar_ssh_runner_util.py,sha256=yvAwza480MkHKvLkDEsR7JNh2bYNs6P9rCVo4NA85NE,6865
372
372
  arpakitlib/ar_str_util.py,sha256=NisRtt4xwE7qthkkXzL49jvGKMGlvJ4KKcvpQfmRlIw,4415
373
373
  arpakitlib/ar_type_util.py,sha256=Cs_tef-Fc5xeyAF54KgISCsP11NHyzIsglm4S3Xx7iM,4049
374
374
  arpakitlib/ar_yookassa_api_client_util.py,sha256=VozuZeCJjmLd1zj2BdC9WfiAQ3XYOrIMsdpNK-AUlm0,5347
375
375
  arpakitlib/ar_zabbix_api_client_util.py,sha256=oHNS-2WckQxp7cVqsRne9JgkP9I7RQGBKVKZSMLN8zw,9427
376
- arpakitlib-1.8.65.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
377
- arpakitlib-1.8.65.dist-info/METADATA,sha256=w4CCYlWvpM9FXRceMp94AY76bbuk-kw1fKuXw0RZU2A,3475
378
- arpakitlib-1.8.65.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
379
- arpakitlib-1.8.65.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
380
- arpakitlib-1.8.65.dist-info/RECORD,,
376
+ arpakitlib-1.8.66.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
377
+ arpakitlib-1.8.66.dist-info/METADATA,sha256=pHoQDnMUGkjC-F1JPf_UsX9v3M3nMMiBAX7xRzg6CFs,3475
378
+ arpakitlib-1.8.66.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
379
+ arpakitlib-1.8.66.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
380
+ arpakitlib-1.8.66.dist-info/RECORD,,