arpakitlib 1.8.4__py3-none-any.whl → 1.8.6__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 (240) hide show
  1. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/alembic/env.py +2 -2
  2. arpakitlib/_arpakit_project_template_v_2/arpakitlib_project_template_info.json +3 -0
  3. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/check_logging.py +1 -1
  4. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/check_sqlalchemy_db.py +2 -2
  5. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/drop_json_db.py +3 -3
  6. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/drop_sqlalchemy_db.py +4 -3
  7. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/generate_settings_env_example.py +2 -2
  8. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/init_json_db.py +2 -2
  9. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/init_sqlalchemy_db.py +2 -2
  10. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/reinit_json_db.py +3 -3
  11. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/reinit_sqlalchemy_db.py +3 -3
  12. arpakitlib/_arpakit_project_template_v_2/command/remove_operations.py +13 -0
  13. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/remove_story_logs.py +4 -4
  14. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/rm_all_records_in_json_db.py +3 -3
  15. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/show_settings.py +1 -1
  16. arpakitlib/{_arpakit_project_template_v_1/command/start_api_without_reload.py → _arpakit_project_template_v_2/command/start_api_for_not_prod.py} +3 -3
  17. arpakitlib/_arpakit_project_template_v_2/command/start_api_for_prod.py +19 -0
  18. arpakitlib/{_arpakit_project_template_v_1/command/start_api_with_reload.py → _arpakit_project_template_v_2/command/start_api_with_reload_for_not_prod.py} +3 -3
  19. arpakitlib/_arpakit_project_template_v_2/command/start_operation_executor_worker_for_not_prod.py +15 -0
  20. arpakitlib/{_arpakit_project_template_v_1/command/start_sync_operation_executor_workers.py → _arpakit_project_template_v_2/command/start_operation_executor_workers_for_not_prod.py} +3 -3
  21. arpakitlib/{_arpakit_project_template_v_1/command/start_sync_scheduled_operation_creator_worker.py → _arpakit_project_template_v_2/command/start_scheduled_operation_creator_worker_for_not_prod.py} +2 -2
  22. arpakitlib/_arpakit_project_template_v_2/command/start_tg_bot_for_prod.py +11 -0
  23. arpakitlib/_arpakit_project_template_v_2/project/api/asgi.py +3 -0
  24. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/auth.py +34 -5
  25. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/create_api_app.py +8 -8
  26. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/event.py +8 -8
  27. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/exception.py +2 -2
  28. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/exception_handler.py +7 -7
  29. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/response.py +1 -1
  30. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/router/main_router.py +1 -4
  31. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/router/v1/check_auth.py +2 -2
  32. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/router/v1/clear_log_file.py +6 -7
  33. arpakitlib/{_arpakit_project_template_v_1/api/router/v1/arpakitlib_project_template.py → _arpakit_project_template_v_2/project/api/router/v1/get_arpakitlib_project_template_info.py} +3 -3
  34. arpakitlib/_arpakit_project_template_v_2/project/api/router/v1/get_errors_info.py +33 -0
  35. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/router/v1/get_log_file.py +5 -6
  36. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/router/v1/healthcheck.py +2 -2
  37. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/router/v1/main_router.py +14 -23
  38. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/router/v1/now_utc_datetime.py +1 -1
  39. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/router/v1/raise_fake_error.py +5 -6
  40. arpakitlib/_arpakit_project_template_v_2/project/api/router/v1/reinit_sqlalchemy_db.py +33 -0
  41. arpakitlib/_arpakit_project_template_v_2/project/api/schema/common/in_.py +5 -0
  42. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/schema/common/out.py +1 -1
  43. arpakitlib/_arpakit_project_template_v_2/project/api/schema/v1/in_.py +5 -0
  44. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/schema/v1/out.py +2 -2
  45. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/business_service/hello_world.py +2 -2
  46. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/business_service/remove_operations.py +2 -2
  47. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/core/cache_file_storage_in_dir.py +1 -1
  48. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/core/const.py +8 -4
  49. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/core/dump_file_storage_in_dir.py +1 -1
  50. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/core/jinja2_templates.py +1 -1
  51. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/core/media_file_storage_in_dir.py +1 -1
  52. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/core/settings.py +3 -3
  53. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/core/util.py +1 -1
  54. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/json_db/json_db.py +1 -1
  55. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/operation_execution/operation_executor_worker.py +2 -2
  56. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/operation_execution/scheduled_operation_creator_worker.py +3 -3
  57. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/operation_execution/scheduled_operations.py +2 -2
  58. arpakitlib/_arpakit_project_template_v_2/project/resource/static/helloworld +1 -0
  59. arpakitlib/_arpakit_project_template_v_2/project/resource/static/openapi-favicon.png +0 -0
  60. arpakitlib/_arpakit_project_template_v_2/project/site/asgi.py +3 -0
  61. arpakitlib/_arpakit_project_template_v_2/project/site/create_site_app.py +5 -0
  62. arpakitlib/_arpakit_project_template_v_2/project/site/event.py +19 -0
  63. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sqladmin_/add_admin_in_app.py +4 -4
  64. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sqladmin_/admin_auth.py +1 -1
  65. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sqladmin_/model_view.py +1 -1
  66. arpakitlib/_arpakit_project_template_v_2/project/sqlalchemy_db_/const.py +1 -0
  67. arpakitlib/{_arpakit_project_template_v_1/sqlalchemy_db → _arpakit_project_template_v_2/project/sqlalchemy_db_}/sqlalchemy_db.py +2 -2
  68. arpakitlib/{_arpakit_project_template_v_1/sqlalchemy_db → _arpakit_project_template_v_2/project/sqlalchemy_db_}/sqlalchemy_model.py +7 -4
  69. arpakitlib/_arpakit_project_template_v_2/project/tg_bot/blank/blank.py +24 -0
  70. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/tg_bot/const.py +1 -1
  71. arpakitlib/_arpakit_project_template_v_2/project/tg_bot/event.py +77 -0
  72. arpakitlib/_arpakit_project_template_v_2/project/tg_bot/filter_.py +69 -0
  73. arpakitlib/_arpakit_project_template_v_2/project/tg_bot/kb/inline_/callback.py +37 -0
  74. arpakitlib/_arpakit_project_template_v_2/project/tg_bot/kb/inline_/common.py +15 -0
  75. arpakitlib/_arpakit_project_template_v_2/project/tg_bot/kb/static_/common.py +14 -0
  76. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/tg_bot/middleware/init_user.py +0 -3
  77. arpakitlib/_arpakit_project_template_v_2/project/tg_bot/middleware/middleware.py +12 -0
  78. arpakitlib/_arpakit_project_template_v_2/project/tg_bot/router/arpakitlib_project_template_info.py +14 -0
  79. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/tg_bot/router/error.py +4 -3
  80. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/tg_bot/router/healthcheck.py +3 -2
  81. arpakitlib/_arpakit_project_template_v_2/project/tg_bot/router/main_router.py +12 -0
  82. arpakitlib/_arpakit_project_template_v_2/project/tg_bot/start_tg_bot.py +39 -0
  83. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/tg_bot/tg_bot.py +1 -1
  84. arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/tg_bot/tg_bot_dispatcher.py +5 -4
  85. arpakitlib/_arpakit_project_template_v_2/project/tg_bot/util.py +1 -0
  86. arpakitlib/_arpakit_project_template_v_2/project/util/arpakitlib_project_template.py +17 -0
  87. arpakitlib/ar_aiogram_util.py +3 -123
  88. {arpakitlib-1.8.4.dist-info → arpakitlib-1.8.6.dist-info}/METADATA +1 -1
  89. arpakitlib-1.8.6.dist-info/RECORD +260 -0
  90. arpakitlib/_arpakit_project_template_v_1/api/asgi.py +0 -3
  91. arpakitlib/_arpakit_project_template_v_1/api/router/v1/get_errors_info.py +0 -24
  92. arpakitlib/_arpakit_project_template_v_1/api/schema/common/in_.py +0 -5
  93. arpakitlib/_arpakit_project_template_v_1/api/schema/v1/in_.py +0 -5
  94. arpakitlib/_arpakit_project_template_v_1/arpakitlib_project_template.json +0 -3
  95. arpakitlib/_arpakit_project_template_v_1/command/remove_operations.py +0 -13
  96. arpakitlib/_arpakit_project_template_v_1/command/start_async_operation_executor_worker.py +0 -14
  97. arpakitlib/_arpakit_project_template_v_1/command/start_async_scheduled_operation_creator_worker.py +0 -14
  98. arpakitlib/_arpakit_project_template_v_1/command/start_sync_operation_executor_worker.py +0 -15
  99. arpakitlib/_arpakit_project_template_v_1/operation_execution/const.py +0 -0
  100. arpakitlib/_arpakit_project_template_v_1/resource/static/openapi-favicon.png +0 -0
  101. arpakitlib/_arpakit_project_template_v_1/site/asgi.py +0 -0
  102. arpakitlib/_arpakit_project_template_v_1/site/create_site_app.py +0 -0
  103. arpakitlib/_arpakit_project_template_v_1/site/event.py +0 -0
  104. arpakitlib/_arpakit_project_template_v_1/tg_bot/blank/blank.py +0 -5
  105. arpakitlib/_arpakit_project_template_v_1/tg_bot/blank/util.py +0 -12
  106. arpakitlib/_arpakit_project_template_v_1/tg_bot/event.py +0 -51
  107. arpakitlib/_arpakit_project_template_v_1/tg_bot/filter/not_prod_mode.py +0 -8
  108. arpakitlib/_arpakit_project_template_v_1/tg_bot/filter/prod_mode.py +0 -8
  109. arpakitlib/_arpakit_project_template_v_1/tg_bot/kb/inline_/callback.py +0 -0
  110. arpakitlib/_arpakit_project_template_v_1/tg_bot/kb/inline_/common.py +0 -0
  111. arpakitlib/_arpakit_project_template_v_1/tg_bot/kb/static_/common.py +0 -0
  112. arpakitlib/_arpakit_project_template_v_1/tg_bot/middleware/middleware.py +0 -12
  113. arpakitlib/_arpakit_project_template_v_1/tg_bot/router/arpakitlib_.py +0 -10
  114. arpakitlib/_arpakit_project_template_v_1/tg_bot/router/main_router.py +0 -14
  115. arpakitlib/_arpakit_project_template_v_1/tg_bot/start_tg_bot.py +0 -34
  116. arpakitlib/_arpakit_project_template_v_1/tg_bot/transmitted_tg_data.py +0 -58
  117. arpakitlib/_arpakit_project_template_v_1/tg_bot/util.py +0 -0
  118. arpakitlib/_arpakit_project_template_v_1/util/__init__.py +0 -0
  119. arpakitlib/_arpakit_project_template_v_1/util/read_arpakitlib_project_template_file.py +0 -17
  120. arpakitlib-1.8.4.dist-info/RECORD +0 -262
  121. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/.gitignore +0 -0
  122. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/.python-version +0 -0
  123. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/LICENSE +0 -0
  124. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/README.md +0 -0
  125. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/alembic/README +0 -0
  126. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/alembic/script.py.mako +0 -0
  127. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/alembic.ini +0 -0
  128. /arpakitlib/{_arpakit_project_template_v_1/additional_model → _arpakit_project_template_v_2/command}/__init__.py +0 -0
  129. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/alembic_history.sh +0 -0
  130. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/alembic_revision_autogenerate.sh +0 -0
  131. /arpakitlib/{_arpakit_project_template_v_1/command/alembic_upgrade_head .sh → _arpakit_project_template_v_2/command/alembic_upgrade_head.sh} +0 -0
  132. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/beautify_json.py +0 -0
  133. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/docker_ps_a.sh +0 -0
  134. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/docker_rm_postgres.sh +0 -0
  135. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/docker_run_postgres.sh +0 -0
  136. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/docker_start_postgres.sh +0 -0
  137. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/docker_stop_postgres.sh +0 -0
  138. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_commit.sh +0 -0
  139. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_push_arpakit_company_github_1.sh +0 -0
  140. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_push_arpakit_company_gitlab_1.sh +0 -0
  141. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_push_arpakit_github_1.sh +0 -0
  142. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_push_arpakit_gitlab_1.sh +0 -0
  143. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_remote_v.sh +0 -0
  144. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_set_arpakit_company_origin.sh +0 -0
  145. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_set_arpakit_origin.sh +0 -0
  146. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_set_divarteam_origin.sh +0 -0
  147. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_status.sh +0 -0
  148. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/hello_world.py +0 -0
  149. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_check.sh +0 -0
  150. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_clear_cache.sh +0 -0
  151. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_config.sh +0 -0
  152. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_install.sh +0 -0
  153. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_lock.sh +0 -0
  154. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_remove_and_add_arpakitlib.sh +0 -0
  155. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_show.sh +0 -0
  156. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_show_arpakitlib.sh +0 -0
  157. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_update.sh +0 -0
  158. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_update_arpakitlib.sh +0 -0
  159. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/example.env +0 -0
  160. /arpakitlib/{_arpakit_project_template_v_1/api → _arpakit_project_template_v_2/project}/__init__.py +0 -0
  161. /arpakitlib/{_arpakit_project_template_v_1/api/router → _arpakit_project_template_v_2/project/additional_model}/__init__.py +0 -0
  162. /arpakitlib/{_arpakit_project_template_v_1/additional_model/additional_model.py → _arpakit_project_template_v_2/project/additional_model/common.py} +0 -0
  163. /arpakitlib/{_arpakit_project_template_v_1/api/router/v1 → _arpakit_project_template_v_2/project/api}/__init__.py +0 -0
  164. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/const.py +0 -0
  165. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/openapi_ui.py +0 -0
  166. /arpakitlib/{_arpakit_project_template_v_1/api/schema → _arpakit_project_template_v_2/project/api/router}/__init__.py +0 -0
  167. /arpakitlib/{_arpakit_project_template_v_1/api/schema/common → _arpakit_project_template_v_2/project/api/router/v1}/__init__.py +0 -0
  168. /arpakitlib/{_arpakit_project_template_v_1/api/schema/v1 → _arpakit_project_template_v_2/project/api/schema}/__init__.py +0 -0
  169. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/schema/base_schema.py +0 -0
  170. /arpakitlib/{_arpakit_project_template_v_1/business_service → _arpakit_project_template_v_2/project/api/schema/common}/__init__.py +0 -0
  171. /arpakitlib/{_arpakit_project_template_v_1/celery_ → _arpakit_project_template_v_2/project/api/schema/v1}/__init__.py +0 -0
  172. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/util.py +0 -0
  173. /arpakitlib/{_arpakit_project_template_v_1/command → _arpakit_project_template_v_2/project/business_service}/__init__.py +0 -0
  174. /arpakitlib/{_arpakit_project_template_v_1/core → _arpakit_project_template_v_2/project/celery_}/__init__.py +0 -0
  175. /arpakitlib/{_arpakit_project_template_v_1/json_db → _arpakit_project_template_v_2/project/core}/__init__.py +0 -0
  176. /arpakitlib/{_arpakit_project_template_v_1/note → _arpakit_project_template_v_2/project/json_db}/__init__.py +0 -0
  177. /arpakitlib/{_arpakit_project_template_v_1/resource/static → _arpakit_project_template_v_2/project/more}/helloworld +0 -0
  178. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/note/note_1.txt +0 -0
  179. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/note/note_2.txt +0 -0
  180. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/note/note_3.txt +0 -0
  181. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/note/note_4.txt +0 -0
  182. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/note/note_5.txt +0 -0
  183. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/operation_execution/__init__.py +0 -0
  184. /arpakitlib/{_arpakit_project_template_v_1/sqlalchemy_db → _arpakit_project_template_v_2/project/operation_execution}/const.py +0 -0
  185. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/operation_execution/util.py +0 -0
  186. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/__init__.py +0 -0
  187. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/1 +0 -0
  188. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/healthcheck +0 -0
  189. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/redoc/redoc.standalone.js +0 -0
  190. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/favicon-16x16.png +0 -0
  191. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/favicon-32x32.png +0 -0
  192. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/index.css +0 -0
  193. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/index.html +0 -0
  194. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/oauth2-redirect.html +0 -0
  195. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-initializer.js +0 -0
  196. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui-bundle.js +0 -0
  197. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui-bundle.js.map +0 -0
  198. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui-es-bundle-core.js +0 -0
  199. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui-es-bundle-core.js.map +0 -0
  200. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui-es-bundle.js +0 -0
  201. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui-es-bundle.js.map +0 -0
  202. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui-standalone-preset.js +0 -0
  203. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui-standalone-preset.js.map +0 -0
  204. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui.css +0 -0
  205. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui.css.map +0 -0
  206. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui.js +0 -0
  207. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui.js.map +0 -0
  208. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sandbox/__init__.py +0 -0
  209. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sandbox/sandbox_1.py +0 -0
  210. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sandbox/sandbox_2.py +0 -0
  211. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sandbox/sandbox_3.py +0 -0
  212. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sandbox/sandbox_4.py +0 -0
  213. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sandbox/sandbox_5.py +0 -0
  214. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sandbox/sandbox_6.py +0 -0
  215. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sandbox/sandbox_7.py +0 -0
  216. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/site/__init__.py +0 -0
  217. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/site/consts.py +0 -0
  218. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/site/exception_handler.py +0 -0
  219. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/site/router/__init__.py +0 -0
  220. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/site/router/main_router.py +0 -0
  221. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sqladmin_/__init__.py +0 -0
  222. /arpakitlib/{_arpakit_project_template_v_1/sqlalchemy_db → _arpakit_project_template_v_2/project/sqlalchemy_db_}/__init__.py +0 -0
  223. /arpakitlib/{_arpakit_project_template_v_1/sqlalchemy_db → _arpakit_project_template_v_2/project/sqlalchemy_db_}/util.py +0 -0
  224. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/test_data/__init__.py +0 -0
  225. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/test_data/make_test_data_1.py +0 -0
  226. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/test_data/make_test_data_2.py +0 -0
  227. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/test_data/make_test_data_3.py +0 -0
  228. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/test_data/make_test_data_4.py +0 -0
  229. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/test_data/make_test_data_5.py +0 -0
  230. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/tg_bot/__init__.py +0 -0
  231. /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/tg_bot/blank/__init__.py +0 -0
  232. /arpakitlib/{_arpakit_project_template_v_1/tg_bot/filter → _arpakit_project_template_v_2/project/tg_bot/kb}/__init__.py +0 -0
  233. /arpakitlib/{_arpakit_project_template_v_1/tg_bot/kb → _arpakit_project_template_v_2/project/tg_bot/kb/inline_}/__init__.py +0 -0
  234. /arpakitlib/{_arpakit_project_template_v_1/tg_bot/kb/inline_ → _arpakit_project_template_v_2/project/tg_bot/kb/static_}/__init__.py +0 -0
  235. /arpakitlib/{_arpakit_project_template_v_1/tg_bot/kb/static_ → _arpakit_project_template_v_2/project/tg_bot/middleware}/__init__.py +0 -0
  236. /arpakitlib/{_arpakit_project_template_v_1/tg_bot/middleware → _arpakit_project_template_v_2/project/tg_bot/router}/__init__.py +0 -0
  237. /arpakitlib/{_arpakit_project_template_v_1/tg_bot/router → _arpakit_project_template_v_2/project/util}/__init__.py +0 -0
  238. {arpakitlib-1.8.4.dist-info → arpakitlib-1.8.6.dist-info}/LICENSE +0 -0
  239. {arpakitlib-1.8.4.dist-info → arpakitlib-1.8.6.dist-info}/WHEEL +0 -0
  240. {arpakitlib-1.8.4.dist-info → arpakitlib-1.8.6.dist-info}/entry_points.txt +0 -0
@@ -1,68 +1,59 @@
1
1
  from fastapi import APIRouter
2
2
 
3
- from api.router.v1 import healthcheck, get_errors_info, now_utc_datetime, clear_log_file, get_log_file, \
4
- arpakitlib_project_template
5
- from api.router.v1 import raise_fake_error, check_auth
3
+ from project.api.router.v1 import healthcheck, get_errors_info, now_utc_datetime, clear_log_file, get_log_file, \
4
+ get_arpakitlib_project_template_info, reinit_sqlalchemy_db, check_auth, raise_fake_error
6
5
 
7
6
  main_v1_api_router = APIRouter()
8
7
 
9
- # Healthcheck
10
-
11
8
  main_v1_api_router.include_router(
12
9
  router=healthcheck.api_router,
13
10
  prefix="/healthcheck",
14
11
  tags=["Healthcheck"]
15
12
  )
16
13
 
17
- # arpakitlib_
18
-
19
14
  main_v1_api_router.include_router(
20
- router=arpakitlib_project_template.api_router,
21
- prefix="/arpakitlib",
22
- tags=["arpakitlib"]
15
+ router=get_arpakitlib_project_template_info.api_router,
16
+ prefix="/get_arpakitlib_project_template_info",
17
+ tags=["arpakitlib project template info"]
23
18
  )
24
19
 
25
- # Get errors info
26
-
27
20
  main_v1_api_router.include_router(
28
21
  router=get_errors_info.api_router,
29
22
  prefix="/get_errors_info",
30
23
  tags=["Errors info"]
31
24
  )
32
25
 
33
- # Check auth
34
-
35
26
  main_v1_api_router.include_router(
36
27
  router=check_auth.api_router,
37
28
  prefix="/check_auth",
38
29
  tags=["Check auth"]
39
30
  )
40
31
 
41
- # Raise fake error
42
-
43
32
  main_v1_api_router.include_router(
44
33
  router=raise_fake_error.api_router,
45
34
  prefix="/raise_fake_error",
46
35
  tags=["Fake error"]
47
36
  )
48
37
 
49
- # Now UTC Datetime
50
-
51
38
  main_v1_api_router.include_router(
52
39
  router=now_utc_datetime.api_router,
53
40
  prefix="/now_utc_datetime",
54
41
  tags=["Now UTC datetime"]
55
42
  )
56
43
 
57
- # Log file
58
-
44
+ main_v1_api_router.include_router(
45
+ router=get_log_file.api_router,
46
+ prefix="/get_log_file",
47
+ tags=["Log file"]
48
+ )
59
49
  main_v1_api_router.include_router(
60
50
  router=clear_log_file.api_router,
61
51
  prefix="/clear_log_file",
62
52
  tags=["Log file"]
63
53
  )
54
+
64
55
  main_v1_api_router.include_router(
65
- router=get_log_file.api_router,
66
- prefix="/get_log_file",
67
- tags=["Log file"]
56
+ router=reinit_sqlalchemy_db.api_router,
57
+ prefix="/reinit_sqlalchemy_db",
58
+ tags=["Reinit SQLAlchemy db"]
68
59
  )
@@ -1,8 +1,8 @@
1
1
  import fastapi
2
2
  from fastapi import APIRouter
3
3
 
4
- from api.schema.common.out import ErrorCommonSO, DatetimeCommonSO
5
4
  from arpakitlib.ar_datetime_util import now_utc_dt
5
+ from project.api.schema.common.out import ErrorCommonSO, DatetimeCommonSO
6
6
 
7
7
  api_router = APIRouter()
8
8
 
@@ -2,9 +2,8 @@ import fastapi
2
2
  import starlette.exceptions
3
3
  from fastapi import APIRouter, Depends
4
4
 
5
- from api.auth import APIAuthData, api_auth, correct_api_keys_from_settings__validate_api_key_func, \
6
- correct_tokens_from_settings__validate_api_key_func
7
- from api.schema.common.out import ErrorCommonSO
5
+ from project.api.auth import APIAuthData, api_auth, correct_api_keys_from_settings__validate_api_key_func
6
+ from project.api.schema.common.out import ErrorCommonSO
8
7
 
9
8
  api_router = APIRouter()
10
9
 
@@ -22,11 +21,11 @@ async def _(
22
21
  n: int | None = None,
23
22
  api_auth_data: APIAuthData = Depends(api_auth(
24
23
  require_api_key_string=True,
25
- require_token_string=True,
24
+ require_token_string=False,
26
25
  validate_api_key_func=correct_api_keys_from_settings__validate_api_key_func(),
27
- validate_token_func=correct_tokens_from_settings__validate_api_key_func(),
26
+ validate_token_func=None,
28
27
  require_correct_api_key=True,
29
- require_correct_token=True,
28
+ require_correct_token=False,
30
29
  ))
31
30
  ):
32
31
  if n == 1:
@@ -0,0 +1,33 @@
1
+ import fastapi
2
+ from fastapi import APIRouter
3
+
4
+ from project.api.auth import APIAuthData, api_auth
5
+ from project.api.schema.common.out import ErrorCommonSO, RawDataCommonSO
6
+ from project.core.settings import ModeTypes
7
+ from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
8
+
9
+ api_router = APIRouter()
10
+
11
+
12
+ @api_router.get(
13
+ "",
14
+ name="Reinit SQLAlchemy db",
15
+ status_code=fastapi.status.HTTP_200_OK,
16
+ response_model=RawDataCommonSO | ErrorCommonSO,
17
+ )
18
+ async def _(
19
+ *,
20
+ request: fastapi.requests.Request,
21
+ response: fastapi.responses.Response,
22
+ api_auth_data: APIAuthData = fastapi.Depends(api_auth(
23
+ require_api_key_string=True,
24
+ require_token_string=False,
25
+ validate_api_key_func=None,
26
+ validate_token_func=None,
27
+ require_correct_api_key=False,
28
+ require_correct_token=False,
29
+ require_not_mode_type=ModeTypes.prod
30
+ ))
31
+ ):
32
+ get_cached_sqlalchemy_db().reinit()
33
+ return RawDataCommonSO(data={"sqlalchemy_db_was_reinited": True})
@@ -0,0 +1,5 @@
1
+ from project.api.schema.base_schema import BaseSI
2
+
3
+
4
+ class BaseCommonSI(BaseSI):
5
+ pass
@@ -1,7 +1,7 @@
1
1
  import datetime as dt
2
2
  from typing import Any
3
3
 
4
- from api.schema.base_schema import BaseSO
4
+ from project.api.schema.base_schema import BaseSO
5
5
 
6
6
 
7
7
  class BaseCommonSO(BaseSO):
@@ -0,0 +1,5 @@
1
+ from project.api.schema.base_schema import BaseSI
2
+
3
+
4
+ class BaseV1SI(BaseSI):
5
+ pass
@@ -3,8 +3,8 @@ from __future__ import annotations
3
3
  import datetime as dt
4
4
  from typing import Any
5
5
 
6
- from api.schema.base_schema import BaseSO
7
- from sqlalchemy_db.sqlalchemy_model import OperationDBM, StoryLogDBM
6
+ from project.api.schema.base_schema import BaseSO
7
+ from project.sqlalchemy_db_.sqlalchemy_model import StoryLogDBM, OperationDBM
8
8
 
9
9
 
10
10
  class BaseV1SO(BaseSO):
@@ -1,6 +1,6 @@
1
1
  import logging
2
2
 
3
- from core.util import setup_logging
3
+ from project.core.util import setup_logging
4
4
 
5
5
  _logger = logging.getLogger(__name__)
6
6
 
@@ -10,6 +10,6 @@ def hello_world() -> str:
10
10
  return "Hello world"
11
11
 
12
12
 
13
- if __name__ == '__main__':
13
+ if __name__ == "__main__":
14
14
  setup_logging()
15
15
  hello_world()
@@ -1,8 +1,8 @@
1
1
  import asyncio
2
2
 
3
3
  from arpakitlib.ar_type_util import raise_for_type
4
- from sqlalchemy_db.sqlalchemy_db import get_cached_sqlalchemy_db
5
- from sqlalchemy_db.sqlalchemy_model import OperationDBM
4
+ from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
5
+ from project.sqlalchemy_db_.sqlalchemy_model import OperationDBM
6
6
 
7
7
 
8
8
  def remove_operations(
@@ -1,7 +1,7 @@
1
1
  from functools import lru_cache
2
2
 
3
3
  from arpakitlib.ar_file_storage_in_dir_util import FileStorageInDir
4
- from core.settings import get_cached_settings
4
+ from project.core.settings import get_cached_settings
5
5
 
6
6
 
7
7
  def create_cache_file_storage_in_dir() -> FileStorageInDir | None:
@@ -7,18 +7,22 @@ from arpakitlib.ar_json_util import safely_transfer_obj_to_json_str
7
7
 
8
8
 
9
9
  class ProjectPaths(Enumeration):
10
- base_dirpath: str = str(pathlib.Path(__file__).parent.parent)
10
+ base_dirpath: str = str(pathlib.Path(__file__).parent.parent.parent)
11
11
 
12
12
  env_filepath: str = os.path.join(base_dirpath, ".env")
13
13
 
14
- resource_dirpath: str = os.path.join(base_dirpath, "resource")
14
+ arpakit_lib_project_template_info_filepath: str = os.path.join(
15
+ base_dirpath, "arpakitlib_project_template_info.json"
16
+ )
17
+
18
+ project_dirpath: str = str(pathlib.Path(__file__).parent.parent)
19
+
20
+ resource_dirpath: str = os.path.join(project_dirpath, "resource")
15
21
 
16
22
  static_dirpath: str = os.path.join(resource_dirpath, "static")
17
23
 
18
24
  templates_dirpath: str = os.path.join(resource_dirpath, "templates")
19
25
 
20
- arpakit_lib_project_template_filepath: str = os.path.join(base_dirpath, "arpakitlib_project_template.json")
21
-
22
26
 
23
27
  def __example():
24
28
  print(safely_transfer_obj_to_json_str(ProjectPaths.key_to_value()))
@@ -1,7 +1,7 @@
1
1
  from functools import lru_cache
2
2
 
3
3
  from arpakitlib.ar_file_storage_in_dir_util import FileStorageInDir
4
- from core.settings import get_cached_settings
4
+ from project.core.settings import get_cached_settings
5
5
 
6
6
 
7
7
  def create_dump_file_storage_in_dir() -> FileStorageInDir | None:
@@ -2,7 +2,7 @@ from functools import lru_cache
2
2
 
3
3
  from fastapi.templating import Jinja2Templates
4
4
 
5
- from core.const import ProjectPaths
5
+ from project.core.const import ProjectPaths
6
6
 
7
7
 
8
8
  def create_jinja2_templates() -> Jinja2Templates:
@@ -1,7 +1,7 @@
1
1
  from functools import lru_cache
2
2
 
3
3
  from arpakitlib.ar_file_storage_in_dir_util import FileStorageInDir
4
- from core.settings import get_cached_settings
4
+ from project.core.settings import get_cached_settings
5
5
 
6
6
 
7
7
  def create_media_file_storage_in_dir() -> FileStorageInDir | None:
@@ -10,7 +10,7 @@ from arpakitlib.ar_enumeration_util import Enumeration
10
10
  from arpakitlib.ar_json_util import safely_transfer_obj_to_json_str
11
11
  from arpakitlib.ar_settings_util import SimpleSettings
12
12
  from arpakitlib.ar_sqlalchemy_util import generate_sqlalchemy_url
13
- from core.const import ProjectPaths
13
+ from project.core.const import ProjectPaths
14
14
 
15
15
 
16
16
  class ModeTypes(Enumeration):
@@ -45,7 +45,7 @@ class Settings(SimpleSettings):
45
45
  if self.is_mode_type_prod:
46
46
  raise ValueError(f"mode type = {self.mode_type}")
47
47
 
48
- project_name: str | None = None
48
+ project_name: str | None = "project"
49
49
 
50
50
  sqlalchemy_db_user: str | None = project_name
51
51
 
@@ -99,7 +99,7 @@ class Settings(SimpleSettings):
99
99
 
100
100
  sqlalchemy_db_echo: bool = False
101
101
 
102
- api_port: int | None = 50519
102
+ api_port: int | None = 8080
103
103
 
104
104
  api_init_sqlalchemy_db: bool = False
105
105
 
@@ -4,7 +4,7 @@ from datetime import datetime
4
4
  from arpakitlib.ar_datetime_util import now_dt
5
5
  from arpakitlib.ar_logging_util import setup_normal_logging
6
6
  from arpakitlib.ar_type_util import raise_if_none
7
- from core.settings import get_cached_settings
7
+ from project.core.settings import get_cached_settings
8
8
 
9
9
 
10
10
  def setup_logging():
@@ -2,7 +2,7 @@ import os
2
2
  from functools import lru_cache
3
3
 
4
4
  from arpakitlib.ar_json_db_util import BaseJSONDb
5
- from core.settings import get_cached_settings
5
+ from project.core.settings import get_cached_settings
6
6
 
7
7
 
8
8
  class JSONDb(BaseJSONDb):
@@ -13,8 +13,8 @@ from arpakitlib.ar_dict_util import combine_dicts
13
13
  from arpakitlib.ar_exception_util import exception_to_traceback_str
14
14
  from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDb
15
15
  from arpakitlib.ar_type_util import raise_for_type
16
- from sqlalchemy_db.sqlalchemy_db import get_cached_sqlalchemy_db
17
- from sqlalchemy_db.sqlalchemy_model import OperationDBM, StoryLogDBM
16
+ from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
17
+ from project.sqlalchemy_db_.sqlalchemy_model import OperationDBM, StoryLogDBM
18
18
 
19
19
 
20
20
  class OperationExecutorWorker(BaseWorker):
@@ -5,9 +5,9 @@ from arpakitlib.ar_base_worker_util import BaseWorker
5
5
  from arpakitlib.ar_sleep_util import sync_safe_sleep, async_safe_sleep
6
6
  from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDb
7
7
  from arpakitlib.ar_type_util import raise_for_type
8
- from operation_execution.scheduled_operations import ScheduledOperation, get_scheduled_operations
9
- from sqlalchemy_db.sqlalchemy_db import get_cached_sqlalchemy_db
10
- from sqlalchemy_db.sqlalchemy_model import OperationDBM
8
+ from project.operation_execution.scheduled_operations import ScheduledOperation, get_scheduled_operations
9
+ from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
10
+ from project.sqlalchemy_db_.sqlalchemy_model import OperationDBM
11
11
 
12
12
 
13
13
  class ScheduledOperationCreatorWorker(BaseWorker):
@@ -4,8 +4,8 @@ from typing import Any, Callable
4
4
  from pydantic import ConfigDict
5
5
  from pydantic.v1 import BaseModel
6
6
 
7
- from operation_execution.util import every_timedelta_is_time_func
8
- from sqlalchemy_db.sqlalchemy_model import OperationDBM
7
+ from project.operation_execution.util import every_timedelta_is_time_func
8
+ from project.sqlalchemy_db_.sqlalchemy_model import OperationDBM
9
9
 
10
10
 
11
11
  class ScheduledOperation(BaseModel):
@@ -0,0 +1,3 @@
1
+ from project.site.create_site_app import create_site_app
2
+
3
+ app = create_site_app()
@@ -0,0 +1,5 @@
1
+ from project.core.util import setup_logging
2
+
3
+
4
+ def create_site_app():
5
+ setup_logging()
@@ -0,0 +1,19 @@
1
+ import logging
2
+
3
+ _logger = logging.getLogger(__name__)
4
+
5
+
6
+ # STARTUP SITE EVENTS
7
+
8
+
9
+ async def async_site_startup_event():
10
+ _logger.info("start")
11
+ _logger.info("finish")
12
+
13
+
14
+ # SHUTDOWN SITE EVENTS
15
+
16
+
17
+ async def async_site_shutdown_event():
18
+ _logger.info("start")
19
+ _logger.info("finish")
@@ -1,10 +1,10 @@
1
1
  from fastapi import FastAPI
2
2
  from sqladmin import Admin
3
3
 
4
- from core.settings import get_cached_settings
5
- from sqladmin_.admin_auth import SQLAdminAuth
6
- from sqladmin_.model_view import get_simple_mv
7
- from sqlalchemy_db.sqlalchemy_db import get_cached_sqlalchemy_db
4
+ from project.core.settings import get_cached_settings
5
+ from project.sqladmin_.admin_auth import SQLAdminAuth
6
+ from project.sqladmin_.model_view import get_simple_mv
7
+ from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
8
8
 
9
9
 
10
10
  def add_sqladmin_in_app(*, app: FastAPI, base_url: str = "/sqladmin") -> FastAPI:
@@ -3,7 +3,7 @@ import logging
3
3
  import fastapi
4
4
  from sqladmin.authentication import AuthenticationBackend
5
5
 
6
- from core.settings import get_cached_settings
6
+ from project.core.settings import get_cached_settings
7
7
 
8
8
 
9
9
  class SQLAdminAuth(AuthenticationBackend):
@@ -1,7 +1,7 @@
1
1
  from sqladmin import ModelView
2
2
 
3
3
  from arpakitlib.ar_sqladmin_util import get_string_info_from_model_view
4
- from sqlalchemy_db.sqlalchemy_model import StoryLogDBM, OperationDBM
4
+ from project.sqlalchemy_db_.sqlalchemy_model import StoryLogDBM, OperationDBM
5
5
 
6
6
 
7
7
  class SimpleMV(ModelView):
@@ -1,8 +1,8 @@
1
1
  from functools import lru_cache
2
2
 
3
3
  from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDb
4
- from core.settings import get_cached_settings
5
- from sqlalchemy_db.sqlalchemy_model import get_simple_dbm
4
+ from project.core.settings import get_cached_settings
5
+ from project.sqlalchemy_db_.sqlalchemy_model import get_simple_dbm
6
6
 
7
7
 
8
8
  def create_sqlalchemy_db() -> SQLAlchemyDb | None:
@@ -9,22 +9,25 @@ from sqlalchemy.orm import mapped_column, Mapped
9
9
  from arpakitlib.ar_datetime_util import now_utc_dt
10
10
  from arpakitlib.ar_enumeration_util import Enumeration
11
11
  from arpakitlib.ar_sqlalchemy_util import get_string_info_from_declarative_base, BaseDBM
12
- from sqlalchemy_db.util import generate_default_long_id
12
+ from project.sqlalchemy_db_.util import generate_default_long_id
13
13
 
14
14
 
15
15
  class SimpleDBM(BaseDBM):
16
16
  __abstract__ = True
17
17
 
18
18
  id: Mapped[int] = mapped_column(
19
- sqlalchemy.INTEGER, primary_key=True, autoincrement=True, sort_order=-3, nullable=False
19
+ sqlalchemy.INTEGER, primary_key=True, autoincrement=True, sort_order=-13, nullable=False
20
20
  )
21
21
  long_id: Mapped[str] = mapped_column(
22
22
  sqlalchemy.TEXT, insert_default=generate_default_long_id, server_default=func.gen_random_uuid(),
23
- unique=True, sort_order=-2, nullable=False
23
+ unique=True, sort_order=-12, nullable=False
24
+ )
25
+ slug: Mapped[str | None] = mapped_column(
26
+ sqlalchemy.TEXT, unique=True, sort_order=-11, nullable=True
24
27
  )
25
28
  creation_dt: Mapped[datetime] = mapped_column(
26
29
  sqlalchemy.TIMESTAMP(timezone=True), insert_default=now_utc_dt, server_default=func.now(),
27
- index=True, sort_order=-1, nullable=False
30
+ index=True, sort_order=-10, nullable=False
28
31
  )
29
32
 
30
33
  def __repr__(self):
@@ -0,0 +1,24 @@
1
+ from functools import lru_cache
2
+
3
+ from emoji import emojize
4
+
5
+ from arpakitlib.ar_blank_util import BaseBlank
6
+
7
+
8
+ class TgBotBlank(BaseBlank):
9
+ def hello_world(self) -> str:
10
+ res = ":smile: Hello world :smile:"
11
+ return emojize(res.strip())
12
+
13
+ def healthcheck(self) -> str:
14
+ res = "healthcheck"
15
+ return emojize(res.strip())
16
+
17
+
18
+ def create_tg_bot_blank() -> TgBotBlank:
19
+ return TgBotBlank()
20
+
21
+
22
+ @lru_cache()
23
+ def get_cached_tg_bot_blank() -> TgBotBlank:
24
+ return create_tg_bot_blank()
@@ -4,7 +4,7 @@ from arpakitlib.ar_enumeration_util import Enumeration
4
4
  class TgBotCommands(Enumeration):
5
5
  # public
6
6
  healthcheck = "healthcheck"
7
- arpakitlib = "arpakitlib"
7
+ arpakitlib_project_template_info = "arpakitlib_project_template_info"
8
8
  start = "start"
9
9
  about = "about"
10
10
 
@@ -0,0 +1,77 @@
1
+ import logging
2
+ from typing import Callable
3
+
4
+ from aiogram import Dispatcher
5
+
6
+ from arpakitlib.ar_base_worker_util import safe_run_worker_in_background, SafeRunInBackgroundModes
7
+ from project.core.cache_file_storage_in_dir import get_cached_cache_file_storage_in_dir
8
+ from project.core.dump_file_storage_in_dir import get_cached_dump_file_storage_in_dir
9
+ from project.core.media_file_storage_in_dir import get_cached_media_file_storage_in_dir
10
+ from project.core.settings import get_cached_settings
11
+ from project.json_db.json_db import get_cached_json_db
12
+ from project.operation_execution.operation_executor_worker import create_operation_executor_worker
13
+ from project.operation_execution.scheduled_operation_creator_worker import create_scheduled_operation_creator_worker
14
+ from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
15
+
16
+ _logger = logging.getLogger(__name__)
17
+
18
+
19
+ async def on_startup():
20
+ _logger.info("start")
21
+
22
+ if get_cached_media_file_storage_in_dir() is not None:
23
+ get_cached_media_file_storage_in_dir().init()
24
+
25
+ if get_cached_cache_file_storage_in_dir() is not None:
26
+ get_cached_cache_file_storage_in_dir().init()
27
+
28
+ if get_cached_dump_file_storage_in_dir() is not None:
29
+ get_cached_dump_file_storage_in_dir().init()
30
+
31
+ if (
32
+ get_cached_sqlalchemy_db() is not None
33
+ and get_cached_settings().api_init_sqlalchemy_db
34
+ ):
35
+ get_cached_sqlalchemy_db().init()
36
+
37
+ if (
38
+ get_cached_json_db() is not None
39
+ and get_cached_settings().api_init_json_db
40
+ ):
41
+ get_cached_json_db().init()
42
+
43
+ if get_cached_settings().api_start_operation_executor_worker:
44
+ _ = safe_run_worker_in_background(
45
+ worker=create_operation_executor_worker(),
46
+ mode=SafeRunInBackgroundModes.thread
47
+ )
48
+
49
+ if get_cached_settings().api_start_scheduled_operation_creator_worker:
50
+ _ = safe_run_worker_in_background(
51
+ worker=create_scheduled_operation_creator_worker(),
52
+ mode=SafeRunInBackgroundModes.async_task
53
+ )
54
+
55
+ _logger.info("finish")
56
+
57
+
58
+ async def on_shutdown(*args, **kwargs):
59
+ _logger.info("start")
60
+ _logger.info("finish")
61
+
62
+
63
+ def get_tg_bot_startup_events() -> list[Callable]:
64
+ res = [on_startup]
65
+ return res
66
+
67
+
68
+ def get_tg_bot_shutdown_events() -> list[Callable]:
69
+ res = [on_shutdown]
70
+ return res
71
+
72
+
73
+ def add_events_to_tg_bot_dispatcher(*, tg_bot_dispatcher: Dispatcher):
74
+ for tg_bot_event in get_tg_bot_startup_events():
75
+ tg_bot_dispatcher.startup.register(tg_bot_event)
76
+ for tg_bot_event in get_tg_bot_shutdown_events():
77
+ tg_bot_dispatcher.shutdown.register(tg_bot_event)