arpakitlib 1.7.243__tar.gz → 1.7.245__tar.gz

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 (218) hide show
  1. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/PKG-INFO +3 -1
  2. arpakitlib-1.7.245/arpakitlib/_arpakit_project_template/manage/alembic_upgrade_head .sh +2 -0
  3. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/core/settings.py +36 -9
  4. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/db/util.py +1 -0
  5. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_sqlalchemy_util.py +81 -19
  6. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/pyproject.toml +3 -1
  7. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/LICENSE +0 -0
  8. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/README.md +0 -0
  9. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/__init__.py +0 -0
  10. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/.gitignore +0 -0
  11. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/.python-version +0 -0
  12. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/ARPAKITLIB +0 -0
  13. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/LICENSE +0 -0
  14. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/README.md +0 -0
  15. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/example.env +0 -0
  16. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/__init__.py +0 -0
  17. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/docker_ps.sh +0 -0
  18. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/docker_ps_a.sh +0 -0
  19. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/docker_run_postgres.sh +0 -0
  20. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/docker_start_postgres.sh +0 -0
  21. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/docker_stop_postgres.sh +0 -0
  22. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/git_branch.sh +0 -0
  23. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/git_commit.sh +0 -0
  24. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_github_1.sh +0 -0
  25. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_gitlab_1.sh +0 -0
  26. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_github_1.sh +0 -0
  27. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_gitlab_1.sh +0 -0
  28. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/git_remote_v.sh +0 -0
  29. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/git_set_arpakit_company_origin.sh +0 -0
  30. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/git_set_arpakit_origin.sh +0 -0
  31. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/git_status.sh +0 -0
  32. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/hello_world.py +0 -0
  33. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/json_beautify.py +0 -0
  34. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/note/__init__.py +0 -0
  35. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/note/note_1.txt +0 -0
  36. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/note/note_2.txt +0 -0
  37. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/note/note_3.txt +0 -0
  38. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/note/note_4.txt +0 -0
  39. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/note/note_5.txt +0 -0
  40. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/poetry_add_plugin_export.sh +0 -0
  41. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/poetry_check.sh +0 -0
  42. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/poetry_clear_cache.sh +0 -0
  43. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/poetry_config.sh +0 -0
  44. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/poetry_config_virtualenvs_in_project_true.sh +0 -0
  45. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/poetry_install.sh +0 -0
  46. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/poetry_lock.sh +0 -0
  47. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/poetry_remove_and_add_arpakitlib.sh +0 -0
  48. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/poetry_self_add_plugin_export.sh +0 -0
  49. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/poetry_show.sh +0 -0
  50. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/poetry_show_arpakitlib.sh +0 -0
  51. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/poetry_update.sh +0 -0
  52. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/poetry_update_arpakitlib.sh +0 -0
  53. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/sandbox/__init__.py +0 -0
  54. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_1.py +0 -0
  55. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_2.py +0 -0
  56. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_3.py +0 -0
  57. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_4.py +0 -0
  58. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_5.py +0 -0
  59. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_6.py +0 -0
  60. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_7.py +0 -0
  61. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_8.sh +0 -0
  62. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_9.sh +0 -0
  63. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/resource/__init__.py +0 -0
  64. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/resource/static/__init__.py +0 -0
  65. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/resource/static/healthcheck +0 -0
  66. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/resource/static/helloworld +0 -0
  67. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/__init__.py +0 -0
  68. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/additional_model/__init__.py +0 -0
  69. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/additional_model/additional_model.py +0 -0
  70. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/admin1/__init__.py +0 -0
  71. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/admin1/add_admin_in_app.py +0 -0
  72. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/admin1/admin_auth.py +0 -0
  73. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/admin1/model_view.py +0 -0
  74. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/__init__.py +0 -0
  75. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/_start_api_with_reload.py +0 -0
  76. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/_start_api_without_reload.py +0 -0
  77. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/asgi.py +0 -0
  78. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/auth.py +0 -0
  79. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/const.py +0 -0
  80. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/create_api_app.py +0 -0
  81. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/create_handle_exception_.py +0 -0
  82. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/event.py +0 -0
  83. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/router/__init__.py +0 -0
  84. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/router/main_router.py +0 -0
  85. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/router/v1/__init__.py +0 -0
  86. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/router/v1/get_api_error_info.py +0 -0
  87. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/router/v1/main_router.py +0 -0
  88. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/schema/__init__.py +0 -0
  89. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/schema/v1/__init__.py +0 -0
  90. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/schema/v1/in_.py +0 -0
  91. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/schema/v1/out.py +0 -0
  92. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/transmitted_api_data.py +0 -0
  93. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/api/util.py +0 -0
  94. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/business_service/__init__.py +0 -0
  95. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/business_service/hello_world.py +0 -0
  96. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/core/__init__.py +0 -0
  97. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/core/_check_logging.py +0 -0
  98. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/core/_check_settings.py +0 -0
  99. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/core/_generate_settings_env_example.py +0 -0
  100. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/core/const.py +0 -0
  101. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/core/util.py +0 -0
  102. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/db/__init__.py +0 -0
  103. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/db/_check_conn_sqlalchemy_db.py +0 -0
  104. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/db/_drop_sqlalchemy_db.py +0 -0
  105. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/db/_init_sqlalchemy_db.py +0 -0
  106. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/db/_reinit_sqlalchemy_db.py +0 -0
  107. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/db/const.py +0 -0
  108. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/db/sqlalchemy_model.py +0 -0
  109. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/operation_execution/__init__.py +0 -0
  110. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/operation_execution/_remove_operations.py +0 -0
  111. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/operation_execution/_start_operation_executor_worker.py +0 -0
  112. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/operation_execution/_start_scheduled_operation_creator_worker.py +0 -0
  113. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/operation_execution/const.py +0 -0
  114. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/operation_execution/operation_executor.py +0 -0
  115. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/operation_execution/scheduled_operations.py +0 -0
  116. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/operation_execution/util.py +0 -0
  117. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/test_data/__init__.py +0 -0
  118. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_1.py +0 -0
  119. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_2.py +0 -0
  120. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_3.py +0 -0
  121. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_4.py +0 -0
  122. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_5.py +0 -0
  123. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/__init__.py +0 -0
  124. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/blank/__init__.py +0 -0
  125. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/blank/blank.py +0 -0
  126. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/blank/util.py +0 -0
  127. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/const.py +0 -0
  128. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/event.py +0 -0
  129. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/filter/__init__.py +0 -0
  130. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/filter/not_prod_mode.py +0 -0
  131. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/filter/prod_mode.py +0 -0
  132. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/handler/__init__.py +0 -0
  133. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/handler/cmd_arpakitlib.py +0 -0
  134. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/handler/cmd_healthcheck.py +0 -0
  135. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/kb/__init__.py +0 -0
  136. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/kb/inline_/__init__.py +0 -0
  137. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/kb/inline_/callback.py +0 -0
  138. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/kb/inline_/common.py +0 -0
  139. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/kb/static_/__init__.py +0 -0
  140. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/kb/static_/common.py +0 -0
  141. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/middleware/__init__.py +0 -0
  142. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/router/__init__.py +0 -0
  143. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/router/error.py +0 -0
  144. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/router/router.py +0 -0
  145. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/start_tg_bot.py +0 -0
  146. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/tg_bot/transmitted_tg_data.py +0 -0
  147. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/_arpakit_project_template/src/util/__init__.py +0 -0
  148. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_additional_model_util.py +0 -0
  149. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_aiogram_util.py +0 -0
  150. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_api_key_util.py +0 -0
  151. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_arpakit_lib_module_util.py +0 -0
  152. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_arpakit_project_template_util.py +0 -0
  153. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_arpakit_schedule_uust_api_client_util.py +0 -0
  154. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_arpakit_schedule_uust_site_util.py +0 -0
  155. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_arpakitlib_cli_util.py +0 -0
  156. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_base64_util.py +0 -0
  157. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_base_worker_util.py +0 -0
  158. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_blank_util.py +0 -0
  159. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_cache_file_util.py +0 -0
  160. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_class_util.py +0 -0
  161. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_datetime_util.py +0 -0
  162. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_dict_util.py +0 -0
  163. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_dream_ai_api_client_util.py +0 -0
  164. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_encrypt_decrypt_util.py +0 -0
  165. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_enumeration_util.py +0 -0
  166. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_exception_util.py +0 -0
  167. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/healthcheck +0 -0
  168. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/redoc/redoc.standalone.js +0 -0
  169. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/swagger-ui/favicon-16x16.png +0 -0
  170. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/swagger-ui/favicon-32x32.png +0 -0
  171. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/swagger-ui/index.css +0 -0
  172. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/swagger-ui/index.html +0 -0
  173. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/swagger-ui/oauth2-redirect.html +0 -0
  174. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-initializer.js +0 -0
  175. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-bundle.js +0 -0
  176. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-bundle.js.map +0 -0
  177. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle-core.js +0 -0
  178. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle-core.js.map +0 -0
  179. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle.js +0 -0
  180. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle.js.map +0 -0
  181. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-standalone-preset.js +0 -0
  182. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-standalone-preset.js.map +0 -0
  183. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css +0 -0
  184. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css.map +0 -0
  185. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js +0 -0
  186. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js.map +0 -0
  187. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_fastapi_util.py +0 -0
  188. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_file_storage_in_dir_util.py +0 -0
  189. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_file_util.py +0 -0
  190. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_func_util.py +0 -0
  191. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_hash_util.py +0 -0
  192. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_http_request_util.py +0 -0
  193. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_ip_util.py +0 -0
  194. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_json_db_util.py +0 -0
  195. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_json_util.py +0 -0
  196. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_jwt_util.py +0 -0
  197. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_list_of_dicts_to_xlsx.py +0 -0
  198. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_list_util.py +0 -0
  199. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_logging_util.py +0 -0
  200. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_mongodb_util.py +0 -0
  201. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_need_type_util.py +0 -0
  202. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_openai_api_client_util.py +0 -0
  203. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_operation_execution_util.py +0 -0
  204. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_parse_command.py +0 -0
  205. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_postgresql_util.py +0 -0
  206. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_rat_func_util.py +0 -0
  207. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_retry_func_util.py +0 -0
  208. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_run_cmd_util.py +0 -0
  209. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_schedule_uust_api_client_util.py +0 -0
  210. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_settings_util.py +0 -0
  211. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_sleep_util.py +0 -0
  212. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_sqladmin_util.py +0 -0
  213. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_sqlalchemy_model_util.py +0 -0
  214. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_ssh_runner_util.py +0 -0
  215. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_str_util.py +0 -0
  216. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_type_util.py +0 -0
  217. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_yookassa_api_client_util.py +0 -0
  218. {arpakitlib-1.7.243 → arpakitlib-1.7.245}/arpakitlib/ar_zabbix_api_client_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: arpakitlib
3
- Version: 1.7.243
3
+ Version: 1.7.245
4
4
  Summary: arpakitlib
5
5
  License: Apache-2.0
6
6
  Keywords: arpakitlib,arpakit,arpakit-company,arpakitcompany,arpakit_company
@@ -39,6 +39,7 @@ Requires-Dist: paramiko (>=3.5.0,<4.0.0)
39
39
  Requires-Dist: pika (>=1.3.2,<2.0.0)
40
40
  Requires-Dist: poetry (>=2.0.1,<3.0.0)
41
41
  Requires-Dist: psycopg2-binary (>=2.9.10,<3.0.0)
42
+ Requires-Dist: pulp (>=2.9.0,<3.0.0)
42
43
  Requires-Dist: pydantic (>=2.10.5,<3.0.0)
43
44
  Requires-Dist: pydantic-settings (>=2.7.1,<3.0.0)
44
45
  Requires-Dist: pyjwt (>=2.10.1,<3.0.0)
@@ -46,6 +47,7 @@ Requires-Dist: pymongo (>=4.10.1,<5.0.0)
46
47
  Requires-Dist: pytz (>=2024.2,<2025.0)
47
48
  Requires-Dist: pyzabbix (>=1.3.1,<2.0.0)
48
49
  Requires-Dist: requests[socks] (>=2.32.3,<3.0.0)
50
+ Requires-Dist: scipy (>=1.15.1,<2.0.0)
49
51
  Requires-Dist: sqladmin (>=0.20.1,<0.21.0)
50
52
  Requires-Dist: sqlalchemy (>=2.0.37,<3.0.0)
51
53
  Requires-Dist: twine (>=6.1.0,<7.0.0)
@@ -8,6 +8,7 @@ from pydantic_core.core_schema import ValidationInfo
8
8
 
9
9
  from arpakitlib.ar_json_util import safely_transfer_obj_to_json_str
10
10
  from arpakitlib.ar_settings_util import SimpleSettings
11
+ from arpakitlib.ar_sqlalchemy_util import generate_sqlalchemy_url
11
12
  from src.core.const import ProjectPaths
12
13
 
13
14
 
@@ -25,16 +26,42 @@ class Settings(SimpleSettings):
25
26
  sql_db_url: str | None = None
26
27
 
27
28
  @field_validator("sql_db_url", mode="after")
28
- def validate_sql_db_url(cls, v: Any, validation_info: ValidationInfo) -> str | None:
29
+ def validate_sql_db_url(cls, v: Any, validation_info: ValidationInfo, **kwargs) -> str | None:
29
30
  if v is not None:
30
- return None
31
- user = validation_info.data.get('sql_db_user')
32
- password = validation_info.data.get('sql_db_password')
33
- port = validation_info.data.get('sql_db_port')
34
- database = validation_info.data.get('sql_db_database')
35
- if user is not None and password is not None and port is not None and database is not None:
36
- return f"postgresql://{user}:{password}@127.0.0.1:{port}/{database}"
37
- return None
31
+ return v
32
+
33
+ user = validation_info.data.get("sql_db_user")
34
+ password = validation_info.data.get("sql_db_password")
35
+ port = validation_info.data.get("sql_db_port")
36
+ database = validation_info.data.get("sql_db_database")
37
+
38
+ return generate_sqlalchemy_url(
39
+ base="postgresql",
40
+ user=user,
41
+ password=password,
42
+ port=port,
43
+ database=database
44
+ )
45
+
46
+ async_sql_db_url: str | None = None
47
+
48
+ @field_validator("async_sql_db_url", mode="after")
49
+ def validate_async_sql_db_url(cls, v: Any, validation_info: ValidationInfo, **kwargs) -> str | None:
50
+ if v is not None:
51
+ return v
52
+
53
+ user = validation_info.data.get("sql_db_user")
54
+ password = validation_info.data.get("sql_db_password")
55
+ port = validation_info.data.get("sql_db_port")
56
+ database = validation_info.data.get("sql_db_database")
57
+
58
+ return generate_sqlalchemy_url(
59
+ base="postgresql+asyncpg",
60
+ user=user,
61
+ password=password,
62
+ port=port,
63
+ database=database
64
+ )
38
65
 
39
66
  sql_db_echo: bool = False
40
67
 
@@ -16,6 +16,7 @@ def get_base_dbm() -> type[BaseDBM]:
16
16
  def create_sqlalchemy_db() -> SQLAlchemyDB:
17
17
  return SQLAlchemyDB(
18
18
  db_url=get_cached_settings().sql_db_url,
19
+ async_db_url=get_cached_settings().async_sql_db_url,
19
20
  db_echo=get_cached_settings().sql_db_echo,
20
21
  base_dbm=get_base_dbm()
21
22
  )
@@ -3,6 +3,7 @@ import asyncio
3
3
  import logging
4
4
  from datetime import timedelta, datetime
5
5
  from typing import Any
6
+ from urllib.parse import quote_plus
6
7
  from uuid import uuid4
7
8
 
8
9
  from sqlalchemy import create_engine, QueuePool, text, func, inspect, AsyncAdaptedQueuePool
@@ -23,37 +24,98 @@ def get_string_info_from_declarative_base(class_: type[DeclarativeBase]):
23
24
  return res
24
25
 
25
26
 
27
+ def generate_sqlalchemy_url(
28
+ *,
29
+ base: str = "postgresql",
30
+ user: str | None = None,
31
+ password: str | None = None,
32
+ host: str = "127.0.0.1",
33
+ port: int | None = None,
34
+ database: str | None = None,
35
+ **query_params
36
+ ) -> str:
37
+ """
38
+ Генерация URL для SQLAlchemy.
39
+
40
+ :param base: Базовая строка для подключения, например "postgresql+asyncpg" или "sqlite".
41
+ :param user: Имя пользователя (необязательно).
42
+ :param password: Пароль (необязательно).
43
+ :param host: Хост (по умолчанию "127.0.0.1").
44
+ :param port: Порт (необязательно).
45
+ :param database: Имя базы данных или путь к файлу для SQLite (необязательно).
46
+ :param query_params: Дополнительные параметры строки подключения.
47
+ :return: Строка подключения для SQLAlchemy.
48
+ """
49
+ # Формируем часть с авторизацией
50
+ auth_part = ""
51
+ if user and password:
52
+ auth_part = f"{quote_plus(user)}:{quote_plus(password)}@"
53
+ elif user:
54
+ auth_part = f"{quote_plus(user)}@"
55
+
56
+ # Формируем часть с хостом и портом
57
+ host_part = ""
58
+ if base.startswith("sqlite"):
59
+ # Для SQLite хост и порт не нужны
60
+ host_part = ""
61
+ else:
62
+ host_part = f"{host}"
63
+ if port:
64
+ host_part += f":{port}"
65
+
66
+ # Формируем часть с базой данных
67
+ database_part = f"/{database}" if database else ""
68
+ if base.startswith("sqlite") and database:
69
+ # Для SQLite путь указывается как абсолютный
70
+ database_part = f"/{database}"
71
+
72
+ # Дополнительные параметры
73
+ query_part = ""
74
+ if query_params:
75
+ query_items = [f"{key}={quote_plus(str(value))}" for key, value in query_params.items()]
76
+ query_part = f"?{'&'.join(query_items)}"
77
+
78
+ return f"{base}://{auth_part}{host_part}{database_part}{query_part}"
79
+
80
+
26
81
  class SQLAlchemyDB:
27
82
  def __init__(
28
83
  self,
29
84
  *,
30
- db_url: str = "postgresql://arpakitlib:arpakitlib@localhost:50517/arpakitlib",
31
- async_db_url: str = "postgresql+asyncpg://arpakitlib:arpakitlib@localhost:50517/arpakitlib",
85
+ db_url: str | None = "postgresql://arpakitlib:arpakitlib@localhost:50517/arpakitlib",
86
+ async_db_url: str | None = "postgresql+asyncpg://arpakitlib:arpakitlib@localhost:50517/arpakitlib",
32
87
  db_echo: bool = False,
33
88
  base_dbm: type[BaseDBM] | None = None,
34
89
  db_models: list[Any] | None = None,
35
90
  ):
36
- self._logger = logging.getLogger(self.__class__.__name__)
37
- self.engine = create_engine(
38
- url=db_url,
39
- echo=db_echo,
40
- pool_size=10,
41
- max_overflow=10,
42
- poolclass=QueuePool,
43
- pool_timeout=timedelta(seconds=30).total_seconds(),
44
- )
91
+ self._logger = logging.getLogger()
92
+
93
+ self.db_url = db_url
94
+ if self.db_url is not None:
95
+ self.engine = create_engine(
96
+ url=db_url,
97
+ echo=db_echo,
98
+ pool_size=10,
99
+ max_overflow=10,
100
+ poolclass=QueuePool,
101
+ pool_timeout=timedelta(seconds=30).total_seconds(),
102
+ )
45
103
  self.sessionmaker = sessionmaker(bind=self.engine)
46
104
  self.func_new_session_counter = 0
47
- self.async_engine = create_async_engine(
48
- url=async_db_url,
49
- echo=db_echo,
50
- pool_size=10,
51
- max_overflow=10,
52
- poolclass=AsyncAdaptedQueuePool,
53
- pool_timeout=timedelta(seconds=30).total_seconds()
54
- )
105
+
106
+ self.async_db_url = async_db_url
107
+ if self.async_db_url is not None:
108
+ self.async_engine = create_async_engine(
109
+ url=async_db_url,
110
+ echo=db_echo,
111
+ pool_size=10,
112
+ max_overflow=10,
113
+ poolclass=AsyncAdaptedQueuePool,
114
+ pool_timeout=timedelta(seconds=30).total_seconds()
115
+ )
55
116
  self.async_sessionmaker = async_sessionmaker(bind=self.async_engine)
56
117
  self.func_new_async_session_counter = 0
118
+
57
119
  self.base_dbm = base_dbm
58
120
 
59
121
  def is_table_exists(self, table_name: str) -> bool:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "arpakitlib"
3
- version = "1.7.243"
3
+ version = "1.7.245"
4
4
  description = "arpakitlib"
5
5
  authors = [
6
6
  { name = "arpakit", email = "arpakit@gmail.com" },
@@ -56,6 +56,8 @@ dependencies = [
56
56
  "cryptography (>=44.0.0,<45.0.0)",
57
57
  "pika (>=1.3.2,<2.0.0)",
58
58
  "aio-pika (>=9.5.4,<10.0.0)",
59
+ "scipy (>=1.15.1,<2.0.0)",
60
+ "pulp (>=2.9.0,<3.0.0)",
59
61
  ]
60
62
 
61
63
 
File without changes
File without changes