arpakitlib 1.7.252__py3-none-any.whl → 1.7.253__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 (32) hide show
  1. arpakitlib/_arpakit_project_template/alembic/env.py +1 -1
  2. arpakitlib/_arpakit_project_template/manage/docker_rm_postgres.sh +3 -0
  3. arpakitlib/_arpakit_project_template/manage/docker_run_postgres.sh +3 -3
  4. arpakitlib/_arpakit_project_template/manage/docker_start_postgres.sh +1 -1
  5. arpakitlib/_arpakit_project_template/manage/docker_stop_postgres.sh +1 -1
  6. arpakitlib/_arpakit_project_template/manage/git_set_arpakit_company_origin.sh +2 -2
  7. arpakitlib/_arpakit_project_template/manage/git_set_arpakit_origin.sh +2 -2
  8. arpakitlib/_arpakit_project_template/src/api/create_api_app.py +1 -1
  9. arpakitlib/_arpakit_project_template/src/api/event.py +4 -4
  10. arpakitlib/_arpakit_project_template/src/operation_execution/_start_operation_executor_worker.py +1 -1
  11. arpakitlib/_arpakit_project_template/src/operation_execution/_start_scheduled_operation_creator_worker.py +1 -1
  12. arpakitlib/_arpakit_project_template/src/{db → sql_db}/_check_conn_sqlalchemy_db.py +1 -1
  13. arpakitlib/_arpakit_project_template/src/{db → sql_db}/_drop_sqlalchemy_db.py +1 -1
  14. arpakitlib/_arpakit_project_template/src/{db → sql_db}/_init_sqlalchemy_db.py +1 -1
  15. arpakitlib/_arpakit_project_template/src/{db → sql_db}/_reinit_sqlalchemy_db.py +1 -1
  16. arpakitlib/_arpakit_project_template/src/{operation_execution → sql_db}/_remove_operations.py +1 -1
  17. arpakitlib/_arpakit_project_template/src/sql_db/_remove_story_logs.py +16 -0
  18. arpakitlib/_arpakit_project_template/src/{db → sql_db}/util.py +6 -6
  19. arpakitlib/_arpakit_project_template/src/tg_bot/transmitted_tg_data.py +3 -14
  20. arpakitlib/ar_aiogram_util.py +27 -4
  21. arpakitlib/ar_fastapi_util.py +8 -6
  22. arpakitlib/ar_operation_execution_util.py +7 -7
  23. arpakitlib/ar_settings_util.py +1 -1
  24. arpakitlib/ar_sqlalchemy_util.py +4 -4
  25. {arpakitlib-1.7.252.dist-info → arpakitlib-1.7.253.dist-info}/METADATA +1 -1
  26. {arpakitlib-1.7.252.dist-info → arpakitlib-1.7.253.dist-info}/RECORD +32 -30
  27. /arpakitlib/_arpakit_project_template/src/{db → sql_db}/__init__.py +0 -0
  28. /arpakitlib/_arpakit_project_template/src/{db → sql_db}/const.py +0 -0
  29. /arpakitlib/_arpakit_project_template/src/{db → sql_db}/sqlalchemy_model.py +0 -0
  30. {arpakitlib-1.7.252.dist-info → arpakitlib-1.7.253.dist-info}/LICENSE +0 -0
  31. {arpakitlib-1.7.252.dist-info → arpakitlib-1.7.253.dist-info}/WHEEL +0 -0
  32. {arpakitlib-1.7.252.dist-info → arpakitlib-1.7.253.dist-info}/entry_points.txt +0 -0
@@ -5,7 +5,7 @@ from sqlalchemy import engine_from_config
5
5
  from sqlalchemy import pool
6
6
 
7
7
  from src.core.settings import get_cached_settings
8
- from src.db.util import get_base_dbm
8
+ from src.sql_db.util import get_base_dbm
9
9
 
10
10
  # this is the Alembic Config object, which provides
11
11
  # access to the values within the .ini file in use.
@@ -0,0 +1,3 @@
1
+ cd ..
2
+ source .env
3
+ docker rm -f ${project_name}_postgres
@@ -1,5 +1,5 @@
1
1
  cd ..
2
2
  source .env
3
- docker rm ${PROJECT_NAME}_postgres
4
- docker run --name ${PROJECT_NAME}_postgres -d -p ${SQL_DB_PORT}:5432 -e POSTGRES_USER=${SQL_DB_USER} -e POSTGRES_PASSWORD=${SQL_DB_PASSWORD} -e POSTGRES_DB=${SQL_DB_DATABASE} postgres:16 -c max_connections=100
5
- docker start ${PROJECT_NAME}_postgres
3
+ docker rm ${project_name}_postgres
4
+ docker run --name ${project_name}_postgres -d -p ${sql_db_port}:5432 -e POSTGRES_USER=${sql_db_user} -e POSTGRES_PASSWORD=${sql_db_password} -e POSTGRES_DB=${sql_db_database} postgres:16 -c max_connections=100
5
+ docker start ${project_name}_postgres
@@ -1,3 +1,3 @@
1
1
  cd ..
2
2
  source .env
3
- docker start ${PROJECT_NAME}_postgres
3
+ docker start ${project_name}_postgres
@@ -1,3 +1,3 @@
1
1
  cd ..
2
2
  source .env
3
- docker stop ${PROJECT_NAME}_postgres
3
+ docker stop ${project_name}_postgres
@@ -3,7 +3,7 @@ cd ..
3
3
  source .env
4
4
 
5
5
  git remote remove arpakit_company_github_1
6
- git remote add arpakit_company_github_1 git@github.com:ARPAKIT-Company/${PROJECT_NAME}.git
6
+ git remote add arpakit_company_github_1 git@github.com:ARPAKIT-Company/${project_name}.git
7
7
 
8
8
  git remote remove arpakit_company_gitlab_1
9
- git remote add arpakit_company_gitlab_1 git@gitlab.com:ARPAKIT-Company/${PROJECT_NAME}.git
9
+ git remote add arpakit_company_gitlab_1 git@gitlab.com:ARPAKIT-Company/${project_name}.git
@@ -3,7 +3,7 @@ cd ..
3
3
  source .env
4
4
 
5
5
  git remote remove arpakit_github_1
6
- git remote add arpakit_github_1 git@github.com:arpakit/${PROJECT_NAME}.git
6
+ git remote add arpakit_github_1 git@github.com:arpakit/${project_name}.git
7
7
 
8
8
  git remote remove arpakit_gitlab_1
9
- git remote add arpakit_gitlab_1 git@gitlab.com:arpakit/${PROJECT_NAME}.git
9
+ git remote add arpakit_gitlab_1 git@gitlab.com:arpakit/${project_name}.git
@@ -9,7 +9,7 @@ from src.core.const import ProjectPaths
9
9
  from src.core.settings import get_cached_settings
10
10
  from src.core.util import setup_logging, get_cached_media_file_storage_in_dir, get_cached_cache_file_storage_in_dir, \
11
11
  get_cached_dump_file_storage_in_dir
12
- from src.db.util import get_cached_sqlalchemy_db
12
+ from src.sql_db.util import get_cached_sqlalchemy_db
13
13
 
14
14
 
15
15
  def create_api_app() -> FastAPI:
@@ -1,7 +1,7 @@
1
1
  from arpakitlib.ar_base_worker_util import safe_run_worker_in_background, SafeRunInBackgroundModes
2
2
  from arpakitlib.ar_fastapi_util import BaseStartupAPIEvent, BaseShutdownAPIEvent
3
3
  from arpakitlib.ar_operation_execution_util import OperationExecutorWorker, ScheduledOperationCreatorWorker
4
- from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDB
4
+ from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDb
5
5
  from arpakitlib.ar_type_util import raise_for_type
6
6
  from src.api.transmitted_api_data import TransmittedAPIData
7
7
  from src.operation_execution.operation_executor import OperationExecutor
@@ -29,11 +29,11 @@ class StartupAPIEvent(BaseStartupAPIEvent):
29
29
  self.transmitted_api_data.dump_file_storage_in_dir.init()
30
30
 
31
31
  if self.transmitted_api_data.settings.api_init_sql_db_at_start:
32
- raise_for_type(self.transmitted_api_data.sqlalchemy_db, SQLAlchemyDB)
32
+ raise_for_type(self.transmitted_api_data.sqlalchemy_db, SQLAlchemyDb)
33
33
  self.transmitted_api_data.sqlalchemy_db.init()
34
34
 
35
35
  if self.transmitted_api_data.settings.api_start_operation_executor_worker: # TODO
36
- raise_for_type(self.transmitted_api_data.sqlalchemy_db, SQLAlchemyDB)
36
+ raise_for_type(self.transmitted_api_data.sqlalchemy_db, SQLAlchemyDb)
37
37
  _ = safe_run_worker_in_background(
38
38
  worker=OperationExecutorWorker(
39
39
  sqlalchemy_db=self.transmitted_api_data.sqlalchemy_db,
@@ -44,7 +44,7 @@ class StartupAPIEvent(BaseStartupAPIEvent):
44
44
  )
45
45
 
46
46
  if self.transmitted_api_data.settings.api_start_scheduled_operation_creator_worker: # TODO
47
- raise_for_type(self.transmitted_api_data.sqlalchemy_db, SQLAlchemyDB)
47
+ raise_for_type(self.transmitted_api_data.sqlalchemy_db, SQLAlchemyDb)
48
48
  _ = safe_run_worker_in_background(
49
49
  worker=ScheduledOperationCreatorWorker(
50
50
  sqlalchemy_db=self.transmitted_api_data.sqlalchemy_db,
@@ -1,7 +1,7 @@
1
1
  from arpakitlib.ar_operation_execution_util import OperationExecutorWorker
2
2
  from src.core.util import setup_logging
3
- from src.db.util import get_cached_sqlalchemy_db
4
3
  from src.operation_execution.operation_executor import OperationExecutor
4
+ from src.sql_db.util import get_cached_sqlalchemy_db
5
5
 
6
6
 
7
7
  def _start_operation_executor_worker():
@@ -1,7 +1,7 @@
1
1
  from arpakitlib.ar_operation_execution_util import ScheduledOperationCreatorWorker
2
2
  from src.core.util import setup_logging
3
- from src.db.util import get_cached_sqlalchemy_db
4
3
  from src.operation_execution.scheduled_operations import SCHEDULED_OPERATIONS
4
+ from src.sql_db.util import get_cached_sqlalchemy_db
5
5
 
6
6
 
7
7
  def _start_scheduled_operation_creator_worker():
@@ -1,5 +1,5 @@
1
1
  from src.core.util import setup_logging
2
- from src.db.util import get_cached_sqlalchemy_db
2
+ from src.sql_db.util import get_cached_sqlalchemy_db
3
3
 
4
4
 
5
5
  def _check_conn_sqlalchemy_db():
@@ -1,6 +1,6 @@
1
1
  from src.core.settings import get_cached_settings
2
2
  from src.core.util import setup_logging
3
- from src.db.util import get_cached_sqlalchemy_db
3
+ from src.sql_db.util import get_cached_sqlalchemy_db
4
4
 
5
5
 
6
6
  def _reinit_sqlalchemy_db():
@@ -1,5 +1,5 @@
1
1
  from src.core.util import setup_logging
2
- from src.db.util import get_cached_sqlalchemy_db
2
+ from src.sql_db.util import get_cached_sqlalchemy_db
3
3
 
4
4
 
5
5
  def _init_sqlalchemy_db():
@@ -1,6 +1,6 @@
1
1
  from src.core.settings import get_cached_settings
2
2
  from src.core.util import setup_logging
3
- from src.db.util import get_cached_sqlalchemy_db
3
+ from src.sql_db.util import get_cached_sqlalchemy_db
4
4
 
5
5
 
6
6
  def _reinit_sqlalchemy_db():
@@ -1,7 +1,7 @@
1
1
  from arpakitlib.ar_operation_execution_util import remove_operations
2
2
  from src.core.settings import get_cached_settings
3
3
  from src.core.util import setup_logging
4
- from src.db.util import get_cached_sqlalchemy_db
4
+ from src.sql_db.util import get_cached_sqlalchemy_db
5
5
 
6
6
 
7
7
  def _remove_operations():
@@ -0,0 +1,16 @@
1
+ from arpakitlib.ar_sqlalchemy_model_util import StoryLogDBM
2
+ from src.core.settings import get_cached_settings
3
+ from src.core.util import setup_logging
4
+ from src.sql_db.util import get_cached_sqlalchemy_db
5
+
6
+
7
+ def _remove_story_logs():
8
+ setup_logging()
9
+ get_cached_settings().raise_if_mode_type_prod()
10
+ with get_cached_sqlalchemy_db().new_session() as session:
11
+ session.query(StoryLogDBM).delete()
12
+ session.commit()
13
+
14
+
15
+ if __name__ == '__main__':
16
+ _remove_story_logs()
@@ -1,21 +1,21 @@
1
1
  from functools import lru_cache
2
2
 
3
3
  from arpakitlib.ar_sqlalchemy_model_util import BaseDBM
4
- from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDB
4
+ from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDb
5
5
  from src.core.settings import get_cached_settings
6
6
 
7
7
 
8
8
  def get_base_dbm() -> type[BaseDBM]:
9
9
  from arpakitlib.ar_sqlalchemy_model_util import import_ar_sqlalchemy_models
10
10
  import_ar_sqlalchemy_models()
11
- from src.db.sqlalchemy_model import import_project_sqlalchemy_models
11
+ from src.sql_db.sqlalchemy_model import import_project_sqlalchemy_models
12
12
  import_project_sqlalchemy_models()
13
13
  return BaseDBM
14
14
 
15
15
 
16
- def create_sqlalchemy_db() -> SQLAlchemyDB:
17
- return SQLAlchemyDB(
18
- db_url=get_cached_settings().sql_db_url,
16
+ def create_sqlalchemy_db() -> SQLAlchemyDb:
17
+ return SQLAlchemyDb(
18
+ sync_db_url=get_cached_settings().sync_sql_db_url,
19
19
  async_db_url=get_cached_settings().async_sql_db_url,
20
20
  db_echo=get_cached_settings().sql_db_echo,
21
21
  base_dbm=get_base_dbm()
@@ -23,5 +23,5 @@ def create_sqlalchemy_db() -> SQLAlchemyDB:
23
23
 
24
24
 
25
25
  @lru_cache()
26
- def get_cached_sqlalchemy_db() -> SQLAlchemyDB:
26
+ def get_cached_sqlalchemy_db() -> SQLAlchemyDb:
27
27
  return create_sqlalchemy_db()
@@ -1,17 +1,6 @@
1
- from aiogram import Bot
2
-
3
- from arpakitlib.ar_aiogram_util import BaseTransmittedTgBotData
4
- from arpakitlib.ar_file_storage_in_dir_util import FileStorageInDir
5
- from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDB
1
+ from arpakitlib.ar_aiogram_util import AdvancedTransmittedTgBotData
6
2
  from src.core.settings import Settings
7
3
 
8
4
 
9
- class TransmittedTgData(BaseTransmittedTgBotData):
10
- settings: Settings
11
- sqlalchemy_db: SQLAlchemyDB | None = None
12
- media_file_storage_in_dir: FileStorageInDir | None = None
13
- cache_file_storage_in_dir: FileStorageInDir | None = None
14
- dump_file_storage_in_dir: FileStorageInDir | None = None
15
- tg_bot: Bot
16
-
17
- # ...
5
+ class TransmittedTgData(AdvancedTransmittedTgBotData):
6
+ settings: Settings | None = None
@@ -4,7 +4,7 @@ import asyncio
4
4
  import logging
5
5
  from typing import Optional, Any, Union, Callable, Iterable
6
6
 
7
- from aiogram import types, Bot
7
+ from aiogram import types, Bot, Dispatcher
8
8
  from aiogram.client.default import DefaultBotProperties
9
9
  from aiogram.client.session.aiohttp import AiohttpSession
10
10
  from aiogram.enums import ChatType, ParseMode
@@ -13,8 +13,12 @@ from aiogram.filters import CommandObject, Filter
13
13
  from aiogram.filters.callback_data import CallbackData
14
14
  from pydantic import BaseModel, ConfigDict
15
15
 
16
+ from arpakitlib.ar_file_storage_in_dir_util import FileStorageInDir
17
+ from arpakitlib.ar_json_db_util import JSONDb
16
18
  from arpakitlib.ar_need_type_util import parse_need_type, NeedTypes
17
19
  from arpakitlib.ar_parse_command import BadCommandFormat, parse_command
20
+ from arpakitlib.ar_settings_util import SimpleSettings, BaseSettings2
21
+ from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDb
18
22
  from arpakitlib.ar_type_util import raise_for_types, raise_for_type
19
23
 
20
24
  _ARPAKIT_LIB_MODULE_VERSION = "3.0"
@@ -315,6 +319,18 @@ class BaseTransmittedTgBotData(BaseModel):
315
319
  model_config = ConfigDict(extra="ignore", arbitrary_types_allowed=True, from_attributes=True)
316
320
 
317
321
 
322
+ class SimpleTransmittedTgBotData(BaseTransmittedTgBotData):
323
+ settings: BaseSettings2 | None = None
324
+
325
+
326
+ class AdvancedTransmittedTgBotData(SimpleTransmittedTgBotData):
327
+ sqlalchemy_db: SQLAlchemyDb | None = None
328
+ json_db: JSONDb | None = None
329
+ media_file_storage_in_dir: FileStorageInDir | None = None
330
+ cache_file_storage_in_dir: FileStorageInDir | None = None
331
+ dump_file_storage_in_dir: FileStorageInDir | None = None
332
+
333
+
318
334
  def create_aiogram_tg_bot(*, token: str, proxy_url_: str | None = None, **kwargs) -> Bot:
319
335
  kwargs["token"] = token
320
336
 
@@ -333,9 +349,16 @@ def create_aiogram_tg_bot(*, token: str, proxy_url_: str | None = None, **kwargs
333
349
  return tg_bot
334
350
 
335
351
 
336
- def create_tg_bot_dispatcher():
337
- # TODO
338
- pass
352
+ # def create_tg_bot_dispatcher(
353
+ # *,
354
+ # settings:
355
+ # ):
356
+ # tg_dp = Dispatcher(
357
+ # storage=MemoryStorage(),
358
+ # settings=get_settings(),
359
+ # db=db,
360
+ # transmitted_tg_bot_data=transmitted_tg_bot_data
361
+ # )
339
362
 
340
363
 
341
364
  def __example():
@@ -31,10 +31,11 @@ from arpakitlib.ar_enumeration_util import Enumeration
31
31
  from arpakitlib.ar_exception_util import exception_to_traceback_str
32
32
  from arpakitlib.ar_file_storage_in_dir_util import FileStorageInDir
33
33
  from arpakitlib.ar_func_util import raise_if_not_async_func, is_async_object
34
+ from arpakitlib.ar_json_db_util import JSONDb
34
35
  from arpakitlib.ar_json_util import safely_transfer_obj_to_json_str_to_json_obj, safely_transfer_obj_to_json_str
35
- from arpakitlib.ar_settings_util import SimpleSettings
36
+ from arpakitlib.ar_settings_util import BaseSettings2
36
37
  from arpakitlib.ar_sqlalchemy_model_util import StoryLogDBM, OperationDBM
37
- from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDB
38
+ from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDb
38
39
  from arpakitlib.ar_type_util import raise_for_type, raise_if_none
39
40
 
40
41
  _ARPAKIT_LIB_MODULE_VERSION = "3.0"
@@ -355,12 +356,12 @@ def logging__api_func_before_in_handle_exception(
355
356
 
356
357
  def story_log__api_func_before_in_handle_exception(
357
358
  *,
358
- sqlalchemy_db: SQLAlchemyDB,
359
+ sqlalchemy_db: SQLAlchemyDb,
359
360
  ignore_api_error_codes: list[str] | None = None,
360
361
  ignore_status_codes: list[int] | None = None,
361
362
  ignore_exception_types: list[type[Exception]] | None = None
362
363
  ) -> Callable:
363
- raise_for_type(sqlalchemy_db, SQLAlchemyDB)
364
+ raise_for_type(sqlalchemy_db, SQLAlchemyDb)
364
365
 
365
366
  current_func_name = inspect.currentframe().f_code.co_name
366
367
 
@@ -532,11 +533,12 @@ class BaseTransmittedAPIData(BaseModel):
532
533
 
533
534
 
534
535
  class SimpleTransmittedAPIData(BaseTransmittedAPIData):
535
- settings: SimpleSettings | None = None
536
+ settings: BaseSettings2 | None = None
536
537
 
537
538
 
538
539
  class AdvancedTransmittedAPIData(SimpleTransmittedAPIData):
539
- sqlalchemy_db: SQLAlchemyDB | None = None
540
+ sqlalchemy_db: SQLAlchemyDb | None = None
541
+ json_db: JSONDb | None = None
540
542
  media_file_storage_in_dir: FileStorageInDir | None = None
541
543
  cache_file_storage_in_dir: FileStorageInDir | None = None
542
544
  dump_file_storage_in_dir: FileStorageInDir | None = None
@@ -19,7 +19,7 @@ from arpakitlib.ar_datetime_util import now_utc_dt
19
19
  from arpakitlib.ar_dict_util import combine_dicts
20
20
  from arpakitlib.ar_sleep_util import sync_safe_sleep, async_safe_sleep
21
21
  from arpakitlib.ar_sqlalchemy_model_util import OperationDBM, StoryLogDBM, BaseOperationTypes
22
- from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDB
22
+ from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDb
23
23
  from arpakitlib.ar_type_util import raise_for_type
24
24
 
25
25
  _ARPAKIT_LIB_MODULE_VERSION = "3.0"
@@ -30,7 +30,7 @@ _logger = logging.getLogger(__name__)
30
30
  def get_operation_for_execution(
31
31
  *,
32
32
  session: Session | None = None,
33
- sqlalchemy_db: SQLAlchemyDB | None = None,
33
+ sqlalchemy_db: SQLAlchemyDb | None = None,
34
34
  filter_operation_types: list[str] | str | None = None,
35
35
  lock: bool = False
36
36
  ) -> OperationDBM | None:
@@ -65,7 +65,7 @@ def get_operation_for_execution(
65
65
  def get_operation_by_id(
66
66
  *,
67
67
  session: Session | None = None,
68
- sqlalchemy_db: SQLAlchemyDB | None = None,
68
+ sqlalchemy_db: SQLAlchemyDb | None = None,
69
69
  filter_operation_id: int,
70
70
  raise_if_not_found: bool = False,
71
71
  lock: bool = False
@@ -101,7 +101,7 @@ def get_operation_by_id(
101
101
  def remove_operations(
102
102
  *,
103
103
  session: Session | None = None,
104
- sqlalchemy_db: SQLAlchemyDB | None = None,
104
+ sqlalchemy_db: SQLAlchemyDb | None = None,
105
105
  filter_operation_ids: list[int] | int | None = None,
106
106
  filter_operation_types: list[str] | str | None = None,
107
107
  filter_operation_statuses: list[str] | str | None = None
@@ -141,7 +141,7 @@ def remove_operations(
141
141
 
142
142
 
143
143
  class BaseOperationExecutor:
144
- def __init__(self, *, sqlalchemy_db: SQLAlchemyDB, **kwargs):
144
+ def __init__(self, *, sqlalchemy_db: SQLAlchemyDb, **kwargs):
145
145
  self._logger = logging.getLogger(self.__class__.__name__)
146
146
  self.sql_alchemy_db = sqlalchemy_db
147
147
 
@@ -311,7 +311,7 @@ class OperationExecutorWorker(BaseWorker):
311
311
  def __init__(
312
312
  self,
313
313
  *,
314
- sqlalchemy_db: SQLAlchemyDB,
314
+ sqlalchemy_db: SQLAlchemyDb,
315
315
  operation_executor: BaseOperationExecutor | None = None,
316
316
  filter_operation_types: str | list[str] | None = None,
317
317
  startup_funcs: list[Any] | None = None,
@@ -384,7 +384,7 @@ class ScheduledOperationCreatorWorker(BaseWorker):
384
384
  def __init__(
385
385
  self,
386
386
  *,
387
- sqlalchemy_db: SQLAlchemyDB,
387
+ sqlalchemy_db: SQLAlchemyDb,
388
388
  scheduled_operations: ScheduledOperation | list[ScheduledOperation] | None = None,
389
389
  startup_funcs: list[Any] | None = None
390
390
  ):
@@ -125,7 +125,7 @@ class AdvancedSettings(SimpleSettings):
125
125
  return v
126
126
 
127
127
  return generate_sqlalchemy_url(
128
- base="postgresql+asyncpg",
128
+ base="postgresql",
129
129
  user=validation_info.data.get("sql_db_user"),
130
130
  password=validation_info.data.get("sql_db_password"),
131
131
  port=validation_info.data.get("sql_db_port"),
@@ -78,11 +78,11 @@ def generate_sqlalchemy_url(
78
78
  return f"{base}://{auth_part}{host_part}{database_part}{query_part}"
79
79
 
80
80
 
81
- class SQLAlchemyDB:
81
+ class SQLAlchemyDb:
82
82
  def __init__(
83
83
  self,
84
84
  *,
85
- db_url: str | None = "postgresql://arpakitlib:arpakitlib@localhost:50517/arpakitlib",
85
+ sync_db_url: str | None = "postgresql://arpakitlib:arpakitlib@localhost:50517/arpakitlib",
86
86
  async_db_url: str | None = "postgresql+asyncpg://arpakitlib:arpakitlib@localhost:50517/arpakitlib",
87
87
  db_echo: bool = False,
88
88
  base_dbm: type[BaseDBM] | None = None,
@@ -90,10 +90,10 @@ class SQLAlchemyDB:
90
90
  ):
91
91
  self._logger = logging.getLogger()
92
92
 
93
- self.db_url = db_url
93
+ self.db_url = sync_db_url
94
94
  if self.db_url is not None:
95
95
  self.engine = create_engine(
96
- url=db_url,
96
+ url=sync_db_url,
97
97
  echo=db_echo,
98
98
  pool_size=10,
99
99
  max_overflow=10,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: arpakitlib
3
- Version: 1.7.252
3
+ Version: 1.7.253
4
4
  Summary: arpakitlib
5
5
  License: Apache-2.0
6
6
  Keywords: arpakitlib,arpakit,arpakit-company,arpakitcompany,arpakit_company
@@ -5,7 +5,7 @@ arpakitlib/_arpakit_project_template/ARPAKITLIB,sha256=3-iAkMXtesLzJXHw_IIv2k2M0
5
5
  arpakitlib/_arpakit_project_template/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
6
6
  arpakitlib/_arpakit_project_template/README.md,sha256=AwqCtmMeywF2dJhZbKwCBA_wPnLF_VmoLGfPbFjH3bM,62
7
7
  arpakitlib/_arpakit_project_template/alembic/README,sha256=MVlc9TYmr57RbhXET6QxgyCcwWP7w-vLkEsirENqiIQ,38
8
- arpakitlib/_arpakit_project_template/alembic/env.py,sha256=AvnRdapLhTUvpjbnz6OthkhkqMnG5867tF1x2ay1_pk,2305
8
+ arpakitlib/_arpakit_project_template/alembic/env.py,sha256=GeYi-LT3-qhqv1HlGv8K6r4qvPN0J2Uzf2oADS5_kz8,2309
9
9
  arpakitlib/_arpakit_project_template/alembic/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
10
10
  arpakitlib/_arpakit_project_template/alembic.ini,sha256=8fuyeEvGBiPGbxEFy8ISBV3xX_fgVmuhEGpB10_B5Uo,3733
11
11
  arpakitlib/_arpakit_project_template/example.env,sha256=IUDWwKPGCxqnMV3H_HhnG5LUhRk0M1MNOmPeJBhIMsU,482
@@ -13,9 +13,10 @@ arpakitlib/_arpakit_project_template/manage/__init__.py,sha256=47DEQpj8HBSa-_TIm
13
13
  arpakitlib/_arpakit_project_template/manage/alembic_upgrade_head .sh,sha256=RIkhv5e5ERZHoxmTvvo_nCeDeVqeVIam7CjVoE9_E4k,38
14
14
  arpakitlib/_arpakit_project_template/manage/docker_ps.sh,sha256=uwm8vHgeuNLCOn0o9hgP_uc-PUkS9FwLyzZh6ItZ3do,15
15
15
  arpakitlib/_arpakit_project_template/manage/docker_ps_a.sh,sha256=nOQejihYlzstg9oROvYwHIsSLt2Sw0DWQEeT3GBaBNs,18
16
- arpakitlib/_arpakit_project_template/manage/docker_run_postgres.sh,sha256=vuBvSyTl22FhOumpq7q6_28XcRzd65wbJoIrgzq0JMQ,300
17
- arpakitlib/_arpakit_project_template/manage/docker_start_postgres.sh,sha256=CSdVm82vbpCvphkANku7QQmkgojZ5HGzFY1rOlEEisk,56
18
- arpakitlib/_arpakit_project_template/manage/docker_stop_postgres.sh,sha256=lrac-QmExYuuaL7MuQm8296lprYL5qmUQXv8quJEWPM,55
16
+ arpakitlib/_arpakit_project_template/manage/docker_rm_postgres.sh,sha256=uIO5b_AsHEiHL_rWxayUd3asGA2sVw9gozyLMtkLMkE,56
17
+ arpakitlib/_arpakit_project_template/manage/docker_run_postgres.sh,sha256=34Danr0ZOu_c6gRjBC4f6_cgD8HfEYXieaxBxOwioJw,300
18
+ arpakitlib/_arpakit_project_template/manage/docker_start_postgres.sh,sha256=gaSO3zH6og5qegkn-63_QmOZA-cXHbwddHmKpTfm0EU,56
19
+ arpakitlib/_arpakit_project_template/manage/docker_stop_postgres.sh,sha256=h2NeFBI0b9vZcf5fPhhxtepvAFhxl78Ct1wjfJWos24,55
19
20
  arpakitlib/_arpakit_project_template/manage/git_branch.sh,sha256=yMwBwT866WjxowbDrNHRDh8yod4eSn7JZnXUlQvrcOk,17
20
21
  arpakitlib/_arpakit_project_template/manage/git_commit.sh,sha256=AW1NEel-ZHaYeVWFlRbgZSYPQdnVKsTkpR_07RQL1Mw,42
21
22
  arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_github_1.sh,sha256=Sx-OegryHeNTIfAOoCfj3Z3CF-XKEY0AJF5HVJAgGpU,70
@@ -23,8 +24,8 @@ arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_gitlab_1.sh
23
24
  arpakitlib/_arpakit_project_template/manage/git_push_arpakit_github_1.sh,sha256=j2wTeg7_tmJiWEtNAXpXjRSizEauoqF9uM679n6zidU,62
24
25
  arpakitlib/_arpakit_project_template/manage/git_push_arpakit_gitlab_1.sh,sha256=W-85-OhGYLTijzM39G0Es74Y0VdbczELwS12owHN_Gs,62
25
26
  arpakitlib/_arpakit_project_template/manage/git_remote_v.sh,sha256=DIcyWmY_mve_CmM1SND2gYgAGO7HaLtso3zvJfMqTRI,19
26
- arpakitlib/_arpakit_project_template/manage/git_set_arpakit_company_origin.sh,sha256=0geAIWJ5vkIidYbfMfy2TKFbmVDr_-dHqK5YwwZze9Y,289
27
- arpakitlib/_arpakit_project_template/manage/git_set_arpakit_origin.sh,sha256=NHCLVSzWh5JnC-HSODspXNN6Xrp-WYmGGtNZBvOcaN4,240
27
+ arpakitlib/_arpakit_project_template/manage/git_set_arpakit_company_origin.sh,sha256=zD57Uw_jF0ieegxk3c9hVzUHucpQDrbsQaML50Opy8Y,289
28
+ arpakitlib/_arpakit_project_template/manage/git_set_arpakit_origin.sh,sha256=J7qmaOAbAdwVo1_fwvbX1GcbL7AMPFG4ZU6zk45Y88s,240
28
29
  arpakitlib/_arpakit_project_template/manage/git_status.sh,sha256=N9JGYX5_UfCdirw4EQYzu4sS7pMLGrF4-QrTSTcpUtA,16
29
30
  arpakitlib/_arpakit_project_template/manage/hello_world.py,sha256=OxvwkWqjmhhvMPG1TiQTo52hgEyzZfzUPoij0wmFmWA,95
30
31
  arpakitlib/_arpakit_project_template/manage/json_beautify.py,sha256=AwBtDjb92LpGy9M3XGBoLOIQKlOPtm5pLl47i7xJpZY,239
@@ -64,9 +65,9 @@ arpakitlib/_arpakit_project_template/src/api/_start_api_without_reload.py,sha256
64
65
  arpakitlib/_arpakit_project_template/src/api/asgi.py,sha256=a5UBxOyNC8NG3E0ayhiDo3t5tPoB3WtOf2gbZJFWBAA,74
65
66
  arpakitlib/_arpakit_project_template/src/api/auth.py,sha256=Ul-4vt-DcgfearD12YF4-WSO_O6zvBTowQ64mtH3VTc,1569
66
67
  arpakitlib/_arpakit_project_template/src/api/const.py,sha256=7d4qD5hedqr7QxVzbfsA7E1bNZn2Pm2U8joXGtpANu0,287
67
- arpakitlib/_arpakit_project_template/src/api/create_api_app.py,sha256=BZrRMDGTxASF1CXvJ5D4Jyv20l8tq5aVGFTCie82JT8,2490
68
+ arpakitlib/_arpakit_project_template/src/api/create_api_app.py,sha256=oQrpmBXwRMquX1p8TFuYjqicSzAnhPTPRJNtCh0Gp0w,2494
68
69
  arpakitlib/_arpakit_project_template/src/api/create_handle_exception_.py,sha256=su4fToBIKWFtcdPFaYo2z1TFfpk3VfALpMlWH48HOr0,2247
69
- arpakitlib/_arpakit_project_template/src/api/event.py,sha256=UvyNFIH0nTCEfzupGVDnWSt6UY_QdJRbWr7yiHO7NRQ,3555
70
+ arpakitlib/_arpakit_project_template/src/api/event.py,sha256=nnTt9yAMHQvsJEY8qFsikPNxzYQpweUqYaWr4srG36U,3555
70
71
  arpakitlib/_arpakit_project_template/src/api/router/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
72
  arpakitlib/_arpakit_project_template/src/api/router/main_router.py,sha256=Yv699WCJDcdiJMXFg1kPTvolqj-NAGoXfqe-vzbMzIU,228
72
73
  arpakitlib/_arpakit_project_template/src/api/router/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -87,20 +88,11 @@ arpakitlib/_arpakit_project_template/src/core/_show_settings.py,sha256=BQUcr-yj3
87
88
  arpakitlib/_arpakit_project_template/src/core/const.py,sha256=e2Y0NIQHfzm3bmnbQnGy3Z5YKt6OYnIsRoqVY8oIV2E,1008
88
89
  arpakitlib/_arpakit_project_template/src/core/settings.py,sha256=1tQwIvYvwAxY7Dz1LY6-EvxkG3hfYSPTmwq_frC4xRM,655
89
90
  arpakitlib/_arpakit_project_template/src/core/util.py,sha256=mcikqcjljZa2qhYeoR1tR9JUSprrVSod8XcIK_PqS6o,1547
90
- arpakitlib/_arpakit_project_template/src/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
- arpakitlib/_arpakit_project_template/src/db/_check_conn_sqlalchemy_db.py,sha256=GPK7-w7x8ESqbZ0v1nI8m_ysWfnmjgRwyyh6kM8vYBQ,249
92
- arpakitlib/_arpakit_project_template/src/db/_drop_sqlalchemy_db.py,sha256=N_W3Jk_kPzMDhiv7INGYvpC6iVNPdzvgbLFUDtY5FwY,337
93
- arpakitlib/_arpakit_project_template/src/db/_init_sqlalchemy_db.py,sha256=tHJ1NBUAR-9uAktx2RfPikzGGguhwEWfrWdj1y0XV-w,231
94
- arpakitlib/_arpakit_project_template/src/db/_reinit_sqlalchemy_db.py,sha256=_4O_xr6FXt3qcWOmO82CKG3XX6_RqbqaOYSEygxpBfA,339
95
- arpakitlib/_arpakit_project_template/src/db/const.py,sha256=dcvj5C9E2F2KCsGZPBBncQf_EvVJAC1qQgnyD8P4ZEw,6
96
- arpakitlib/_arpakit_project_template/src/db/sqlalchemy_model.py,sha256=tIdSerx8m6FA0cx4PDNJF8cWY1utpS_g0sZ0jBzUAbI,286
97
- arpakitlib/_arpakit_project_template/src/db/util.py,sha256=PzI0qk50zChjgVp1XJBKYIX16UeLahc8jzHAt1fIu4o,845
98
91
  arpakitlib/_arpakit_project_template/src/just_script/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
92
  arpakitlib/_arpakit_project_template/src/just_script/example.py,sha256=Wr5DcSV_zpRFIMR7_ERrtAXzCoTHJEDU_AAT8BvaCi4,271
100
93
  arpakitlib/_arpakit_project_template/src/operation_execution/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
- arpakitlib/_arpakit_project_template/src/operation_execution/_remove_operations.py,sha256=KsvAk2zQCp0PX6-QiRW0LKHoJfmH0wVJcBZviFqAoBI,471
102
- arpakitlib/_arpakit_project_template/src/operation_execution/_start_operation_executor_worker.py,sha256=K861UI9LFNxfCoPpQ5AJX-oUwjB6bfFNKScKsyU9Xd8,575
103
- arpakitlib/_arpakit_project_template/src/operation_execution/_start_scheduled_operation_creator_worker.py,sha256=i6bKSrdCElclkVWMQrIdwDtOCiy8YvrL5OTMNpQ3drE,577
94
+ arpakitlib/_arpakit_project_template/src/operation_execution/_start_operation_executor_worker.py,sha256=fOuxke-ACDL_9PwLLjUoReozxANiyVI-29IJUp-H860,579
95
+ arpakitlib/_arpakit_project_template/src/operation_execution/_start_scheduled_operation_creator_worker.py,sha256=j1-cz4E_8KJ4vnLykWmVHIWHRmDHkji9FsUjnDCXxXc,581
104
96
  arpakitlib/_arpakit_project_template/src/operation_execution/const.py,sha256=HjupGEDUWVijQlbzxZPI9vBbAVOETUYzYU9pdnc9IcI,176
105
97
  arpakitlib/_arpakit_project_template/src/operation_execution/operation_executor.py,sha256=TuAlF3QPJq-Zsq693NHQ00dvCWAzuwce2q6ozesWFYY,725
106
98
  arpakitlib/_arpakit_project_template/src/operation_execution/scheduled_operations.py,sha256=DwEzbsQtO_7mSah25uOoV7IrlsMNEIU2j2gA-MGqUMQ,1100
@@ -113,6 +105,16 @@ arpakitlib/_arpakit_project_template/src/sandbox/sandbox_4.py,sha256=m5BIvvGoi9g
113
105
  arpakitlib/_arpakit_project_template/src/sandbox/sandbox_5.py,sha256=m5BIvvGoi9gaGFyqmX3rT8D-YqMmo9NEQA2T26CHwSk,171
114
106
  arpakitlib/_arpakit_project_template/src/sandbox/sandbox_6.py,sha256=m5BIvvGoi9gaGFyqmX3rT8D-YqMmo9NEQA2T26CHwSk,171
115
107
  arpakitlib/_arpakit_project_template/src/sandbox/sandbox_7.py,sha256=m5BIvvGoi9gaGFyqmX3rT8D-YqMmo9NEQA2T26CHwSk,171
108
+ arpakitlib/_arpakit_project_template/src/sql_db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
+ arpakitlib/_arpakit_project_template/src/sql_db/_check_conn_sqlalchemy_db.py,sha256=M4H6nDmsxyJLCDLwPSZiRzO2FrFlroljrOx914eImao,253
110
+ arpakitlib/_arpakit_project_template/src/sql_db/_drop_sqlalchemy_db.py,sha256=Q8ejPw-BTw_EaNf8tHlHQRLny5YNwmNpOBqg2g3Xy28,341
111
+ arpakitlib/_arpakit_project_template/src/sql_db/_init_sqlalchemy_db.py,sha256=e-RcZ7eJcUSa47AYADtvWE--oBE0IN5bL3Jgjozoj3k,235
112
+ arpakitlib/_arpakit_project_template/src/sql_db/_reinit_sqlalchemy_db.py,sha256=e76skNfv6dmXFFpowgdORrdosxIMs6fpWcqNigJK2ds,343
113
+ arpakitlib/_arpakit_project_template/src/sql_db/_remove_operations.py,sha256=OjKWrlmK8NQ2OvuEYgD63raKJwWcuBxnXqgB_yMCdgs,475
114
+ arpakitlib/_arpakit_project_template/src/sql_db/_remove_story_logs.py,sha256=DcHpdh-VGAk2pOnROSo27skBuFm4o11H8psL-uZedig,488
115
+ arpakitlib/_arpakit_project_template/src/sql_db/const.py,sha256=dcvj5C9E2F2KCsGZPBBncQf_EvVJAC1qQgnyD8P4ZEw,6
116
+ arpakitlib/_arpakit_project_template/src/sql_db/sqlalchemy_model.py,sha256=tIdSerx8m6FA0cx4PDNJF8cWY1utpS_g0sZ0jBzUAbI,286
117
+ arpakitlib/_arpakit_project_template/src/sql_db/util.py,sha256=Rc2YSo_X_gAFX56axtmqD5GI2P0VIXullgvvRYfbo0E,859
116
118
  arpakitlib/_arpakit_project_template/src/test_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
119
  arpakitlib/_arpakit_project_template/src/test_data/make_test_data_1.py,sha256=w24o2vrlqaoCfPYftWogHCV8MoUjqctwLTI3-tFlgf4,100
118
120
  arpakitlib/_arpakit_project_template/src/test_data/make_test_data_2.py,sha256=bhriAB1GtC2dPWb0lltj145EhotgE6X1I7O8WnJmOyk,100
@@ -142,10 +144,10 @@ arpakitlib/_arpakit_project_template/src/tg_bot/router/__init__.py,sha256=47DEQp
142
144
  arpakitlib/_arpakit_project_template/src/tg_bot/router/error.py,sha256=5ktxguLc2pI7BUlJ9jgMp_VnH5gtOt1jzJZskKkmhzI,53
143
145
  arpakitlib/_arpakit_project_template/src/tg_bot/router/router.py,sha256=ZxfPNouuewz3uEW7jLxXdCuT7v-HVjl9YagrKbUMzwc,151
144
146
  arpakitlib/_arpakit_project_template/src/tg_bot/start_tg_bot.py,sha256=7JWCdhyRyYkwV198PjKl6YPqPl7qr-_1Z2tVItfPZlQ,218
145
- arpakitlib/_arpakit_project_template/src/tg_bot/transmitted_tg_data.py,sha256=XPNROag9Aq-eSIY7_KxaIxNvAp4orTkpkghRCh3nuz4,585
147
+ arpakitlib/_arpakit_project_template/src/tg_bot/transmitted_tg_data.py,sha256=mjElzmxXaY4fODCG-C-gRvQ0MfbftB0uwYro7G84w3U,201
146
148
  arpakitlib/_arpakit_project_template/src/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
147
149
  arpakitlib/ar_additional_model_util.py,sha256=GFg-glLCxH9X95R2bhTJsscVwv37FgE1qbaAAyXrnIE,917
148
- arpakitlib/ar_aiogram_util.py,sha256=GFoIVjuKStzpR_PYPZdyfP3txpjJq1oaCsXTCNMp4Qw,11966
150
+ arpakitlib/ar_aiogram_util.py,sha256=hthpbt69CbDTAA3YbaPI3wfYU0aPWqunuV-TzUzv_Q8,12849
149
151
  arpakitlib/ar_api_key_util.py,sha256=E84JlJXiDHtxLQmV8BNHvqNKu_G8-Dox0XxknYJQ37Q,422
150
152
  arpakitlib/ar_arpakit_lib_module_util.py,sha256=g9uWwTK2eEzmErqwYeVgXDYVMREN8m5CdmgEumAEQfw,5919
151
153
  arpakitlib/ar_arpakit_project_template_util.py,sha256=zJXIFlFrO_3Xvg3ZqIiY6UZjKSbiFr8SQ99YKyZ86BE,3241
@@ -184,7 +186,7 @@ arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css,sha256=jzPZlgJTFwSdSphk9C
184
186
  arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css.map,sha256=5wq8eXMLU6Zxb45orZPL1zAsBFJReFw6GjYqGpUX3hg,262650
185
187
  arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js,sha256=ffrLZHHEQ_g84A-ul3yWa10Kk09waOAxHcQXPuZuavg,339292
186
188
  arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js.map,sha256=9UhIW7MqCOZPAz1Sl1IKfZUuhWU0p-LJqrnjjJD9Xhc,1159454
187
- arpakitlib/ar_fastapi_util.py,sha256=lmYR8VUoDXTaXU5qiSTXY7Q35Qpcxw9ZwX_rUVKXyTE,29500
189
+ arpakitlib/ar_fastapi_util.py,sha256=U339X9DWRTb-lwTds-nH1ry1O_ufcYL1pm-9-CfawXw,29578
188
190
  arpakitlib/ar_file_storage_in_dir_util.py,sha256=D3e3rGuHoI6xqAA5mVvEpVVpOWY1jyjNsjj2UhyHRbE,3674
189
191
  arpakitlib/ar_file_util.py,sha256=GUdJYm1tUZnYpY-SIPRHAZBHGra8NKy1eYEI0D5AfhY,489
190
192
  arpakitlib/ar_func_util.py,sha256=bCuWbSMoFXBaMNhb89sevj2oaXRk4Jk6Qjot8OXMDT4,1319
@@ -200,18 +202,18 @@ arpakitlib/ar_logging_util.py,sha256=V4jypypFG1cj4nXae7JiBnRRfm02OTnZSEermx-wlDY
200
202
  arpakitlib/ar_mongodb_util.py,sha256=2ECkTnGAZ92qxioL-fmN6R4yZOSr3bXdXLWTzT1C3vk,4038
201
203
  arpakitlib/ar_need_type_util.py,sha256=GETiREPMEYhch-yU6T--Bdawlbb04Jp1Qy7cOsUlIeA,2228
202
204
  arpakitlib/ar_openai_api_client_util.py,sha256=_XmlApvHFMSyjvZydPa_kASIt9LsFrZmSC7YEzIG8Bg,1806
203
- arpakitlib/ar_operation_execution_util.py,sha256=poJ3t6AMuZw87WysMuLH8zqm6PVvzErYqlyQmlzLvAE,17908
205
+ arpakitlib/ar_operation_execution_util.py,sha256=OC_PqwGSoTsupcs2gSwIqxuw68udtYKnPKJBgezbOPY,17908
204
206
  arpakitlib/ar_parse_command.py,sha256=-s61xcATIsfw1eV_iD3xi-grsitbGzSDoAFc5V0OFy4,3447
205
207
  arpakitlib/ar_postgresql_util.py,sha256=1AuLjEaa1Lg4pzn-ukCVnDi35Eg1k91APRTqZhIJAdo,945
206
208
  arpakitlib/ar_rat_func_util.py,sha256=xDO3gcmZZ0VsTF5zwqyfrkct8FWcKmyl1KUwfdA1s4k,2009
207
209
  arpakitlib/ar_retry_func_util.py,sha256=EQtXhn0RvMiyaes9HMDBgMh_WjMIaGwds01UrKKDaBM,2204
208
210
  arpakitlib/ar_run_cmd_util.py,sha256=D_rPavKMmWkQtwvZFz-Io5Ak8eSODHkcFeLPzNVC68g,1072
209
211
  arpakitlib/ar_schedule_uust_api_client_util.py,sha256=HhAIps0QS9ZsacPWhTrMkUUBxuqXBC2lcEzfLlxNs2g,6980
210
- arpakitlib/ar_settings_util.py,sha256=gvnJDqpvxWoKtz56IBYr7tl_VuzOoUlhu_n0_6C3N4o,7511
212
+ arpakitlib/ar_settings_util.py,sha256=iNP_gBdQMb5YcBzOPxInBL-28EhFmwYDV3I2u2cVi2A,7503
211
213
  arpakitlib/ar_sleep_util.py,sha256=OaLtRaJQWMkGjfj_mW1RB2P4RaSWsAIH8LUoXqsH0zM,1061
212
214
  arpakitlib/ar_sqladmin_util.py,sha256=6Nv9VQssk9PB0piyuss__soYKdjVhdbIeXIv4AgUxmQ,2660
213
215
  arpakitlib/ar_sqlalchemy_model_util.py,sha256=270RNSiccC5l55o8EFerh1SawlEsD99BpgwANSQA0UM,6418
214
- arpakitlib/ar_sqlalchemy_util.py,sha256=9dXCdKWmUPyMt19sF2YVBB-4x_tl5g2Bsfhn0c_SQ6M,8184
216
+ arpakitlib/ar_sqlalchemy_util.py,sha256=IqylYuC7ds8rrmJXTzCEnJkE1MCj-cMDWuP-la0bS4A,8199
215
217
  arpakitlib/ar_ssh_runner_util.py,sha256=e9deuUdBW7Eh0Exx2nTBhk57SaOZYaJaSjNk8q6dbJk,6804
216
218
  arpakitlib/ar_steam_payment_api_client_util.py,sha256=onvb3jt9bWfsCLbVLaApbN_-cqCu1CduVhM9GhG5yTA,250
217
219
  arpakitlib/ar_str_util.py,sha256=yU5gOwNXUQaH5b_tM5t6fXUn9oUcv5EQbVnq2wXXIpQ,3378
@@ -219,8 +221,8 @@ arpakitlib/ar_type_util.py,sha256=9C3ErtUVs0tAUqtK-foFzjJOykfBOntfCz2IogDOgfA,41
219
221
  arpakitlib/ar_wata_api_client.py,sha256=gdHOqDbuqxhTjVDtRW1DvkRJLdDofCrOq51GTctzLns,242
220
222
  arpakitlib/ar_yookassa_api_client_util.py,sha256=VozuZeCJjmLd1zj2BdC9WfiAQ3XYOrIMsdpNK-AUlm0,5347
221
223
  arpakitlib/ar_zabbix_api_client_util.py,sha256=Q-VR4MvoZ9aHwZeYZr9G3LwN-ANx1T5KFmF6pvPM-9M,6402
222
- arpakitlib-1.7.252.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
223
- arpakitlib-1.7.252.dist-info/METADATA,sha256=U_LO4F6067T4ZKlENyHlnAfAC5zww4JIuwraSJEYC8E,3386
224
- arpakitlib-1.7.252.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
225
- arpakitlib-1.7.252.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
226
- arpakitlib-1.7.252.dist-info/RECORD,,
224
+ arpakitlib-1.7.253.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
225
+ arpakitlib-1.7.253.dist-info/METADATA,sha256=C2YyQ87MAPIH1AxNCWUAOr7d1LOw4uyanGfMEmzL-9M,3386
226
+ arpakitlib-1.7.253.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
227
+ arpakitlib-1.7.253.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
228
+ arpakitlib-1.7.253.dist-info/RECORD,,