arpakitlib 1.7.43__tar.gz → 1.7.44__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 (177) hide show
  1. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/PKG-INFO +1 -1
  2. arpakitlib-1.7.44/arpakitlib/_arpakit_project_template/src/api/const.py +9 -0
  3. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/api/create_api_app.py +3 -3
  4. arpakitlib-1.7.44/arpakitlib/_arpakit_project_template/src/operation_execution/const.py +11 -0
  5. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/operation_execution/scheduled_operations.py +4 -4
  6. arpakitlib-1.7.43/arpakitlib/_arpakit_project_template/src/operation_execution/start_operation_executor_for_dev.py → arpakitlib-1.7.44/arpakitlib/_arpakit_project_template/src/operation_execution/start_operation_executor_for_dev_.py +2 -2
  7. arpakitlib-1.7.43/arpakitlib/_arpakit_project_template/src/operation_execution/start_create_scheduled_operation_worker.py → arpakitlib-1.7.44/arpakitlib/_arpakit_project_template/src/operation_execution/start_scheduled_operation_creator_for_dev.py +2 -2
  8. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_enumeration_util.py +11 -0
  9. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_util.py +23 -28
  10. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_operation_execution_util.py +22 -6
  11. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_type_util.py +6 -0
  12. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/pyproject.toml +1 -1
  13. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/LICENSE +0 -0
  14. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/NOTICE +0 -0
  15. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/README.md +0 -0
  16. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/__init__.py +0 -0
  17. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/.gitignore +0 -0
  18. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/.python-version +0 -0
  19. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/ARPAKITLIB +0 -0
  20. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/AUTHOR.md +0 -0
  21. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/LICENSE +0 -0
  22. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/NOTICE +0 -0
  23. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/README.md +0 -0
  24. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/example.env +0 -0
  25. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/__init__.py +0 -0
  26. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/docker_ps.sh +0 -0
  27. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/docker_ps_a.sh +0 -0
  28. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/docker_run_postgres_for_dev.sh +0 -0
  29. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/docker_start_postgres_for_dev.sh +0 -0
  30. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/docker_stop_postgres_for_dev.sh +0 -0
  31. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/example_nginx_proxy.nginx +0 -0
  32. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/example_poetry_arpakitlib.sh +0 -0
  33. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/example_pyproject.toml +0 -0
  34. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/example_systemd.service +0 -0
  35. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/git_branch.sh +0 -0
  36. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/git_commit.sh +0 -0
  37. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_github_1.sh +0 -0
  38. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_gitlab_1.sh +0 -0
  39. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_github_1.sh +0 -0
  40. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_gitlab_1.sh +0 -0
  41. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/git_remote_v.sh +0 -0
  42. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/git_set_arpakit_company_origin.sh +0 -0
  43. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/git_set_arpakit_origin.sh +0 -0
  44. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/git_status.sh +0 -0
  45. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/hello_world.py +0 -0
  46. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/json_beutify.py +0 -0
  47. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/logging_check.py +0 -0
  48. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/note/__init__.py +0 -0
  49. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/note/note_1.txt +0 -0
  50. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/note/note_2.txt +0 -0
  51. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/note/note_3.txt +0 -0
  52. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/note/note_4.txt +0 -0
  53. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/note/note_5.txt +0 -0
  54. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/poetry_add_plugin_export.sh +0 -0
  55. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/poetry_check.sh +0 -0
  56. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/poetry_clear_cache.sh +0 -0
  57. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/poetry_config_virtualenvs_in_project_true.sh +0 -0
  58. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/poetry_generate_requirements.txt.sh +0 -0
  59. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/poetry_install.sh +0 -0
  60. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/poetry_lock.sh +0 -0
  61. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/poetry_remove_and_add_arpakitlib.sh +0 -0
  62. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/poetry_show.sh +0 -0
  63. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/poetry_show_arpakitlib.sh +0 -0
  64. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/poetry_update.sh +0 -0
  65. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/poetry_update_arpakitlib.sh +0 -0
  66. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/sandbox/__init__.py +0 -0
  67. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_1.py +0 -0
  68. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_2.py +0 -0
  69. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_3.py +0 -0
  70. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_4.py +0 -0
  71. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_5.py +0 -0
  72. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_6.py +0 -0
  73. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_7.py +0 -0
  74. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_8.sh +0 -0
  75. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_9.sh +0 -0
  76. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/settings_check.py +0 -0
  77. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/settings_generate_env_example.py +0 -0
  78. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/sqlalchemy_db_check_conn.py +0 -0
  79. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/sqlalchemy_db_init.py +0 -0
  80. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/manage/sqlalchemy_db_reinit.py +0 -0
  81. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/resource/__init__.py +0 -0
  82. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/resource/static/__init__.py +0 -0
  83. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/resource/static/helloworld +0 -0
  84. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/__init__.py +0 -0
  85. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/additional_model/__init__.py +0 -0
  86. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/additional_model/additional_model.py +0 -0
  87. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/api/__init__.py +0 -0
  88. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/api/asgi.py +0 -0
  89. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/api/auth.py +0 -0
  90. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/api/event.py +0 -0
  91. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/api/router/__init__.py +0 -0
  92. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/api/router/v1/__init__.py +0 -0
  93. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/api/router/v1/main_router.py +0 -0
  94. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/api/schema/__init__.py +0 -0
  95. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/api/schema/v1/__init__.py +0 -0
  96. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/api/schema/v1/in_.py +0 -0
  97. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/api/schema/v1/out.py +0 -0
  98. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/api/start_api_for_dev.py +0 -0
  99. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/api/transmitted_api_data.py +0 -0
  100. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/api/util.py +0 -0
  101. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/business_service/__init__.py +0 -0
  102. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/core/__init__.py +0 -0
  103. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/core/const.py +0 -0
  104. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/core/settings.py +0 -0
  105. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/core/util.py +0 -0
  106. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/db/__init__.py +0 -0
  107. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/db/sqlalchemy_model.py +0 -0
  108. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/db/util.py +0 -0
  109. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/operation_execution/__init__.py +0 -0
  110. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/operation_execution/operation_executor.py +2 -2
  111. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/test_data/__init__.py +0 -0
  112. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_1.py +0 -0
  113. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_2.py +0 -0
  114. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_3.py +0 -0
  115. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_4.py +0 -0
  116. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_5.py +0 -0
  117. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/_arpakit_project_template/src/util/__init__.py +0 -0
  118. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/api_key_util.py +0 -0
  119. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_additional_model_util.py +0 -0
  120. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_aiogram_util.py +0 -0
  121. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_arpakit_lib_module_util.py +0 -0
  122. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_arpakit_project_template_util.py +0 -0
  123. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_arpakit_schedule_uust_api_client_util.py +0 -0
  124. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_arpakitlib_cli_util.py +0 -0
  125. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_base64_util.py +0 -0
  126. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_base_worker_util.py +0 -0
  127. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_cache_file_util.py +0 -0
  128. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_datetime_util.py +0 -0
  129. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_dict_util.py +0 -0
  130. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_dream_ai_api_client_util.py +0 -0
  131. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_encrypt_decrypt_util.py +0 -0
  132. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/healthcheck +0 -0
  133. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/redoc/redoc.standalone.js +0 -0
  134. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/swagger-ui/favicon-16x16.png +0 -0
  135. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/swagger-ui/favicon-32x32.png +0 -0
  136. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/swagger-ui/index.css +0 -0
  137. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/swagger-ui/index.html +0 -0
  138. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/swagger-ui/oauth2-redirect.html +0 -0
  139. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-initializer.js +0 -0
  140. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-bundle.js +0 -0
  141. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-bundle.js.map +0 -0
  142. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle-core.js +0 -0
  143. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle-core.js.map +0 -0
  144. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle.js +0 -0
  145. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle.js.map +0 -0
  146. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-standalone-preset.js +0 -0
  147. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-standalone-preset.js.map +0 -0
  148. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css +0 -0
  149. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css.map +0 -0
  150. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js +0 -0
  151. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js.map +0 -0
  152. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_file_storage_in_dir_util.py +0 -0
  153. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_file_util.py +0 -0
  154. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_hash_util.py +0 -0
  155. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_http_request_util.py +0 -0
  156. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_ip_util.py +0 -0
  157. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_json_db_util.py +0 -0
  158. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_json_util.py +0 -0
  159. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_jwt_util.py +0 -0
  160. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_list_of_dicts_to_xlsx.py +0 -0
  161. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_list_util.py +0 -0
  162. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_logging_util.py +0 -0
  163. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_mongodb_util.py +0 -0
  164. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_need_type_util.py +0 -0
  165. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_openai_api_client_util.py +0 -0
  166. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_parse_command.py +0 -0
  167. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_postgresql_util.py +0 -0
  168. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_run_cmd_util.py +0 -0
  169. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_schedule_uust_api_client_util.py +0 -0
  170. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_settings_util.py +0 -0
  171. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_sleep_util.py +0 -0
  172. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_sqlalchemy_model_util.py +0 -0
  173. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_sqlalchemy_util.py +0 -0
  174. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_ssh_runner_util.py +0 -0
  175. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_str_util.py +0 -0
  176. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_yookassa_api_client_util.py +0 -0
  177. {arpakitlib-1.7.43 → arpakitlib-1.7.44}/arpakitlib/ar_zabbix_api_client_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: arpakitlib
3
- Version: 1.7.43
3
+ Version: 1.7.44
4
4
  Summary: arpakitlib
5
5
  Home-page: https://github.com/ARPAKIT-Company/arpakitlib
6
6
  License: Apache-2.0
@@ -0,0 +1,9 @@
1
+ from arpakitlib.ar_fastapi_util import BaseAPIErrorCodes
2
+
3
+
4
+ class APIErrorCodes(BaseAPIErrorCodes):
5
+ pass
6
+
7
+
8
+ if __name__ == '__main__':
9
+ print(APIErrorCodes.str_for_print())
@@ -4,7 +4,7 @@ from arpakitlib.ar_base_worker_util import BaseWorker
4
4
  from arpakitlib.ar_fastapi_util import create_fastapi_app, InitSqlalchemyDBStartupAPIEvent, InitFileStoragesInDir, \
5
5
  create_handle_exception, create_story_log_before_response_in_handle_exception, _DEFAULT_CONTACT, \
6
6
  SafeRunWorkerStartupAPIEvent
7
- from arpakitlib.ar_operation_execution_util import ExecuteOperationWorker, CreateScheduledOperationWorker
7
+ from arpakitlib.ar_operation_execution_util import OperationExecutorWorker, ScheduledOperationCreatorWorker
8
8
  from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDB
9
9
  from arpakitlib.ar_type_util import raise_for_type
10
10
  from src.api.event import StartupAPIEvent, ShutdownAPIEvent
@@ -60,7 +60,7 @@ def create_api_app() -> FastAPI:
60
60
  startup_api_events.append(
61
61
  SafeRunWorkerStartupAPIEvent(
62
62
  workers=[
63
- ExecuteOperationWorker(
63
+ OperationExecutorWorker(
64
64
  sqlalchemy_db=sqlalchemy_db,
65
65
  operation_executor=OperationExecutor(sqlalchemy_db=sqlalchemy_db),
66
66
  filter_operation_types=None
@@ -75,7 +75,7 @@ def create_api_app() -> FastAPI:
75
75
  startup_api_events.append(
76
76
  SafeRunWorkerStartupAPIEvent(
77
77
  workers=[
78
- CreateScheduledOperationWorker(
78
+ ScheduledOperationCreatorWorker(
79
79
  sqlalchemy_db=sqlalchemy_db,
80
80
  scheduled_operations=ALL_SCHEDULED_OPERATIONS
81
81
  )
@@ -0,0 +1,11 @@
1
+ from arpakitlib.ar_sqlalchemy_model_util import BaseOperationTypes
2
+
3
+
4
+ class OperationTypes(BaseOperationTypes):
5
+ pass
6
+
7
+
8
+ if __name__ == '__main__':
9
+ print(f"OperationTypes (len={len(OperationTypes.values_list())})")
10
+ for v in OperationTypes.values_list():
11
+ print(f"- {v}")
@@ -1,13 +1,13 @@
1
1
  from datetime import timedelta
2
2
 
3
- from arpakitlib.ar_operation_execution_util import ScheduledOperation, is_time_func_every_timedelta
3
+ from arpakitlib.ar_operation_execution_util import ScheduledOperation, every_timedelta_is_time_func
4
4
  from arpakitlib.ar_sqlalchemy_model_util import BaseOperationTypes
5
5
 
6
6
  ALL_SCHEDULED_OPERATIONS = []
7
7
 
8
- healthcheck_operation = ScheduledOperation(
8
+ healthcheck_scheduled_operation = ScheduledOperation(
9
9
  type=BaseOperationTypes.healthcheck_,
10
10
  input_data={},
11
- is_time_func=is_time_func_every_timedelta(td=timedelta(seconds=5))
11
+ is_time_func=every_timedelta_is_time_func(td=timedelta(seconds=5))
12
12
  )
13
- ALL_SCHEDULED_OPERATIONS.append(healthcheck_operation)
13
+ ALL_SCHEDULED_OPERATIONS.append(healthcheck_scheduled_operation)
@@ -1,11 +1,11 @@
1
- from arpakitlib.ar_operation_execution_util import ExecuteOperationWorker
1
+ from arpakitlib.ar_operation_execution_util import OperationExecutorWorker
2
2
  from src.core.util import get_cached_sqlalchemy_db, setup_logging
3
3
  from src.operation_execution.operation_executor import OperationExecutor
4
4
 
5
5
 
6
6
  def start_operation_executor_for_dev():
7
7
  setup_logging()
8
- worker = ExecuteOperationWorker(
8
+ worker = OperationExecutorWorker(
9
9
  sqlalchemy_db=get_cached_sqlalchemy_db(),
10
10
  operation_executor=OperationExecutor(sqlalchemy_db=get_cached_sqlalchemy_db()),
11
11
  filter_operation_types=None
@@ -1,11 +1,11 @@
1
- from arpakitlib.ar_operation_execution_util import CreateScheduledOperationWorker
1
+ from arpakitlib.ar_operation_execution_util import ScheduledOperationCreatorWorker
2
2
  from src.core.util import get_cached_sqlalchemy_db, setup_logging
3
3
  from src.operation_execution.scheduled_operations import ALL_SCHEDULED_OPERATIONS
4
4
 
5
5
 
6
6
  def start_create_scheduled_operation_worker_for_dev():
7
7
  setup_logging()
8
- worker = CreateScheduledOperationWorker(
8
+ worker = ScheduledOperationCreatorWorker(
9
9
  sqlalchemy_db=get_cached_sqlalchemy_db(),
10
10
  scheduled_operations=ALL_SCHEDULED_OPERATIONS
11
11
  )
@@ -69,6 +69,17 @@ class Enumeration:
69
69
  def parse_and_validate_values(cls, *values: ValuesForParseType) -> list[ValueType]:
70
70
  return cls.parse_values(*values, validate=True)
71
71
 
72
+ @classmethod
73
+ def str_for_print(cls) -> str:
74
+ res = f"{cls.__name__} (len={len(cls.values_list())})"
75
+ for v in cls.values_list():
76
+ res += f"\n- {v}"
77
+ return res.strip()
78
+
79
+ @classmethod
80
+ def print(cls):
81
+ print(cls.str_for_print())
82
+
72
83
 
73
84
  def __example():
74
85
  pass
@@ -68,13 +68,14 @@ class SimpleSO(BaseSO):
68
68
  creation_dt: datetime
69
69
 
70
70
 
71
- class ErrorSO(BaseSO):
72
- class APIErrorCodes(Enumeration):
73
- cannot_authorize = "CANNOT_AUTHORIZE"
74
- unknown_error = "UNKNOWN_ERROR"
75
- error_in_request = "ERROR_IN_REQUEST"
76
- not_found = "NOT_FOUND"
71
+ class BaseAPIErrorCodes(Enumeration):
72
+ cannot_authorize = "CANNOT_AUTHORIZE"
73
+ unknown_error = "UNKNOWN_ERROR"
74
+ error_in_request = "ERROR_IN_REQUEST"
75
+ not_found = "NOT_FOUND"
76
+
77
77
 
78
+ class ErrorSO(BaseSO):
78
79
  has_error: bool = True
79
80
  error_code: str | None = None
80
81
  error_code_specification: str | None = None
@@ -118,7 +119,7 @@ class APIException(fastapi.exceptions.HTTPException):
118
119
  self,
119
120
  *,
120
121
  status_code: int = starlette.status.HTTP_400_BAD_REQUEST,
121
- error_code: str | None = ErrorSO.APIErrorCodes.unknown_error,
122
+ error_code: str | None = BaseAPIErrorCodes.unknown_error,
122
123
  error_code_specification: str | None = None,
123
124
  error_description: str | None = None,
124
125
  error_data: dict[str, Any] | None = None
@@ -165,7 +166,7 @@ def create_handle_exception(
165
166
 
166
167
  error_so = ErrorSO(
167
168
  has_error=True,
168
- error_code=ErrorSO.APIErrorCodes.unknown_error,
169
+ error_code=BaseAPIErrorCodes.unknown_error,
169
170
  error_data={
170
171
  "exception_type": str(type(exception)),
171
172
  "exception_str": str(exception),
@@ -183,10 +184,10 @@ def create_handle_exception(
183
184
  elif isinstance(exception, starlette.exceptions.HTTPException):
184
185
  status_code = exception.status_code
185
186
  if status_code in (starlette.status.HTTP_403_FORBIDDEN, starlette.status.HTTP_401_UNAUTHORIZED):
186
- error_so.error_code = ErrorSO.APIErrorCodes.cannot_authorize
187
+ error_so.error_code = BaseAPIErrorCodes.cannot_authorize
187
188
  _need_exc_info = False
188
189
  elif status_code == starlette.status.HTTP_404_NOT_FOUND:
189
- error_so.error_code = ErrorSO.APIErrorCodes.not_found
190
+ error_so.error_code = BaseAPIErrorCodes.not_found
190
191
  _need_exc_info = False
191
192
  else:
192
193
  status_code = starlette.status.HTTP_500_INTERNAL_SERVER_ERROR
@@ -196,14 +197,14 @@ def create_handle_exception(
196
197
 
197
198
  elif isinstance(exception, fastapi.exceptions.RequestValidationError):
198
199
  status_code = starlette.status.HTTP_422_UNPROCESSABLE_ENTITY
199
- error_so.error_code = ErrorSO.APIErrorCodes.error_in_request
200
+ error_so.error_code = BaseAPIErrorCodes.error_in_request
200
201
  with suppress(Exception):
201
202
  error_so.error_data["exception.errors"] = str(exception.errors()) if exception.errors() else {}
202
203
  _need_exc_info = False
203
204
 
204
205
  else:
205
206
  status_code = starlette.status.HTTP_500_INTERNAL_SERVER_ERROR
206
- error_so.error_code = ErrorSO.APIErrorCodes.unknown_error
207
+ error_so.error_code = BaseAPIErrorCodes.unknown_error
207
208
  _logger.exception(exception)
208
209
  _need_exc_info = True
209
210
 
@@ -512,14 +513,14 @@ def base_api_auth(
512
513
  if require_api_key_string and not api_auth_data.api_key_string:
513
514
  raise APIException(
514
515
  status_code=starlette.status.HTTP_401_UNAUTHORIZED,
515
- error_code=ErrorSO.APIErrorCodes.cannot_authorize,
516
+ error_code=BaseAPIErrorCodes.cannot_authorize,
516
517
  error_data=safely_transfer_to_json_str_to_json_obj(api_auth_data.model_dump())
517
518
  )
518
519
 
519
520
  if require_token_string and not api_auth_data.token_string:
520
521
  raise APIException(
521
522
  status_code=starlette.status.HTTP_401_UNAUTHORIZED,
522
- error_code=ErrorSO.APIErrorCodes.cannot_authorize,
523
+ error_code=BaseAPIErrorCodes.cannot_authorize,
523
524
  error_data=safely_transfer_to_json_str_to_json_obj(api_auth_data.model_dump())
524
525
  )
525
526
 
@@ -537,37 +538,31 @@ def is_api_key_correct_api_auth(
537
538
  validate_api_key_func: Callable | None = None,
538
539
  correct_api_key: str | None = None
539
540
  ):
540
- require_api_key_string = True
541
-
542
541
  if correct_api_key is not None:
543
- validate_api_key_func = lambda **kwargs: kwargs["api_key_string"] == correct_api_key
544
-
542
+ validate_api_key_func = lambda *args, **kwargs: kwargs["api_key_string"] == correct_api_key
545
543
  raise_if_none(validate_api_key_func)
546
544
 
547
545
  async def func(
548
546
  *,
549
547
  base_api_auth_data: BaseAPIAuthData = Depends(base_api_auth(
550
- require_api_key_string=require_api_key_string,
548
+ require_api_key_string=True,
551
549
  require_token_string=False
552
550
  )),
553
551
  transmitted_api_data: BaseTransmittedAPIData = Depends(get_transmitted_api_data),
554
552
  request: starlette.requests.Request
555
553
  ) -> CheckAPIKeyAPIAuthData:
556
554
  check_api_key_api_auth_data = CheckAPIKeyAPIAuthData.model_validate(base_api_auth_data)
557
- check_api_key_api_auth_data.is_api_key_correct = (
558
- validate_api_key_func(
559
- api_key_string=base_api_auth_data.api_key_string,
560
- base_api_auth_data=base_api_auth_data,
561
- transmitted_api_data=transmitted_api_data,
562
- request=request
563
- )
564
- if validate_api_key_func is not None else None
555
+ check_api_key_api_auth_data.is_api_key_correct = validate_api_key_func(
556
+ api_key_string=base_api_auth_data.api_key_string,
557
+ base_api_auth_data=base_api_auth_data,
558
+ transmitted_api_data=transmitted_api_data,
559
+ request=request
565
560
  )
566
561
 
567
562
  if not check_api_key_api_auth_data.is_api_key_correct:
568
563
  raise APIException(
569
564
  status_code=starlette.status.HTTP_401_UNAUTHORIZED,
570
- error_code=ErrorSO.APIErrorCodes.cannot_authorize,
565
+ error_code=BaseAPIErrorCodes.cannot_authorize,
571
566
  error_data=safely_transfer_to_json_str_to_json_obj(check_api_key_api_auth_data.model_dump())
572
567
  )
573
568
 
@@ -5,7 +5,7 @@ from __future__ import annotations
5
5
  import asyncio
6
6
  import logging
7
7
  import traceback
8
- from datetime import timedelta
8
+ from datetime import timedelta, time
9
9
  from typing import Any, Callable
10
10
 
11
11
  from pydantic import ConfigDict
@@ -109,7 +109,10 @@ class BaseOperationExecutor:
109
109
  if exception:
110
110
  operation_dbm.status = OperationDBM.Statuses.executed_with_error
111
111
  operation_dbm.error_data = combine_dicts(
112
- {"exception": str(exception), "traceback_str": traceback_str},
112
+ {
113
+ "exception_str": str(exception),
114
+ "traceback_str": traceback_str
115
+ },
113
116
  operation_dbm.error_data
114
117
  )
115
118
  else:
@@ -185,7 +188,10 @@ class BaseOperationExecutor:
185
188
  if exception:
186
189
  operation_dbm.status = OperationDBM.Statuses.executed_with_error
187
190
  operation_dbm.error_data = combine_dicts(
188
- {"exception": str(exception), "traceback_str": traceback_str},
191
+ {
192
+ "exception_str": str(exception),
193
+ "traceback_str": traceback_str
194
+ },
189
195
  operation_dbm.error_data
190
196
  )
191
197
  else:
@@ -219,7 +225,7 @@ class BaseOperationExecutor:
219
225
  return operation_dbm
220
226
 
221
227
 
222
- class ExecuteOperationWorker(BaseWorker):
228
+ class OperationExecutorWorker(BaseWorker):
223
229
 
224
230
  def __init__(
225
231
  self,
@@ -288,7 +294,7 @@ class ScheduledOperation(BaseModel):
288
294
  is_time_func: Callable[[], bool]
289
295
 
290
296
 
291
- class CreateScheduledOperationWorker(BaseWorker):
297
+ class ScheduledOperationCreatorWorker(BaseWorker):
292
298
  def __init__(
293
299
  self,
294
300
  *,
@@ -338,7 +344,7 @@ class CreateScheduledOperationWorker(BaseWorker):
338
344
  session.refresh(operation_dbm)
339
345
 
340
346
 
341
- def is_time_func_every_timedelta(*, td: timedelta) -> Callable:
347
+ def every_timedelta_is_time_func(*, td: timedelta) -> Callable:
342
348
  last_now_utc_dt = now_utc_dt()
343
349
 
344
350
  def func() -> bool:
@@ -352,6 +358,16 @@ def is_time_func_every_timedelta(*, td: timedelta) -> Callable:
352
358
  return func
353
359
 
354
360
 
361
+ def between_different_times_is_time_func(*, from_time: time, to_time: time) -> Callable:
362
+ def func() -> bool:
363
+ now_utc_dt_ = now_utc_dt()
364
+ if from_time <= now_utc_dt_.time() <= to_time:
365
+ return True
366
+ return False
367
+
368
+ return func
369
+
370
+
355
371
  def __example():
356
372
  pass
357
373
 
@@ -84,6 +84,12 @@ def raise_if_none(v: Any) -> Any:
84
84
  return v
85
85
 
86
86
 
87
+ def raise_if_not_none(v: Any) -> Any:
88
+ if v is not None:
89
+ raise ValueError(f"v is not None, v={v}, type(v)={type(v)}")
90
+ return v
91
+
92
+
87
93
  def __example():
88
94
  pass
89
95
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "arpakitlib"
3
- version = "1.7.43"
3
+ version = "1.7.44"
4
4
  description = "arpakitlib"
5
5
  authors = ["arpakit <arpakit@gmail.com>", "arpakit_support <support@arpakit.com>"]
6
6
  license = "Apache License 2.0"
File without changes
File without changes
File without changes
@@ -4,11 +4,11 @@ from arpakitlib.ar_sqlalchemy_model_util import OperationDBM
4
4
 
5
5
  class OperationExecutor(BaseOperationExecutor):
6
6
  def sync_execute_operation(self, operation_dbm: OperationDBM) -> OperationDBM:
7
- operation_dbm = super().sync_execute_operation(operation_dbm=operation_dbm)
8
7
  # ...
8
+ operation_dbm = super().sync_execute_operation(operation_dbm=operation_dbm)
9
9
  return operation_dbm
10
10
 
11
11
  async def async_execute_operation(self, operation_dbm: OperationDBM) -> OperationDBM:
12
- operation_dbm = await super().async_execute_operation(operation_dbm=operation_dbm)
13
12
  # ...
13
+ operation_dbm = await super().async_execute_operation(operation_dbm=operation_dbm)
14
14
  return operation_dbm