arpakitlib 1.7.120__tar.gz → 1.7.201__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 (212) hide show
  1. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/PKG-INFO +1 -1
  2. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/README.md +1 -3
  3. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/example.env +5 -0
  4. arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/manage/docker_run_postgres_for_dev.sh +4 -0
  5. arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/manage/docker_start_postgres_for_dev.sh +2 -0
  6. arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/manage/docker_stop_postgres_for_dev.sh +2 -0
  7. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/git_set_arpakit_company_origin.sh +2 -2
  8. arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/manage/git_set_arpakit_origin.sh +7 -0
  9. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/hello_world.py +2 -2
  10. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/json_beutify.py → arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/manage/json_beautify.py +2 -2
  11. arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/manage/poetry_show_arpakitlib.sh +2 -0
  12. arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_1.py +14 -0
  13. arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_2.py +14 -0
  14. arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_3.py +14 -0
  15. arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_4.py +14 -0
  16. arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_5.py +14 -0
  17. arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_6.py +14 -0
  18. arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_7.py +14 -0
  19. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/additional_model/additional_model.py +2 -0
  20. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/admin1/add_admin_in_app.py +5 -2
  21. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/admin1/admin_auth.py +4 -7
  22. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/admin1/model_view.py +5 -0
  23. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/src/api/start_api_for_dev.py → arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/src/api/_start_api_with_reload.py +3 -3
  24. arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/src/api/_start_api_without_reload.py +17 -0
  25. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/api/create_api_app.py +2 -2
  26. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/api/event.py +3 -9
  27. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/api/router/v1/get_api_error_info.py +1 -0
  28. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/api/router/v1/main_router.py +4 -0
  29. arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/src/api/schema/v1/in_.py +1 -0
  30. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/api/schema/v1/out.py +2 -0
  31. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/api/transmitted_api_data.py +2 -0
  32. arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/src/business_service/hello_world.py +15 -0
  33. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/logging_check.py → arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/src/core/_check_logging.py +3 -3
  34. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/src/core/check_settings.py → arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/src/core/_check_settings.py +2 -4
  35. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/src/core/generate_settings_env_example.py → arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/src/core/_generate_settings_env_example.py +4 -6
  36. arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/src/core/const.py +41 -0
  37. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/core/settings.py +13 -21
  38. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/core/util.py +3 -0
  39. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/src/db/check_conn_sqlalchemy_db.py → arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/src/db/_check_conn_sqlalchemy_db.py +2 -2
  40. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/src/db/init_sqlalchemy_db.py → arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/src/db/_init_sqlalchemy_db.py +2 -2
  41. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/src/db/reinit_sqlalchemy_db_for_not_prod.py → arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/src/db/_reinit_sqlalchemy_db.py +3 -3
  42. arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/src/db/const.py +1 -0
  43. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/db/util.py +2 -0
  44. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/src/operation_execution/start_operation_executor_worker_for_not_prod.py → arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/src/operation_execution/_start_operation_executor_worker.py +3 -5
  45. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/src/operation_execution/start_scheduled_operation_creator_worker_for_not_prod.py → arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/src/operation_execution/_start_scheduled_operation_creator_worker.py +3 -4
  46. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/operation_execution/scheduled_operations.py +12 -8
  47. arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/src/operation_execution/util.py +1 -0
  48. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_1.py +2 -0
  49. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_2.py +2 -0
  50. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_3.py +2 -0
  51. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_4.py +2 -0
  52. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_5.py +2 -0
  53. arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/src/util/__init__.py +0 -0
  54. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_arpakit_project_template_util.py +3 -3
  55. arpakitlib-1.7.201/arpakitlib/ar_class_util.py +17 -0
  56. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_enumeration_util.py +19 -1
  57. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_operation_execution_util.py +1 -0
  58. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_settings_util.py +8 -7
  59. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_type_util.py +15 -0
  60. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/pyproject.toml +2 -1
  61. arpakitlib-1.7.120/NOTICE +0 -16
  62. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/AUTHOR.md +0 -4
  63. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/NOTICE +0 -16
  64. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/docker_run_postgres_for_dev.sh +0 -4
  65. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/docker_start_postgres_for_dev.sh +0 -2
  66. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/docker_stop_postgres_for_dev.sh +0 -2
  67. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/example_nginx_proxy.nginx +0 -14
  68. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/example_poetry_arpakitlib.sh +0 -1
  69. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/example_pyproject.toml +0 -23
  70. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/example_systemd.service +0 -12
  71. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/git_set_arpakit_origin.sh +0 -7
  72. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/poetry_generate_requirements.txt.sh +0 -1
  73. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/poetry_show_arpakitlib.sh +0 -2
  74. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/requirements.txt +0 -208
  75. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_1.py +0 -14
  76. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_2.py +0 -14
  77. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_3.py +0 -14
  78. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_4.py +0 -14
  79. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_5.py +0 -14
  80. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_6.py +0 -14
  81. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_7.py +0 -14
  82. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/src/api/start_api_for_dev_with_reload.py +0 -9
  83. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/src/core/const.py +0 -48
  84. arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/src/operation_execution/util.py +0 -21
  85. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/LICENSE +0 -0
  86. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/README.md +0 -0
  87. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/__init__.py +0 -0
  88. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/.gitignore +0 -0
  89. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/.python-version +0 -0
  90. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/ARPAKITLIB +0 -0
  91. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/LICENSE +0 -0
  92. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/__init__.py +0 -0
  93. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/docker_ps.sh +0 -0
  94. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/docker_ps_a.sh +0 -0
  95. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/git_branch.sh +0 -0
  96. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/git_commit.sh +0 -0
  97. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_github_1.sh +0 -0
  98. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_gitlab_1.sh +0 -0
  99. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_github_1.sh +0 -0
  100. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_gitlab_1.sh +0 -0
  101. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/git_remote_v.sh +0 -0
  102. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/git_status.sh +0 -0
  103. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/note/__init__.py +0 -0
  104. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/note/note_1.txt +0 -0
  105. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/note/note_2.txt +0 -0
  106. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/note/note_3.txt +0 -0
  107. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/note/note_4.txt +0 -0
  108. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/note/note_5.txt +0 -0
  109. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/poetry_add_plugin_export.sh +0 -0
  110. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/poetry_check.sh +0 -0
  111. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/poetry_clear_cache.sh +0 -0
  112. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/poetry_config.sh +0 -0
  113. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/poetry_config_virtualenvs_in_project_true.sh +0 -0
  114. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/poetry_install.sh +0 -0
  115. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/poetry_lock.sh +0 -0
  116. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/poetry_remove_and_add_arpakitlib.sh +0 -0
  117. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/poetry_self_add_plugin_export.sh +0 -0
  118. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/poetry_show.sh +0 -0
  119. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/poetry_update.sh +0 -0
  120. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/poetry_update_arpakitlib.sh +0 -0
  121. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/sandbox/__init__.py +0 -0
  122. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_8.sh +0 -0
  123. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_9.sh +0 -0
  124. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/resource/__init__.py +0 -0
  125. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/resource/static/__init__.py +0 -0
  126. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/resource/static/healthcheck +0 -0
  127. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/resource/static/helloworld +0 -0
  128. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/__init__.py +0 -0
  129. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/additional_model/__init__.py +0 -0
  130. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/admin1/__init__.py +0 -0
  131. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/api/__init__.py +0 -0
  132. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/api/asgi.py +0 -0
  133. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/api/auth.py +0 -0
  134. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/api/const.py +0 -0
  135. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/api/router/__init__.py +0 -0
  136. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/api/router/main_router.py +0 -0
  137. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/api/router/v1/__init__.py +0 -0
  138. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/api/schema/__init__.py +0 -0
  139. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/api/schema/v1/__init__.py +0 -0
  140. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/api/util.py +0 -0
  141. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/business_service/__init__.py +0 -0
  142. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/core/__init__.py +0 -0
  143. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/db/__init__.py +0 -0
  144. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/db/sqlalchemy_model.py +0 -0
  145. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/operation_execution/__init__.py +0 -0
  146. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/operation_execution/const.py +0 -0
  147. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/operation_execution/operation_executor.py +0 -0
  148. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/_arpakit_project_template/src/test_data/__init__.py +0 -0
  149. {arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/src/util → arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/src/tg_bot}/__init__.py +0 -0
  150. /arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/src/api/schema/v1/in_.py → /arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/src/tg_bot/router/__init__.py +0 -0
  151. /arpakitlib-1.7.120/arpakitlib/_arpakit_project_template/src/db/const.py → /arpakitlib-1.7.201/arpakitlib/_arpakit_project_template/src/tg_bot/start_tg_bot.py +0 -0
  152. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_additional_model_util.py +0 -0
  153. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_aiogram_util.py +0 -0
  154. /arpakitlib-1.7.120/arpakitlib/api_key_util.py → /arpakitlib-1.7.201/arpakitlib/ar_api_key_util.py +0 -0
  155. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_arpakit_lib_module_util.py +0 -0
  156. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_arpakit_schedule_uust_api_client_util.py +0 -0
  157. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_arpakitlib_cli_util.py +0 -0
  158. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_base64_util.py +0 -0
  159. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_base_worker_util.py +0 -0
  160. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_cache_file_util.py +0 -0
  161. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_datetime_util.py +0 -0
  162. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_dict_util.py +0 -0
  163. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_dream_ai_api_client_util.py +0 -0
  164. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_encrypt_decrypt_util.py +0 -0
  165. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_exception_util.py +0 -0
  166. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/healthcheck +0 -0
  167. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/redoc/redoc.standalone.js +0 -0
  168. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/swagger-ui/favicon-16x16.png +0 -0
  169. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/swagger-ui/favicon-32x32.png +0 -0
  170. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/swagger-ui/index.css +0 -0
  171. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/swagger-ui/index.html +0 -0
  172. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/swagger-ui/oauth2-redirect.html +0 -0
  173. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-initializer.js +0 -0
  174. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-bundle.js +0 -0
  175. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-bundle.js.map +0 -0
  176. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle-core.js +0 -0
  177. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle-core.js.map +0 -0
  178. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle.js +0 -0
  179. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle.js.map +0 -0
  180. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-standalone-preset.js +0 -0
  181. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-standalone-preset.js.map +0 -0
  182. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css +0 -0
  183. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css.map +0 -0
  184. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js +0 -0
  185. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js.map +0 -0
  186. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_fastapi_util.py +0 -0
  187. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_file_storage_in_dir_util.py +0 -0
  188. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_file_util.py +0 -0
  189. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_func_util.py +0 -0
  190. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_hash_util.py +0 -0
  191. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_http_request_util.py +0 -0
  192. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_ip_util.py +0 -0
  193. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_json_db_util.py +0 -0
  194. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_json_util.py +0 -0
  195. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_jwt_util.py +0 -0
  196. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_list_of_dicts_to_xlsx.py +0 -0
  197. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_list_util.py +0 -0
  198. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_logging_util.py +0 -0
  199. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_mongodb_util.py +0 -0
  200. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_need_type_util.py +0 -0
  201. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_openai_api_client_util.py +0 -0
  202. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_parse_command.py +0 -0
  203. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_postgresql_util.py +0 -0
  204. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_run_cmd_util.py +0 -0
  205. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_schedule_uust_api_client_util.py +0 -0
  206. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_sleep_util.py +0 -0
  207. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_sqlalchemy_model_util.py +0 -0
  208. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_sqlalchemy_util.py +0 -0
  209. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_ssh_runner_util.py +0 -0
  210. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_str_util.py +0 -0
  211. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/arpakitlib/ar_yookassa_api_client_util.py +0 -0
  212. {arpakitlib-1.7.120 → arpakitlib-1.7.201}/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.120
3
+ Version: 1.7.201
4
4
  Summary: arpakitlib
5
5
  License: Apache-2.0
6
6
  Keywords: arpakitlib,arpakit,arpakit-company,arpakitcompany,arpakit_company
@@ -1,6 +1,4 @@
1
- # {PROJECT_NAME}
2
-
3
- ...
1
+ # {{PROJECT_NAME}}
4
2
 
5
3
  ## ❤️ Made by ARPAKIT Company ❤️
6
4
 
@@ -1,4 +1,6 @@
1
1
  # mode_type=
2
+ # project_name=
3
+ # sql_db_port=
2
4
  # sql_db_url=
3
5
  # sql_db_echo=
4
6
  # api_init_sql_db_at_start=
@@ -9,6 +11,8 @@
9
11
  # api_start_scheduled_operation_creator_worker=
10
12
  # api_port=
11
13
  # api_correct_api_key=
14
+ # api_correct_token=
15
+ # api_enable_admin1=
12
16
  # var_dirname=
13
17
  # var_dirpath=
14
18
  # log_filename=
@@ -20,3 +24,4 @@
20
24
  # dump_dirname=
21
25
  # dump_dirpath=
22
26
  # local_timezone=
27
+ # admin1_secret_key=
@@ -0,0 +1,4 @@
1
+ cd ..
2
+ docker rm {{PROJECT_NAME}}_postgres
3
+ docker run --name {{PROJECT_NAME}}_postgres -d -p {{SQL_DB_PORT}}:5432 -e POSTGRES_USER={{PROJECT_NAME}} -e POSTGRES_PASSWORD={{PROJECT_NAME}} -e POSTGRES_DB={{PROJECT_NAME}} postgres:16 -c max_connections=100
4
+ docker start {{PROJECT_NAME}}_postgres
@@ -0,0 +1,2 @@
1
+ cd ..
2
+ docker start {{PROJECT_NAME}}_postgres
@@ -0,0 +1,2 @@
1
+ cd ..
2
+ docker stop {{PROJECT_NAME}}_postgres
@@ -1,7 +1,7 @@
1
1
  cd ..
2
2
 
3
3
  git remote remove arpakit_company_github_1
4
- git remote add arpakit_company_github_1 git@github.com:ARPAKIT-Company/{PROJECT_NAME}.git
4
+ git remote add arpakit_company_github_1 git@github.com:ARPAKIT-Company/{{PROJECT_NAME}}.git
5
5
 
6
6
  git remote remove arpakit_company_gitlab_1
7
- git remote add arpakit_company_gitlab_1 git@gitlab.com:ARPAKIT-Company/{PROJECT_NAME}.git
7
+ git remote add arpakit_company_gitlab_1 git@gitlab.com:ARPAKIT-Company/{{PROJECT_NAME}}.git
@@ -0,0 +1,7 @@
1
+ cd ..
2
+
3
+ git remote remove arpakit_github_1
4
+ git remote add arpakit_github_1 git@github.com:arpakit/{{PROJECT_NAME}}.git
5
+
6
+ git remote remove arpakit_gitlab_1
7
+ git remote add arpakit_gitlab_1 git@gitlab.com:arpakit/{{PROJECT_NAME}}.git
@@ -1,6 +1,6 @@
1
- def command():
1
+ def __hello_world():
2
2
  print("Hello world")
3
3
 
4
4
 
5
5
  if __name__ == '__main__':
6
- command()
6
+ __hello_world()
@@ -1,10 +1,10 @@
1
1
  from arpakitlib.ar_json_util import safely_transfer_str_to_json_obj_to_json_str
2
2
 
3
3
 
4
- def command():
4
+ def __json_beautify():
5
5
  s = input("JSON:\n")
6
6
  print(safely_transfer_str_to_json_obj_to_json_str(s))
7
7
 
8
8
 
9
9
  if __name__ == '__main__':
10
- command()
10
+ __json_beautify()
@@ -0,0 +1,2 @@
1
+ cd ..
2
+ poetry show arpakitlib --latest
@@ -0,0 +1,14 @@
1
+ import asyncio
2
+
3
+
4
+ def _sandbox():
5
+ pass
6
+
7
+
8
+ async def _async_sandbox():
9
+ pass
10
+
11
+
12
+ if __name__ == '__main__':
13
+ _sandbox()
14
+ asyncio.run(_async_sandbox())
@@ -0,0 +1,14 @@
1
+ import asyncio
2
+
3
+
4
+ def _sandbox():
5
+ pass
6
+
7
+
8
+ async def _async_sandbox():
9
+ pass
10
+
11
+
12
+ if __name__ == '__main__':
13
+ _sandbox()
14
+ asyncio.run(_async_sandbox())
@@ -0,0 +1,14 @@
1
+ import asyncio
2
+
3
+
4
+ def _sandbox():
5
+ pass
6
+
7
+
8
+ async def _async_sandbox():
9
+ pass
10
+
11
+
12
+ if __name__ == '__main__':
13
+ _sandbox()
14
+ asyncio.run(_async_sandbox())
@@ -0,0 +1,14 @@
1
+ import asyncio
2
+
3
+
4
+ def _sandbox():
5
+ pass
6
+
7
+
8
+ async def _async_sandbox():
9
+ pass
10
+
11
+
12
+ if __name__ == '__main__':
13
+ _sandbox()
14
+ asyncio.run(_async_sandbox())
@@ -0,0 +1,14 @@
1
+ import asyncio
2
+
3
+
4
+ def _sandbox():
5
+ pass
6
+
7
+
8
+ async def _async_sandbox():
9
+ pass
10
+
11
+
12
+ if __name__ == '__main__':
13
+ _sandbox()
14
+ asyncio.run(_async_sandbox())
@@ -0,0 +1,14 @@
1
+ import asyncio
2
+
3
+
4
+ def _sandbox():
5
+ pass
6
+
7
+
8
+ async def _async_sandbox():
9
+ pass
10
+
11
+
12
+ if __name__ == '__main__':
13
+ _sandbox()
14
+ asyncio.run(_async_sandbox())
@@ -0,0 +1,14 @@
1
+ import asyncio
2
+
3
+
4
+ def _sandbox():
5
+ pass
6
+
7
+
8
+ async def _async_sandbox():
9
+ pass
10
+
11
+
12
+ if __name__ == '__main__':
13
+ _sandbox()
14
+ asyncio.run(_async_sandbox())
@@ -4,3 +4,5 @@ from arpakitlib.ar_additional_model_util import BaseAM
4
4
  class ExampleAM(BaseAM):
5
5
  name: str = "Name"
6
6
  surname: str = "Surname"
7
+
8
+ # ...
@@ -2,7 +2,9 @@ from fastapi import FastAPI
2
2
  from sqladmin import Admin
3
3
 
4
4
  from src.admin1.admin_auth import AdminAuth
5
+ from src.admin1.model_view import MODEL_VIEWS
5
6
  from src.api.transmitted_api_data import TransmittedAPIData
7
+ from src.core.settings import get_cached_settings
6
8
 
7
9
 
8
10
  def add_admin1_in_app(*, app: FastAPI) -> FastAPI:
@@ -15,9 +17,10 @@ def add_admin1_in_app(*, app: FastAPI) -> FastAPI:
15
17
  engine=transmitted_api_data.sqlalchemy_db.engine,
16
18
  base_url="/admin1",
17
19
  authentication_backend=authentication_backend,
18
- title="{PROJECT_NAME}"
20
+ title=get_cached_settings().project_name
19
21
  )
20
22
 
21
- # admin.add_model_view(CurrentSemesterMV)
23
+ for model_view in MODEL_VIEWS:
24
+ admin.add_model_view(model_view)
22
25
 
23
26
  return app
@@ -9,15 +9,13 @@ from src.core.settings import get_cached_settings
9
9
  class AdminAuth(AuthenticationBackend):
10
10
  def __init__(self):
11
11
  self._logger = logging.getLogger(self.__class__.__name__)
12
- super().__init__(secret_key=get_cached_settings().sec)
12
+ super().__init__(secret_key=get_cached_settings().admin1_secret_key)
13
13
 
14
14
  async def login(self, request: Request) -> bool:
15
- form = await request.form()
16
-
17
15
  # ...
18
-
16
+ # form = await request.form()
19
17
  # request.session.update(...)
20
-
18
+ # ...
21
19
  return True
22
20
 
23
21
  async def logout(self, request: Request) -> bool:
@@ -25,8 +23,7 @@ class AdminAuth(AuthenticationBackend):
25
23
  return True
26
24
 
27
25
  async def authenticate(self, request: Request) -> bool:
26
+ # ...
28
27
  # request.session.get("...")
29
-
30
28
  # ...
31
-
32
29
  return True
@@ -12,3 +12,8 @@ class BaseModelView(ModelView):
12
12
  save_as = True
13
13
  save_as_continue = True
14
14
  export_types = ["xlsx", "csv", "json"]
15
+
16
+
17
+ MODEL_VIEWS = []
18
+
19
+ # ...
@@ -3,15 +3,15 @@ import uvicorn
3
3
  from src.core.settings import get_cached_settings
4
4
 
5
5
 
6
- def start_api_for_dev(*, reload: bool = False):
6
+ def _start_api_for_dev_with_reload():
7
7
  uvicorn.run(
8
8
  "src.api.asgi:app",
9
9
  port=get_cached_settings().api_port,
10
10
  host="localhost",
11
11
  workers=1,
12
- reload=reload
12
+ reload=True
13
13
  )
14
14
 
15
15
 
16
16
  if __name__ == '__main__':
17
- start_api_for_dev(reload=False)
17
+ _start_api_for_dev_with_reload()
@@ -0,0 +1,17 @@
1
+ import uvicorn
2
+
3
+ from src.core.settings import get_cached_settings
4
+
5
+
6
+ def _start_api_for_dev_without_reload():
7
+ uvicorn.run(
8
+ "src.api.asgi:app",
9
+ port=get_cached_settings().api_port,
10
+ host="localhost",
11
+ workers=1,
12
+ reload=False
13
+ )
14
+
15
+
16
+ if __name__ == '__main__':
17
+ _start_api_for_dev_without_reload()
@@ -7,7 +7,7 @@ from arpakitlib.ar_type_util import raise_for_type
7
7
  from src.api.event import StartupAPIEvent, ShutdownAPIEvent
8
8
  from src.api.router.main_router import main_api_router
9
9
  from src.api.transmitted_api_data import TransmittedAPIData
10
- from src.core.const import STATIC_DIRPATH
10
+ from src.core.const import ProjectPaths
11
11
  from src.core.settings import get_cached_settings
12
12
  from src.core.util import setup_logging, get_cached_media_file_storage_in_dir, get_cached_cache_file_storage_in_dir, \
13
13
  get_cached_dump_file_storage_in_dir
@@ -63,7 +63,7 @@ def create_api_app() -> FastAPI:
63
63
  transmitted_api_data=transmitted_api_data,
64
64
  main_api_router=main_api_router,
65
65
  media_dirpath=settings.media_dirpath,
66
- static_dirpath=STATIC_DIRPATH
66
+ static_dirpath=ProjectPaths.static_dirpath
67
67
  )
68
68
 
69
69
  if settings.api_enable_admin1:
@@ -35,12 +35,9 @@ class StartupAPIEvent(BaseStartupAPIEvent):
35
35
  worker=OperationExecutorWorker(
36
36
  sqlalchemy_db=self.transmitted_api_data.sqlalchemy_db,
37
37
  operation_executor=OperationExecutor(sqlalchemy_db=self.transmitted_api_data.sqlalchemy_db),
38
- filter_operation_types=None,
39
- startup_funcs=[
40
- self.transmitted_api_data.sqlalchemy_db.init
41
- ]
38
+ filter_operation_types=None
42
39
  ),
43
- mode=SafeRunInBackgroundModes.async_task
40
+ mode=SafeRunInBackgroundModes.thread
44
41
  )
45
42
 
46
43
  if self.transmitted_api_data.settings.api_start_scheduled_operation_creator_worker:
@@ -48,10 +45,7 @@ class StartupAPIEvent(BaseStartupAPIEvent):
48
45
  _ = safe_run_worker_in_background(
49
46
  worker=ScheduledOperationCreatorWorker(
50
47
  sqlalchemy_db=self.transmitted_api_data.sqlalchemy_db,
51
- scheduled_operations=SCHEDULED_OPERATIONS,
52
- startup_funcs=[
53
- self.transmitted_api_data.sqlalchemy_db.init
54
- ]
48
+ scheduled_operations=SCHEDULED_OPERATIONS
55
49
  ),
56
50
  mode=SafeRunInBackgroundModes.async_task
57
51
  )
@@ -12,6 +12,7 @@ api_router = APIRouter()
12
12
 
13
13
  @api_router.get(
14
14
  "",
15
+ name="Get API Error info",
15
16
  response_model=APIErrorInfoSO | ErrorSO,
16
17
  status_code=status.HTTP_200_OK
17
18
  )
@@ -4,8 +4,12 @@ from src.api.router.v1 import get_api_error_info
4
4
 
5
5
  main_v1_api_router = APIRouter()
6
6
 
7
+ # API Error Info
8
+
7
9
  main_v1_api_router.include_router(
8
10
  router=get_api_error_info.api_router,
9
11
  prefix="/get_api_error_info",
10
12
  tags=["API Error Info"]
11
13
  )
14
+
15
+ # ...
@@ -4,3 +4,5 @@ from arpakitlib.ar_fastapi_util import BaseSO
4
4
  class APIErrorInfoSO(BaseSO):
5
5
  api_error_codes: list[str] = []
6
6
  api_error_specification_codes: list[str] = []
7
+
8
+ # ...
@@ -11,3 +11,5 @@ class TransmittedAPIData(BaseTransmittedAPIData):
11
11
  media_file_storage_in_dir: FileStorageInDir | None = None
12
12
  cache_file_storage_in_dir: FileStorageInDir | None = None
13
13
  dump_file_storage_in_dir: FileStorageInDir | None = None
14
+
15
+ # ...
@@ -0,0 +1,15 @@
1
+ import logging
2
+
3
+ from src.core.util import setup_logging
4
+
5
+ _logger = logging.getLogger(__name__)
6
+
7
+
8
+ def hello_world() -> str:
9
+ _logger.info("hello world")
10
+ return "Hello world"
11
+
12
+
13
+ if __name__ == '__main__':
14
+ setup_logging()
15
+ hello_world()
@@ -5,10 +5,10 @@ from src.core.util import setup_logging
5
5
  _logger = logging.getLogger(__name__)
6
6
 
7
7
 
8
- def command():
8
+ def _check_logging():
9
9
  setup_logging()
10
- _logger.info("checking logging")
10
+ _logger.info("logging is good")
11
11
 
12
12
 
13
13
  if __name__ == '__main__':
14
- command()
14
+ _check_logging()
@@ -1,12 +1,10 @@
1
1
  from arpakitlib.ar_json_util import safely_transfer_obj_to_json_str
2
2
  from src.core.settings import get_cached_settings
3
- from src.core.util import setup_logging
4
3
 
5
4
 
6
- def command():
7
- setup_logging()
5
+ def _check_settings():
8
6
  print(safely_transfer_obj_to_json_str(get_cached_settings().model_dump(mode="json")))
9
7
 
10
8
 
11
9
  if __name__ == '__main__':
12
- command()
10
+ _check_settings()
@@ -1,16 +1,14 @@
1
1
  import os.path
2
2
 
3
3
  from arpakitlib.ar_json_util import safely_transfer_obj_to_json_str
4
- from src.core.const import BASE_DIRPATH
4
+ from src.core.const import ProjectPaths
5
5
  from src.core.settings import Settings, get_cached_settings
6
- from src.core.util import setup_logging
7
6
 
8
7
 
9
- def command():
10
- setup_logging()
8
+ def _generate_settings_env_example():
11
9
  print(safely_transfer_obj_to_json_str(get_cached_settings().model_dump(mode="json")))
12
- Settings.save_env_example_to_file(filepath=os.path.join(BASE_DIRPATH, "example.env"))
10
+ Settings.save_env_example_to_file(filepath=os.path.join(ProjectPaths.base_dirpath, "example.env"))
13
11
 
14
12
 
15
13
  if __name__ == '__main__':
16
- command()
14
+ _generate_settings_env_example()
@@ -0,0 +1,41 @@
1
+ import asyncio
2
+ import os
3
+ import pathlib
4
+
5
+ from arpakitlib.ar_enumeration_util import Enumeration
6
+ from arpakitlib.ar_json_util import safely_transfer_obj_to_json_str
7
+
8
+
9
+ class ProjectPaths(Enumeration):
10
+ base_dirpath: str = str(pathlib.Path(__file__).parent.parent.parent)
11
+
12
+ env_filename: str = ".env"
13
+ env_filepath: str = os.path.join(base_dirpath, env_filename)
14
+
15
+ src_dirname: str = "src"
16
+ src_dirpath: str = os.path.join(base_dirpath, src_dirname)
17
+
18
+ manage_dirname: str = "manage"
19
+ manage_dirpath: str = os.path.join(base_dirpath, manage_dirname)
20
+
21
+ resource_dirname: str = "resource"
22
+ resource_dirpath: str = os.path.join(base_dirpath, resource_dirname)
23
+
24
+ static_dirname: str = "static"
25
+ static_dirpath: str = os.path.join(resource_dirpath, static_dirname)
26
+
27
+
28
+ # ...
29
+
30
+
31
+ def __example():
32
+ print(safely_transfer_obj_to_json_str(ProjectPaths.key_to_value()))
33
+
34
+
35
+ async def __async_example():
36
+ pass
37
+
38
+
39
+ if __name__ == '__main__':
40
+ __example()
41
+ asyncio.run(__async_example())
@@ -1,4 +1,3 @@
1
- import asyncio
2
1
  import os
3
2
  from functools import lru_cache
4
3
  from typing import Any
@@ -7,23 +6,25 @@ import pytz
7
6
 
8
7
  from arpakitlib.ar_json_util import safely_transfer_obj_to_json_str
9
8
  from arpakitlib.ar_settings_util import SimpleSettings
10
- from src.core.const import BASE_DIRPATH, ENV_FILEPATH
9
+ from src.core.const import ProjectPaths
11
10
 
12
11
 
13
12
  class Settings(SimpleSettings):
14
- project_name: str = "{PROJECT_NAME}"
13
+ project_name: str = "{{PROJECT_NAME}}"
14
+
15
+ sql_db_port: int | None = int("{{SQL_DB_PORT}}") if "{{SQL_DB_PORT}}".strip().isdigit() else None
15
16
 
16
17
  sql_db_url: str | None = (
17
- "postgresql://{PROJECT_NAME}:{PROJECT_NAME}@127.0.0.1:{SQL_DB_PORT}/{PROJECT_NAME}"
18
- ) if (str("{PROJECT_NAME}") and str("{SQL_DB_PORT}").strip().isdigit()) else None
18
+ f"postgresql://{{PROJECT_NAME}}:{{PROJECT_NAME}}@127.0.0.1:{sql_db_port}/{{PROJECT_NAME}}"
19
+ ) if sql_db_port is not None else None
19
20
 
20
21
  sql_db_echo: bool = False
21
22
 
22
23
  api_init_sql_db_at_start: bool = True
23
24
 
24
- api_title: str = "{PROJECT_NAME}"
25
+ api_title: str = project_name
25
26
 
26
- api_description: str = "{PROJECT_NAME} (arpakitlib)"
27
+ api_description: str = f"{project_name} (arpakitlib)"
27
28
 
28
29
  api_create_story_log_before_response_in_handle_exception: bool = True
29
30
 
@@ -31,7 +32,7 @@ class Settings(SimpleSettings):
31
32
 
32
33
  api_start_scheduled_operation_creator_worker: bool = False
33
34
 
34
- api_port: int | None = int("{API_PORT}") if "{API_PORT}".strip().isdigit() else None
35
+ api_port: int | None = int("{{API_PORT}}") if "{{API_PORT}}".strip().isdigit() else None
35
36
 
36
37
  api_correct_api_key: str | None = "1"
37
38
 
@@ -41,7 +42,7 @@ class Settings(SimpleSettings):
41
42
 
42
43
  var_dirname: str | None = "var"
43
44
 
44
- var_dirpath: str | None = os.path.join(BASE_DIRPATH, var_dirname)
45
+ var_dirpath: str | None = os.path.join(ProjectPaths.base_dirpath, var_dirname)
45
46
 
46
47
  log_filename: str | None = "story.log"
47
48
 
@@ -72,19 +73,10 @@ class Settings(SimpleSettings):
72
73
 
73
74
  @lru_cache()
74
75
  def get_cached_settings() -> Settings:
75
- if os.path.exists(ENV_FILEPATH):
76
- return Settings(_env_file=ENV_FILEPATH, _env_file_encoding="utf-8")
76
+ if os.path.exists(ProjectPaths.env_filepath):
77
+ return Settings(_env_file=ProjectPaths.env_filepath, _env_file_encoding="utf-8")
77
78
  return Settings()
78
79
 
79
80
 
80
- def __example():
81
- print(safely_transfer_obj_to_json_str(get_cached_settings().model_dump(mode="json")))
82
-
83
-
84
- async def __async_example():
85
- pass
86
-
87
-
88
81
  if __name__ == '__main__':
89
- __example()
90
- asyncio.run(__async_example())
82
+ print(safely_transfer_obj_to_json_str(get_cached_settings().model_dump(mode="json")))
@@ -45,6 +45,9 @@ def now_local_dt() -> datetime:
45
45
  return now_dt(tz=get_cached_settings().local_timezone_as_pytz)
46
46
 
47
47
 
48
+ # ...
49
+
50
+
48
51
  def __example():
49
52
  pass
50
53
 
@@ -2,10 +2,10 @@ from src.core.util import setup_logging
2
2
  from src.db.util import get_cached_sqlalchemy_db
3
3
 
4
4
 
5
- def command():
5
+ def _check_conn_sqlalchemy_db():
6
6
  setup_logging()
7
7
  get_cached_sqlalchemy_db().check_conn()
8
8
 
9
9
 
10
10
  if __name__ == '__main__':
11
- command()
11
+ _check_conn_sqlalchemy_db()
@@ -2,10 +2,10 @@ from src.core.util import setup_logging
2
2
  from src.db.util import get_cached_sqlalchemy_db
3
3
 
4
4
 
5
- def command():
5
+ def _init_sqlalchemy_db():
6
6
  setup_logging()
7
7
  get_cached_sqlalchemy_db().init()
8
8
 
9
9
 
10
10
  if __name__ == '__main__':
11
- command()
11
+ _init_sqlalchemy_db()
@@ -3,11 +3,11 @@ from src.core.util import setup_logging
3
3
  from src.db.util import get_cached_sqlalchemy_db
4
4
 
5
5
 
6
- def command():
6
+ def _reinit_sqlalchemy_db():
7
7
  setup_logging()
8
- get_cached_settings().raise_if_mode_type_not_prod()
8
+ get_cached_settings().raise_if_mode_type_prod()
9
9
  get_cached_sqlalchemy_db().reinit()
10
10
 
11
11
 
12
12
  if __name__ == '__main__':
13
- command()
13
+ _reinit_sqlalchemy_db()