arpakitlib 1.7.253__tar.gz → 1.7.256__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 (238) hide show
  1. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/PKG-INFO +1 -1
  2. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/alembic/env.py +4 -2
  3. arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/example.env +32 -0
  4. arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/manage/docker_run_postgres.sh +5 -0
  5. arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/api/create_api_app.py +43 -0
  6. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/event.py +4 -6
  7. arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/api/util.py +44 -0
  8. arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/json_db/_drop_json_db.py +13 -0
  9. arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/json_db/_init_json_db.py +11 -0
  10. arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/json_db/_reinit_json_db.py +13 -0
  11. arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/json_db/_rm_all_records_in_json_db.py +13 -0
  12. arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/json_db/json_db.py +11 -0
  13. arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/json_db/util.py +17 -0
  14. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/operation_execution/_start_operation_executor_worker.py +1 -1
  15. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/operation_execution/_start_scheduled_operation_creator_worker.py +1 -1
  16. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/_check_conn_sqlalchemy_db.py +1 -1
  17. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/_drop_sqlalchemy_db.py +1 -1
  18. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/_init_sqlalchemy_db.py +1 -1
  19. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/_reinit_sqlalchemy_db.py +1 -1
  20. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/_remove_operations.py +1 -1
  21. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/_remove_story_logs.py +1 -1
  22. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/util.py +4 -4
  23. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/event.py +8 -2
  24. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/start_tg_bot.py +1 -2
  25. arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot/util.py +44 -0
  26. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_aiogram_util.py +5 -17
  27. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_arpakitlib_cli_util.py +5 -3
  28. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_util.py +2 -2
  29. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_json_db_util.py +7 -5
  30. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_operation_execution_util.py +2 -0
  31. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_settings_util.py +68 -51
  32. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_sqlalchemy_util.py +6 -22
  33. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/pyproject.toml +1 -1
  34. arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/example.env +0 -23
  35. arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/manage/docker_run_postgres.sh +0 -5
  36. arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/api/create_api_app.py +0 -68
  37. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/LICENSE +0 -0
  38. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/README.md +0 -0
  39. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/__init__.py +0 -0
  40. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/.gitignore +0 -0
  41. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/.python-version +0 -0
  42. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/ARPAKITLIB +0 -0
  43. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/LICENSE +0 -0
  44. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/README.md +0 -0
  45. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/alembic/README +0 -0
  46. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/alembic/script.py.mako +0 -0
  47. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/alembic.ini +0 -0
  48. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/__init__.py +0 -0
  49. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/alembic_upgrade_head .sh +0 -0
  50. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/docker_ps.sh +0 -0
  51. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/docker_ps_a.sh +0 -0
  52. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/docker_rm_postgres.sh +0 -0
  53. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/docker_start_postgres.sh +0 -0
  54. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/docker_stop_postgres.sh +0 -0
  55. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_branch.sh +0 -0
  56. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_commit.sh +0 -0
  57. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_github_1.sh +0 -0
  58. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_gitlab_1.sh +0 -0
  59. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_github_1.sh +0 -0
  60. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_gitlab_1.sh +0 -0
  61. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_remote_v.sh +0 -0
  62. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_set_arpakit_company_origin.sh +0 -0
  63. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_set_arpakit_origin.sh +0 -0
  64. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_status.sh +0 -0
  65. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/hello_world.py +0 -0
  66. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/json_beautify.py +0 -0
  67. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/note/__init__.py +0 -0
  68. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/note/note_1.txt +0 -0
  69. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/note/note_2.txt +0 -0
  70. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/note/note_3.txt +0 -0
  71. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/note/note_4.txt +0 -0
  72. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/note/note_5.txt +0 -0
  73. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_add_plugin_export.sh +0 -0
  74. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_check.sh +0 -0
  75. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_clear_cache.sh +0 -0
  76. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_config.sh +0 -0
  77. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_config_virtualenvs_in_project_true.sh +0 -0
  78. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_install.sh +0 -0
  79. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_lock.sh +0 -0
  80. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_remove_and_add_arpakitlib.sh +0 -0
  81. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_self_add_plugin_export.sh +0 -0
  82. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_show.sh +0 -0
  83. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_show_arpakitlib.sh +0 -0
  84. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_update.sh +0 -0
  85. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_update_arpakitlib.sh +0 -0
  86. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/resource/__init__.py +0 -0
  87. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/resource/static/__init__.py +0 -0
  88. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/resource/static/healthcheck +0 -0
  89. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/resource/static/helloworld +0 -0
  90. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/__init__.py +0 -0
  91. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/additional_model/__init__.py +0 -0
  92. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/additional_model/additional_model.py +0 -0
  93. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/admin1/__init__.py +0 -0
  94. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/admin1/add_admin_in_app.py +0 -0
  95. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/admin1/admin_auth.py +0 -0
  96. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/admin1/model_view.py +0 -0
  97. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/__init__.py +0 -0
  98. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/_start_api_with_reload.py +0 -0
  99. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/_start_api_without_reload.py +0 -0
  100. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/asgi.py +0 -0
  101. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/auth.py +0 -0
  102. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/const.py +0 -0
  103. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/create_handle_exception_.py +0 -0
  104. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/router/__init__.py +0 -0
  105. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/router/main_router.py +0 -0
  106. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/router/v1/__init__.py +0 -0
  107. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/router/v1/get_api_error_info.py +0 -0
  108. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/router/v1/main_router.py +0 -0
  109. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/schema/__init__.py +0 -0
  110. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/schema/v1/__init__.py +0 -0
  111. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/schema/v1/in_.py +0 -0
  112. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/schema/v1/out.py +0 -0
  113. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/transmitted_api_data.py +0 -0
  114. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/business_service/__init__.py +0 -0
  115. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/business_service/hello_world.py +0 -0
  116. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/core/__init__.py +0 -0
  117. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/core/_check_logging.py +0 -0
  118. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/core/_generate_settings_env_example.py +0 -0
  119. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/core/_show_settings.py +0 -0
  120. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/core/const.py +0 -0
  121. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/core/settings.py +0 -0
  122. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/core/util.py +0 -0
  123. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/just_script → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/json_db}/__init__.py +0 -0
  124. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/operation_execution → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/just_script}/__init__.py +0 -0
  125. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/just_script/example.py +0 -0
  126. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sandbox → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/operation_execution}/__init__.py +0 -0
  127. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/operation_execution/const.py +0 -0
  128. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/operation_execution/operation_executor.py +0 -0
  129. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/operation_execution/scheduled_operations.py +0 -0
  130. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/operation_execution/util.py +0 -0
  131. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sandbox}/__init__.py +0 -0
  132. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/sandbox/sandbox_1.py +0 -0
  133. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/sandbox/sandbox_2.py +0 -0
  134. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/sandbox/sandbox_3.py +0 -0
  135. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/sandbox/sandbox_4.py +0 -0
  136. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/sandbox/sandbox_5.py +0 -0
  137. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/sandbox/sandbox_6.py +0 -0
  138. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/sandbox/sandbox_7.py +0 -0
  139. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/test_data → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/__init__.py +0 -0
  140. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/const.py +0 -0
  141. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/sqlalchemy_model.py +0 -0
  142. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/tg_bot → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/test_data}/__init__.py +0 -0
  143. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_1.py +0 -0
  144. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_2.py +0 -0
  145. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_3.py +0 -0
  146. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_4.py +0 -0
  147. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_5.py +0 -0
  148. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/tg_bot/blank → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot}/__init__.py +0 -0
  149. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/tg_bot/filter → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot/blank}/__init__.py +0 -0
  150. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/blank/blank.py +0 -0
  151. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/blank/util.py +0 -0
  152. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/const.py +0 -0
  153. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/tg_bot/handler → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot/filter}/__init__.py +0 -0
  154. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/filter/not_prod_mode.py +0 -0
  155. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/filter/prod_mode.py +0 -0
  156. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/tg_bot/kb → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot/handler}/__init__.py +0 -0
  157. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/handler/cmd_arpakitlib.py +0 -0
  158. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/handler/cmd_healthcheck.py +0 -0
  159. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/tg_bot/kb/inline_ → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot/kb}/__init__.py +0 -0
  160. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/tg_bot/kb/static_ → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot/kb/inline_}/__init__.py +0 -0
  161. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/kb/inline_/callback.py +0 -0
  162. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/kb/inline_/common.py +0 -0
  163. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/tg_bot/middleware → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot/kb/static_}/__init__.py +0 -0
  164. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/kb/static_/common.py +0 -0
  165. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/tg_bot/router → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot/middleware}/__init__.py +0 -0
  166. {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/util → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot/router}/__init__.py +0 -0
  167. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/router/error.py +0 -0
  168. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/router/router.py +0 -0
  169. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/transmitted_tg_data.py +0 -0
  170. arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/api/util.py → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/util/__init__.py +0 -0
  171. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_additional_model_util.py +0 -0
  172. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_api_key_util.py +0 -0
  173. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_arpakit_lib_module_util.py +0 -0
  174. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_arpakit_project_template_util.py +1 -1
  175. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_arpakit_schedule_uust_api_client_util.py +0 -0
  176. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_arpakit_schedule_uust_site_util.py +0 -0
  177. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_base64_util.py +0 -0
  178. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_base_worker_util.py +0 -0
  179. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_blank_util.py +0 -0
  180. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_cache_file_util.py +0 -0
  181. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_class_util.py +0 -0
  182. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_cryptomus_api_client_util.py +0 -0
  183. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_datetime_util.py +0 -0
  184. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_dict_util.py +0 -0
  185. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_dream_ai_api_client_util.py +0 -0
  186. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_encrypt_decrypt_util.py +0 -0
  187. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_enumeration_util.py +0 -0
  188. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_exception_util.py +0 -0
  189. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/healthcheck +0 -0
  190. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/redoc/redoc.standalone.js +0 -0
  191. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/favicon-16x16.png +0 -0
  192. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/favicon-32x32.png +0 -0
  193. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/index.css +0 -0
  194. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/index.html +0 -0
  195. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/oauth2-redirect.html +0 -0
  196. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-initializer.js +0 -0
  197. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-bundle.js +0 -0
  198. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-bundle.js.map +0 -0
  199. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle-core.js +0 -0
  200. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle-core.js.map +0 -0
  201. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle.js +0 -0
  202. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle.js.map +0 -0
  203. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-standalone-preset.js +0 -0
  204. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-standalone-preset.js.map +0 -0
  205. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css +0 -0
  206. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css.map +0 -0
  207. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js +0 -0
  208. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js.map +0 -0
  209. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_file_storage_in_dir_util.py +0 -0
  210. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_file_util.py +0 -0
  211. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_func_util.py +0 -0
  212. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_hash_util.py +0 -0
  213. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_http_request_util.py +0 -0
  214. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_ip_util.py +0 -0
  215. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_json_util.py +0 -0
  216. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_jwt_util.py +0 -0
  217. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_list_of_dicts_to_xlsx.py +0 -0
  218. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_list_util.py +0 -0
  219. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_logging_util.py +0 -0
  220. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_mongodb_util.py +0 -0
  221. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_need_type_util.py +0 -0
  222. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_openai_api_client_util.py +0 -0
  223. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_parse_command.py +0 -0
  224. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_postgresql_util.py +0 -0
  225. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_rat_func_util.py +0 -0
  226. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_retry_func_util.py +0 -0
  227. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_run_cmd_util.py +0 -0
  228. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_schedule_uust_api_client_util.py +0 -0
  229. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_sleep_util.py +0 -0
  230. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_sqladmin_util.py +0 -0
  231. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_sqlalchemy_model_util.py +0 -0
  232. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_ssh_runner_util.py +0 -0
  233. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_steam_payment_api_client_util.py +0 -0
  234. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_str_util.py +0 -0
  235. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_type_util.py +0 -0
  236. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_wata_api_client.py +0 -0
  237. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_yookassa_api_client_util.py +0 -0
  238. {arpakitlib-1.7.253 → arpakitlib-1.7.256}/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.253
3
+ Version: 1.7.256
4
4
  Summary: arpakitlib
5
5
  License: Apache-2.0
6
6
  Keywords: arpakitlib,arpakit,arpakit-company,arpakitcompany,arpakit_company
@@ -4,14 +4,16 @@ from alembic import context
4
4
  from sqlalchemy import engine_from_config
5
5
  from sqlalchemy import pool
6
6
 
7
+ from arpakitlib.ar_type_util import raise_for_type
7
8
  from src.core.settings import get_cached_settings
8
- from src.sql_db.util import get_base_dbm
9
+ from src.sqlalchemy_db.util import get_base_dbm
9
10
 
10
11
  # this is the Alembic Config object, which provides
11
12
  # access to the values within the .ini file in use.
12
13
  config = context.config
13
14
 
14
- config.set_section_option("alembic", "sqlalchemy.url", get_cached_settings().sync_sql_db_url)
15
+ raise_for_type(get_cached_settings().sqlalchemy_sync_db_url, str)
16
+ config.set_section_option("alembic", "sqlalchemy.url", get_cached_settings().sqlalchemy_sync_db_url)
15
17
 
16
18
  # Interpret the config file for Python logging.
17
19
  # This line sets up loggers basically.
@@ -0,0 +1,32 @@
1
+ # mode_type=
2
+ # project_name=
3
+ # sqlalchemy_db_user=
4
+ # sqlalchemy_db_password=
5
+ # sqlalchemy_db_host=
6
+ # sqlalchemy_db_port=
7
+ # sqlalchemy_db_database=
8
+ # sqlalchemy_sync_db_url=
9
+ # sqlalchemy_async_db_url=
10
+ # sqlalchemy_db_echo=
11
+ # api_port=
12
+ # api_init_sqlalchemy_db=
13
+ # api_init_json_db=
14
+ # api_logging__api_func_before_in_handle_exception=
15
+ # api_story_log__api_func_before_in_handle_exception=
16
+ # api_correct_api_key=
17
+ # api_correct_token=
18
+ # api_enable_admin1=
19
+ # api_start_operation_executor_worker=
20
+ # api_start_scheduled_operation_creator_worker=
21
+ # admin1_secret_key=
22
+ # tg_bot_token=
23
+ # tg_bot_proxy_url=
24
+ # tg_bot_init_sqlalchemy_db=
25
+ # tg_bot_init_json_db=
26
+ # var_dirpath=
27
+ # log_filepath=
28
+ # cache_dirpath=
29
+ # media_dirpath=
30
+ # dump_dirpath=
31
+ # local_timezone=
32
+ # json_db_dirpath=
@@ -0,0 +1,5 @@
1
+ cd ..
2
+ source .env
3
+ docker rm ${project_name}_postgres
4
+ docker run --name ${project_name}_postgres -d -p ${sqlalchemy_db_port}:5432 -e POSTGRES_USER=${sqlalchemy_db_user} -e POSTGRES_PASSWORD=${sqlalchemy_db_password} -e POSTGRES_DB=${sqlalchemy_db_database} postgres:16 -c max_connections=100
5
+ docker start ${project_name}_postgres
@@ -0,0 +1,43 @@
1
+ from fastapi import FastAPI
2
+
3
+ from arpakitlib.ar_fastapi_util import create_fastapi_app
4
+ from src.api.create_handle_exception_ import create_handle_exception_
5
+ from src.api.event import get_startup_api_events, get_shutdown_api_events
6
+ from src.api.router.main_router import main_api_router
7
+ from src.api.util import get_transmitted_api_data
8
+ from src.core.const import ProjectPaths
9
+ from src.core.util import setup_logging
10
+
11
+
12
+ def create_api_app() -> FastAPI:
13
+ setup_logging()
14
+
15
+ transmitted_api_data = get_transmitted_api_data()
16
+
17
+ handle_exception_ = create_handle_exception_(transmitted_api_data=transmitted_api_data)
18
+
19
+ startup_api_events = get_startup_api_events(transmitted_api_data=transmitted_api_data)
20
+
21
+ shutdown_api_events = get_shutdown_api_events(transmitted_api_data=transmitted_api_data)
22
+
23
+ api_app = create_fastapi_app(
24
+ title=transmitted_api_data.settings.project_name,
25
+ description=transmitted_api_data.settings.project_name,
26
+ handle_exception_=handle_exception_,
27
+ startup_api_events=startup_api_events,
28
+ shutdown_api_events=shutdown_api_events,
29
+ transmitted_api_data=transmitted_api_data,
30
+ main_api_router=main_api_router,
31
+ media_dirpath=transmitted_api_data.settings.media_dirpath,
32
+ static_dirpath=ProjectPaths.static_dirpath
33
+ )
34
+
35
+ if transmitted_api_data.settings.api_enable_admin1:
36
+ from src.admin1.add_admin_in_app import add_admin1_in_app
37
+ add_admin1_in_app(app=api_app)
38
+
39
+ return api_app
40
+
41
+
42
+ if __name__ == '__main__':
43
+ create_api_app()
@@ -1,8 +1,6 @@
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
5
- from arpakitlib.ar_type_util import raise_for_type
6
4
  from src.api.transmitted_api_data import TransmittedAPIData
7
5
  from src.operation_execution.operation_executor import OperationExecutor
8
6
  from src.operation_execution.scheduled_operations import SCHEDULED_OPERATIONS
@@ -28,12 +26,13 @@ class StartupAPIEvent(BaseStartupAPIEvent):
28
26
  if self.transmitted_api_data.dump_file_storage_in_dir is not None:
29
27
  self.transmitted_api_data.dump_file_storage_in_dir.init()
30
28
 
31
- if self.transmitted_api_data.settings.api_init_sql_db_at_start:
32
- raise_for_type(self.transmitted_api_data.sqlalchemy_db, SQLAlchemyDb)
29
+ if self.transmitted_api_data.settings.api_init_sqlalchemy_db:
33
30
  self.transmitted_api_data.sqlalchemy_db.init()
34
31
 
32
+ if self.transmitted_api_data.settings.api_init_json_db:
33
+ self.transmitted_api_data.json_db.init()
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)
37
36
  _ = safe_run_worker_in_background(
38
37
  worker=OperationExecutorWorker(
39
38
  sqlalchemy_db=self.transmitted_api_data.sqlalchemy_db,
@@ -44,7 +43,6 @@ class StartupAPIEvent(BaseStartupAPIEvent):
44
43
  )
45
44
 
46
45
  if self.transmitted_api_data.settings.api_start_scheduled_operation_creator_worker: # TODO
47
- raise_for_type(self.transmitted_api_data.sqlalchemy_db, SQLAlchemyDb)
48
46
  _ = safe_run_worker_in_background(
49
47
  worker=ScheduledOperationCreatorWorker(
50
48
  sqlalchemy_db=self.transmitted_api_data.sqlalchemy_db,
@@ -0,0 +1,44 @@
1
+ from functools import lru_cache
2
+
3
+ from src.api.transmitted_api_data import TransmittedAPIData
4
+ from src.core.settings import get_cached_settings
5
+ from src.core.util import get_cached_media_file_storage_in_dir, get_cached_cache_file_storage_in_dir, \
6
+ get_cached_dump_file_storage_in_dir
7
+ from src.json_db.util import get_json_db
8
+ from src.sqlalchemy_db.util import get_cached_sqlalchemy_db
9
+
10
+
11
+ def create_transmitted_api_data() -> TransmittedAPIData:
12
+ settings = get_cached_settings()
13
+
14
+ sqlalchemy_db = get_cached_sqlalchemy_db() if settings.sqlalchemy_sync_db_url is not None else None
15
+
16
+ json_db = get_json_db() if settings.json_db_dirpath is not None else None
17
+
18
+ media_file_storage_in_dir = (
19
+ get_cached_media_file_storage_in_dir() if settings.media_dirpath is not None else None
20
+ )
21
+
22
+ cache_file_storage_in_dir = (
23
+ get_cached_cache_file_storage_in_dir() if settings.cache_dirpath is not None else None
24
+ )
25
+
26
+ dump_file_storage_in_dir = (
27
+ get_cached_dump_file_storage_in_dir() if settings.dump_dirpath is not None else None
28
+ )
29
+
30
+ transmitted_api_data = TransmittedAPIData(
31
+ sqlalchemy_db=sqlalchemy_db,
32
+ json_db=json_db,
33
+ media_file_storage_in_dir=media_file_storage_in_dir,
34
+ cache_file_storage_in_dir=cache_file_storage_in_dir,
35
+ dump_file_storage_in_dir=dump_file_storage_in_dir,
36
+ settings=settings
37
+ )
38
+
39
+ return transmitted_api_data
40
+
41
+
42
+ @lru_cache()
43
+ def get_transmitted_api_data() -> TransmittedAPIData:
44
+ return create_transmitted_api_data()
@@ -0,0 +1,13 @@
1
+ from src.core.settings import get_cached_settings
2
+ from src.core.util import setup_logging
3
+ from src.json_db.util import get_json_db
4
+
5
+
6
+ def _init_json_db():
7
+ setup_logging()
8
+ get_cached_settings().raise_if_mode_type_prod()
9
+ get_json_db().drop()
10
+
11
+
12
+ if __name__ == '__main__':
13
+ _init_json_db()
@@ -0,0 +1,11 @@
1
+ from src.core.util import setup_logging
2
+ from src.json_db.util import get_json_db
3
+
4
+
5
+ def _init_json_db():
6
+ setup_logging()
7
+ get_json_db().init()
8
+
9
+
10
+ if __name__ == '__main__':
11
+ _init_json_db()
@@ -0,0 +1,13 @@
1
+ from src.core.settings import get_cached_settings
2
+ from src.core.util import setup_logging
3
+ from src.json_db.util import get_json_db
4
+
5
+
6
+ def _init_json_db():
7
+ setup_logging()
8
+ get_cached_settings().raise_if_mode_type_prod()
9
+ get_json_db().reinit()
10
+
11
+
12
+ if __name__ == '__main__':
13
+ _init_json_db()
@@ -0,0 +1,13 @@
1
+ from src.core.settings import get_cached_settings
2
+ from src.core.util import setup_logging
3
+ from src.json_db.util import get_json_db
4
+
5
+
6
+ def _init_json_db():
7
+ setup_logging()
8
+ get_cached_settings().raise_if_mode_type_prod()
9
+ get_json_db().rm_all_records()
10
+
11
+
12
+ if __name__ == '__main__':
13
+ _init_json_db()
@@ -0,0 +1,11 @@
1
+ import os
2
+
3
+ from arpakitlib.ar_json_db_util import BaseJSONDb
4
+
5
+
6
+ class JSONDb(BaseJSONDb):
7
+ def __init__(self, dirpath: str):
8
+ super().__init__()
9
+ self.story_log = self.create_json_db_file(
10
+ filepath=os.path.join(dirpath, "story_log.json"), use_memory=True, beautify_json=False
11
+ )
@@ -0,0 +1,17 @@
1
+ from functools import lru_cache
2
+
3
+ from src.core.settings import get_cached_settings
4
+ from src.json_db.json_db import JSONDb
5
+
6
+
7
+ def create_json_db() -> JSONDb:
8
+ return JSONDb(
9
+ dirpath=get_cached_settings().json_db_dirpath
10
+ )
11
+
12
+
13
+ @lru_cache()
14
+ def get_json_db() -> JSONDb:
15
+ return JSONDb(
16
+ dirpath=get_cached_settings().json_db_dirpath
17
+ )
@@ -1,7 +1,7 @@
1
1
  from arpakitlib.ar_operation_execution_util import OperationExecutorWorker
2
2
  from src.core.util import setup_logging
3
3
  from src.operation_execution.operation_executor import OperationExecutor
4
- from src.sql_db.util import get_cached_sqlalchemy_db
4
+ from src.sqlalchemy_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
3
  from src.operation_execution.scheduled_operations import SCHEDULED_OPERATIONS
4
- from src.sql_db.util import get_cached_sqlalchemy_db
4
+ from src.sqlalchemy_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.sql_db.util import get_cached_sqlalchemy_db
2
+ from src.sqlalchemy_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.sql_db.util import get_cached_sqlalchemy_db
3
+ from src.sqlalchemy_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.sql_db.util import get_cached_sqlalchemy_db
2
+ from src.sqlalchemy_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.sql_db.util import get_cached_sqlalchemy_db
3
+ from src.sqlalchemy_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.sql_db.util import get_cached_sqlalchemy_db
4
+ from src.sqlalchemy_db.util import get_cached_sqlalchemy_db
5
5
 
6
6
 
7
7
  def _remove_operations():
@@ -1,7 +1,7 @@
1
1
  from arpakitlib.ar_sqlalchemy_model_util import StoryLogDBM
2
2
  from src.core.settings import get_cached_settings
3
3
  from src.core.util import setup_logging
4
- from src.sql_db.util import get_cached_sqlalchemy_db
4
+ from src.sqlalchemy_db.util import get_cached_sqlalchemy_db
5
5
 
6
6
 
7
7
  def _remove_story_logs():
@@ -8,16 +8,16 @@ from src.core.settings import get_cached_settings
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.sql_db.sqlalchemy_model import import_project_sqlalchemy_models
11
+ from src.sqlalchemy_db.sqlalchemy_model import import_project_sqlalchemy_models
12
12
  import_project_sqlalchemy_models()
13
13
  return BaseDBM
14
14
 
15
15
 
16
16
  def create_sqlalchemy_db() -> SQLAlchemyDb:
17
17
  return SQLAlchemyDb(
18
- sync_db_url=get_cached_settings().sync_sql_db_url,
19
- async_db_url=get_cached_settings().async_sql_db_url,
20
- db_echo=get_cached_settings().sql_db_echo,
18
+ sync_db_url=get_cached_settings().sqlalchemy_sync_db_url,
19
+ async_db_url=get_cached_settings().sqlalchemy_async_db_url,
20
+ db_echo=get_cached_settings().sqlalchemy_db_echo,
21
21
  base_dbm=get_base_dbm()
22
22
  )
23
23
 
@@ -9,7 +9,7 @@ class StartupTgBotEvent:
9
9
  self.transmitted_tg_bot_data = transmitted_tg_bot_data
10
10
 
11
11
  async def on_startup(self, *args, **kwargs):
12
- self._logger.info("on_startup start")
12
+ self._logger.info("start")
13
13
 
14
14
  if self.transmitted_tg_bot_data.media_file_storage_in_dir is not None:
15
15
  self.transmitted_tg_bot_data.media_file_storage_in_dir.init()
@@ -20,7 +20,13 @@ class StartupTgBotEvent:
20
20
  if self.transmitted_tg_bot_data.dump_file_storage_in_dir is not None:
21
21
  self.transmitted_tg_bot_data.dump_file_storage_in_dir.init()
22
22
 
23
- self._logger.info("on_startup was done")
23
+ if self.transmitted_tg_bot_data.settings.api_init_sqlalchemy_db:
24
+ self.transmitted_tg_bot_data.sqlalchemy_db.init()
25
+
26
+ if self.transmitted_tg_bot_data.settings.api_init_json_db:
27
+ self.transmitted_tg_bot_data.json_db.init()
28
+
29
+ self._logger.info("finish")
24
30
 
25
31
 
26
32
  class ShutdownTgBotEvent:
@@ -1,11 +1,10 @@
1
- from src.core.settings import get_cached_settings
2
1
  from src.core.util import setup_logging
3
2
 
4
3
 
5
4
  def start_tg_bot():
6
5
  setup_logging()
7
6
 
8
- settings = get_cached_settings()
7
+ # ...
9
8
 
10
9
 
11
10
  if __name__ == '__main__':
@@ -0,0 +1,44 @@
1
+ from functools import lru_cache
2
+
3
+ from src.core.settings import get_cached_settings
4
+ from src.core.util import get_cached_media_file_storage_in_dir, get_cached_cache_file_storage_in_dir, \
5
+ get_cached_dump_file_storage_in_dir
6
+ from src.json_db.util import get_json_db
7
+ from src.sqlalchemy_db.util import get_cached_sqlalchemy_db
8
+ from src.tg_bot.transmitted_tg_data import TransmittedTgData
9
+
10
+
11
+ def create_transmitted_tg_bot_data() -> TransmittedTgData:
12
+ settings = get_cached_settings()
13
+
14
+ sqlalchemy_db = get_cached_sqlalchemy_db() if settings.sqlalchemy_sync_db_url is not None else None
15
+
16
+ json_db = get_json_db() if settings.json_db_dirpath is not None else None
17
+
18
+ media_file_storage_in_dir = (
19
+ get_cached_media_file_storage_in_dir() if settings.media_dirpath is not None else None
20
+ )
21
+
22
+ cache_file_storage_in_dir = (
23
+ get_cached_cache_file_storage_in_dir() if settings.cache_dirpath is not None else None
24
+ )
25
+
26
+ dump_file_storage_in_dir = (
27
+ get_cached_dump_file_storage_in_dir() if settings.dump_dirpath is not None else None
28
+ )
29
+
30
+ transmitted_api_data = TransmittedTgData(
31
+ sqlalchemy_db=sqlalchemy_db,
32
+ json_db=json_db,
33
+ media_file_storage_in_dir=media_file_storage_in_dir,
34
+ cache_file_storage_in_dir=cache_file_storage_in_dir,
35
+ dump_file_storage_in_dir=dump_file_storage_in_dir,
36
+ settings=settings
37
+ )
38
+
39
+ return transmitted_api_data
40
+
41
+
42
+ @lru_cache()
43
+ def get_transmitted_tg_bot_data() -> TransmittedTgData:
44
+ return create_transmitted_tg_bot_data()
@@ -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, Dispatcher
7
+ from aiogram import types, Bot
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
@@ -14,10 +14,10 @@ from aiogram.filters.callback_data import CallbackData
14
14
  from pydantic import BaseModel, ConfigDict
15
15
 
16
16
  from arpakitlib.ar_file_storage_in_dir_util import FileStorageInDir
17
- from arpakitlib.ar_json_db_util import JSONDb
17
+ from arpakitlib.ar_json_db_util import BaseJSONDb
18
18
  from arpakitlib.ar_need_type_util import parse_need_type, NeedTypes
19
19
  from arpakitlib.ar_parse_command import BadCommandFormat, parse_command
20
- from arpakitlib.ar_settings_util import SimpleSettings, BaseSettings2
20
+ from arpakitlib.ar_settings_util import BaseSettings2
21
21
  from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDb
22
22
  from arpakitlib.ar_type_util import raise_for_types, raise_for_type
23
23
 
@@ -325,7 +325,7 @@ class SimpleTransmittedTgBotData(BaseTransmittedTgBotData):
325
325
 
326
326
  class AdvancedTransmittedTgBotData(SimpleTransmittedTgBotData):
327
327
  sqlalchemy_db: SQLAlchemyDb | None = None
328
- json_db: JSONDb | None = None
328
+ json_db: BaseJSONDb | None = None
329
329
  media_file_storage_in_dir: FileStorageInDir | None = None
330
330
  cache_file_storage_in_dir: FileStorageInDir | None = None
331
331
  dump_file_storage_in_dir: FileStorageInDir | None = None
@@ -334,7 +334,7 @@ class AdvancedTransmittedTgBotData(SimpleTransmittedTgBotData):
334
334
  def create_aiogram_tg_bot(*, token: str, proxy_url_: str | None = None, **kwargs) -> Bot:
335
335
  kwargs["token"] = token
336
336
 
337
- if proxy_url_:
337
+ if proxy_url_ is not None:
338
338
  kwargs["session"] = AiohttpSession(proxy=proxy_url_)
339
339
 
340
340
  if kwargs.get("default") is None:
@@ -349,18 +349,6 @@ def create_aiogram_tg_bot(*, token: str, proxy_url_: str | None = None, **kwargs
349
349
  return tg_bot
350
350
 
351
351
 
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
- # )
362
-
363
-
364
352
  def __example():
365
353
  pass
366
354
 
@@ -27,10 +27,12 @@ def execute_arpakitlib_cli(*, full_command: str | None = None):
27
27
  print("Commands:")
28
28
  print()
29
29
  print("-c init_arpakit_project_template")
30
- print("-project_dirpath ...")
31
30
  print("-overwrite_if_exists ...")
32
31
  print("-ignore_paths_startswith ...")
33
32
  print("-only_paths_startswith ...")
33
+ print("-param1 ...")
34
+ print("-param2 ...")
35
+ print("-param3 ...")
34
36
  print("\n")
35
37
 
36
38
  elif command == "init_arpakit_project_template":
@@ -54,9 +56,9 @@ def execute_arpakitlib_cli(*, full_command: str | None = None):
54
56
  init_arpakit_project_template(
55
57
  project_dirpath=project_dirpath,
56
58
  overwrite_if_exists=overwrite_if_exists,
57
- params=params,
58
59
  ignore_paths_startswith=ignore_paths_startswith,
59
- only_paths_startswith=only_paths_startswith
60
+ only_paths_startswith=only_paths_startswith,
61
+ params=params,
60
62
  )
61
63
 
62
64
  else:
@@ -31,7 +31,7 @@ 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
+ from arpakitlib.ar_json_db_util import BaseJSONDb
35
35
  from arpakitlib.ar_json_util import safely_transfer_obj_to_json_str_to_json_obj, safely_transfer_obj_to_json_str
36
36
  from arpakitlib.ar_settings_util import BaseSettings2
37
37
  from arpakitlib.ar_sqlalchemy_model_util import StoryLogDBM, OperationDBM
@@ -538,7 +538,7 @@ class SimpleTransmittedAPIData(BaseTransmittedAPIData):
538
538
 
539
539
  class AdvancedTransmittedAPIData(SimpleTransmittedAPIData):
540
540
  sqlalchemy_db: SQLAlchemyDb | None = None
541
- json_db: JSONDb | None = None
541
+ json_db: BaseJSONDb | None = None
542
542
  media_file_storage_in_dir: FileStorageInDir | None = None
543
543
  cache_file_storage_in_dir: FileStorageInDir | None = None
544
544
  dump_file_storage_in_dir: FileStorageInDir | None = None
@@ -13,7 +13,7 @@ _ARPAKIT_LIB_MODULE_VERSION = "3.0"
13
13
 
14
14
  class JSONDbFile:
15
15
 
16
- def __init__(self, *, filepath: str, use_memory: bool = True, beautify_json: bool = True):
16
+ def __init__(self, *, filepath: str, use_memory: bool = True, beautify_json: bool = True, **kwargs):
17
17
  self._logger = logging.getLogger(self.__class__.__name__)
18
18
  raise_for_type(filepath, str)
19
19
  filepath = os.path.abspath(filepath.strip())
@@ -173,9 +173,9 @@ class JSONDbFile:
173
173
  os.remove(self.filepath)
174
174
 
175
175
 
176
- class JSONDb:
176
+ class BaseJSONDb:
177
177
 
178
- def __init__(self, json_db_files: Optional[list[JSONDbFile]] = None):
178
+ def __init__(self, json_db_files: list[JSONDbFile] | None = None, **kwargs):
179
179
  self._logger = logging.getLogger(self.__class__.__name__)
180
180
  if json_db_files is None:
181
181
  json_db_files = []
@@ -190,7 +190,9 @@ class JSONDb:
190
190
  def __len__(self) -> int:
191
191
  return len(self.json_db_files)
192
192
 
193
- def create_json_db_file(self, filepath: str, use_memory: bool = False, beautify_json: bool = False) -> JSONDbFile:
193
+ def create_json_db_file(
194
+ self, filepath: str, use_memory: bool = False, beautify_json: bool = False, **kwargs
195
+ ) -> JSONDbFile:
194
196
  json_db_file = JSONDbFile(filepath=filepath, use_memory=use_memory, beautify_json=beautify_json)
195
197
  self.json_db_files.append(json_db_file)
196
198
  return json_db_file
@@ -215,7 +217,7 @@ class JSONDb:
215
217
  json_db_file.rm_all_records()
216
218
 
217
219
  def copy_files_to_dir(self, to_dirpath: str) -> Self:
218
- json_db = JSONDb()
220
+ json_db = BaseJSONDb()
219
221
  for json_db_file in self.json_db_files:
220
222
  filepath = os.path.join(to_dirpath, json_db_file.filename)
221
223
  json_db_file.copy(filepath)
@@ -322,6 +322,7 @@ class OperationExecutorWorker(BaseWorker):
322
322
  timeout_after_err_in_run=timedelta(seconds=0.3),
323
323
  startup_funcs=startup_funcs,
324
324
  )
325
+ raise_for_type(sqlalchemy_db, SQLAlchemyDb)
325
326
  self.sqlalchemy_db = sqlalchemy_db
326
327
  if operation_executor is None:
327
328
  operation_executor = BaseOperationExecutor(sqlalchemy_db=sqlalchemy_db)
@@ -393,6 +394,7 @@ class ScheduledOperationCreatorWorker(BaseWorker):
393
394
  timeout_after_err_in_run=timedelta(seconds=0.3),
394
395
  startup_funcs=startup_funcs
395
396
  )
397
+ raise_for_type(sqlalchemy_db, SQLAlchemyDb)
396
398
  self.sqlalchemy_db = sqlalchemy_db
397
399
  if scheduled_operations is None:
398
400
  scheduled_operations = []