arpakitlib 1.7.94__tar.gz → 1.7.96__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 (185) hide show
  1. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/PKG-INFO +1 -1
  2. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_operation_execution_util.py +60 -59
  3. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/pyproject.toml +1 -1
  4. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/LICENSE +0 -0
  5. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/NOTICE +0 -0
  6. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/README.md +0 -0
  7. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/__init__.py +0 -0
  8. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/.gitignore +0 -0
  9. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/.python-version +0 -0
  10. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/ARPAKITLIB +0 -0
  11. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/AUTHOR.md +0 -0
  12. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/LICENSE +0 -0
  13. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/NOTICE +0 -0
  14. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/README.md +0 -0
  15. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/example.env +0 -0
  16. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/__init__.py +0 -0
  17. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/docker_ps.sh +0 -0
  18. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/docker_ps_a.sh +0 -0
  19. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/docker_run_postgres_for_dev.sh +0 -0
  20. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/docker_start_postgres_for_dev.sh +0 -0
  21. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/docker_stop_postgres_for_dev.sh +0 -0
  22. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/example_nginx_proxy.nginx +0 -0
  23. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/example_poetry_arpakitlib.sh +0 -0
  24. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/example_pyproject.toml +0 -0
  25. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/example_systemd.service +0 -0
  26. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/git_branch.sh +0 -0
  27. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/git_commit.sh +0 -0
  28. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_github_1.sh +0 -0
  29. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_gitlab_1.sh +0 -0
  30. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_github_1.sh +0 -0
  31. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_gitlab_1.sh +0 -0
  32. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/git_remote_v.sh +0 -0
  33. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/git_set_arpakit_company_origin.sh +0 -0
  34. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/git_set_arpakit_origin.sh +0 -0
  35. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/git_status.sh +0 -0
  36. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/hello_world.py +0 -0
  37. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/json_beutify.py +0 -0
  38. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/logging_check.py +0 -0
  39. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/note/__init__.py +0 -0
  40. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/note/note_1.txt +0 -0
  41. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/note/note_2.txt +0 -0
  42. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/note/note_3.txt +0 -0
  43. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/note/note_4.txt +0 -0
  44. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/note/note_5.txt +0 -0
  45. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/poetry_add_plugin_export.sh +0 -0
  46. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/poetry_check.sh +0 -0
  47. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/poetry_clear_cache.sh +0 -0
  48. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/poetry_config_virtualenvs_in_project_true.sh +0 -0
  49. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/poetry_generate_requirements.txt.sh +0 -0
  50. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/poetry_install.sh +0 -0
  51. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/poetry_lock.sh +0 -0
  52. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/poetry_remove_and_add_arpakitlib.sh +0 -0
  53. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/poetry_show.sh +0 -0
  54. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/poetry_show_arpakitlib.sh +0 -0
  55. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/poetry_update.sh +0 -0
  56. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/poetry_update_arpakitlib.sh +0 -0
  57. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/requirements.txt +0 -0
  58. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/sandbox/__init__.py +0 -0
  59. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_1.py +0 -0
  60. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_2.py +0 -0
  61. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_3.py +0 -0
  62. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_4.py +0 -0
  63. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_5.py +0 -0
  64. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_6.py +0 -0
  65. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_7.py +0 -0
  66. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_8.sh +0 -0
  67. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_9.sh +0 -0
  68. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/settings_check.py +0 -0
  69. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/settings_generate_env_example.py +0 -0
  70. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/sqlalchemy_db_check_conn.py +0 -0
  71. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/sqlalchemy_db_init.py +0 -0
  72. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/manage/sqlalchemy_db_reinit.py +0 -0
  73. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/resource/__init__.py +0 -0
  74. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/resource/static/__init__.py +0 -0
  75. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/resource/static/healthcheck +0 -0
  76. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/resource/static/helloworld +0 -0
  77. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/__init__.py +0 -0
  78. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/additional_model/__init__.py +0 -0
  79. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/additional_model/additional_model.py +0 -0
  80. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/api/__init__.py +0 -0
  81. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/api/asgi.py +0 -0
  82. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/api/auth.py +0 -0
  83. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/api/const.py +0 -0
  84. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/api/create_api_app.py +0 -0
  85. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/api/event.py +0 -0
  86. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/api/router/__init__.py +0 -0
  87. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/api/router/main_router.py +0 -0
  88. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/api/router/v1/__init__.py +0 -0
  89. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/api/router/v1/get_api_error_info.py +0 -0
  90. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/api/router/v1/main_router.py +0 -0
  91. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/api/schema/__init__.py +0 -0
  92. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/api/schema/v1/__init__.py +0 -0
  93. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/api/schema/v1/in_.py +0 -0
  94. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/api/schema/v1/out.py +0 -0
  95. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/api/start_api_for_dev.py +0 -0
  96. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/api/start_api_for_dev_with_reload.py +0 -0
  97. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/api/transmitted_api_data.py +0 -0
  98. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/api/util.py +0 -0
  99. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/business_service/__init__.py +0 -0
  100. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/core/__init__.py +0 -0
  101. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/core/const.py +0 -0
  102. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/core/settings.py +0 -0
  103. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/core/util.py +0 -0
  104. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/db/__init__.py +0 -0
  105. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/db/sqlalchemy_model.py +0 -0
  106. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/db/util.py +0 -0
  107. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/operation_execution/__init__.py +0 -0
  108. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/operation_execution/const.py +0 -0
  109. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/operation_execution/operation_executor.py +0 -0
  110. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/operation_execution/scheduled_operations.py +0 -0
  111. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/operation_execution/start_operation_executor_worker_for_dev.py +0 -0
  112. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/operation_execution/start_scheduled_operation_creator_worker_for_dev.py +0 -0
  113. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/operation_execution/util.py +0 -0
  114. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/test_data/__init__.py +0 -0
  115. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_1.py +0 -0
  116. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_2.py +0 -0
  117. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_3.py +0 -0
  118. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_4.py +0 -0
  119. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_5.py +0 -0
  120. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/_arpakit_project_template/src/util/__init__.py +0 -0
  121. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/api_key_util.py +0 -0
  122. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_additional_model_util.py +0 -0
  123. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_aiogram_util.py +0 -0
  124. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_arpakit_lib_module_util.py +0 -0
  125. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_arpakit_project_template_util.py +0 -0
  126. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_arpakit_schedule_uust_api_client_util.py +0 -0
  127. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_arpakitlib_cli_util.py +0 -0
  128. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_base64_util.py +0 -0
  129. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_base_worker_util.py +0 -0
  130. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_cache_file_util.py +0 -0
  131. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_datetime_util.py +0 -0
  132. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_dict_util.py +0 -0
  133. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_dream_ai_api_client_util.py +0 -0
  134. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_encrypt_decrypt_util.py +0 -0
  135. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_enumeration_util.py +0 -0
  136. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_exception_util.py +0 -0
  137. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/healthcheck +0 -0
  138. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/redoc/redoc.standalone.js +0 -0
  139. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/swagger-ui/favicon-16x16.png +0 -0
  140. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/swagger-ui/favicon-32x32.png +0 -0
  141. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/swagger-ui/index.css +0 -0
  142. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/swagger-ui/index.html +0 -0
  143. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/swagger-ui/oauth2-redirect.html +0 -0
  144. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-initializer.js +0 -0
  145. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-bundle.js +0 -0
  146. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-bundle.js.map +0 -0
  147. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle-core.js +0 -0
  148. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle-core.js.map +0 -0
  149. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle.js +0 -0
  150. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle.js.map +0 -0
  151. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-standalone-preset.js +0 -0
  152. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-standalone-preset.js.map +0 -0
  153. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css +0 -0
  154. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css.map +0 -0
  155. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js +0 -0
  156. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js.map +0 -0
  157. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_fastapi_util.py +0 -0
  158. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_file_storage_in_dir_util.py +0 -0
  159. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_file_util.py +0 -0
  160. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_func_util.py +0 -0
  161. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_hash_util.py +0 -0
  162. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_http_request_util.py +0 -0
  163. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_ip_util.py +0 -0
  164. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_json_db_util.py +0 -0
  165. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_json_util.py +0 -0
  166. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_jwt_util.py +0 -0
  167. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_list_of_dicts_to_xlsx.py +0 -0
  168. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_list_util.py +0 -0
  169. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_logging_util.py +0 -0
  170. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_mongodb_util.py +0 -0
  171. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_need_type_util.py +0 -0
  172. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_openai_api_client_util.py +0 -0
  173. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_parse_command.py +0 -0
  174. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_postgresql_util.py +0 -0
  175. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_run_cmd_util.py +0 -0
  176. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_schedule_uust_api_client_util.py +0 -0
  177. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_settings_util.py +0 -0
  178. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_sleep_util.py +0 -0
  179. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_sqlalchemy_model_util.py +0 -0
  180. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_sqlalchemy_util.py +0 -0
  181. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_ssh_runner_util.py +0 -0
  182. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_str_util.py +0 -0
  183. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_type_util.py +0 -0
  184. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/arpakitlib/ar_yookassa_api_client_util.py +0 -0
  185. {arpakitlib-1.7.94 → arpakitlib-1.7.96}/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.94
3
+ Version: 1.7.96
4
4
  Summary: arpakitlib
5
5
  Home-page: https://github.com/ARPAKIT-Company/arpakitlib
6
6
  License: Apache-2.0
@@ -31,7 +31,8 @@ def get_operation_for_execution(
31
31
  *,
32
32
  session: Session | None = None,
33
33
  sqlalchemy_db: SQLAlchemyDB | None = None,
34
- filter_operation_types: list[str] | str | None = None
34
+ filter_operation_types: list[str] | str | None = None,
35
+ lock: bool = False
35
36
  ) -> OperationDBM | None:
36
37
  if isinstance(filter_operation_types, str):
37
38
  filter_operation_types = [filter_operation_types]
@@ -44,6 +45,10 @@ def get_operation_for_execution(
44
45
  )
45
46
  if filter_operation_types:
46
47
  query = query.filter(OperationDBM.type.in_(filter_operation_types))
48
+
49
+ if lock:
50
+ query = query.with_for_update()
51
+
47
52
  query = query.order_by(asc(OperationDBM.creation_dt))
48
53
  operation_dbm: OperationDBM | None = query.first()
49
54
  return operation_dbm
@@ -149,7 +154,7 @@ class BaseOperationExecutor:
149
154
  return operation_dbm
150
155
 
151
156
  def sync_safe_execute_operation(
152
- self, operation_dbm: OperationDBM, worker: OperationExecutorWorker
157
+ self, operation_dbm: OperationDBM, worker: OperationExecutorWorker, session: Session
153
158
  ) -> OperationDBM:
154
159
  self._logger.info(
155
160
  f"start "
@@ -158,20 +163,16 @@ class BaseOperationExecutor:
158
163
  f"operation_dbm.status={operation_dbm.status}"
159
164
  )
160
165
 
161
- with self.sql_alchemy_db.new_session() as session:
162
- operation_dbm: OperationDBM = get_operation_by_id(
163
- session=session, filter_operation_id=operation_dbm.id, raise_if_not_found=True
164
- )
165
- operation_dbm.execution_start_dt = now_utc_dt()
166
- operation_dbm.status = OperationDBM.Statuses.executing
167
- operation_dbm.output_data = combine_dicts(
168
- operation_dbm.output_data,
169
- {
170
- worker.worker_fullname: True
171
- }
172
- )
173
- session.commit()
174
- session.refresh(operation_dbm)
166
+ operation_dbm.execution_start_dt = now_utc_dt()
167
+ operation_dbm.status = OperationDBM.Statuses.executing
168
+ operation_dbm.output_data = combine_dicts(
169
+ operation_dbm.output_data,
170
+ {
171
+ worker.worker_fullname: True
172
+ }
173
+ )
174
+ session.commit()
175
+ session.refresh(operation_dbm)
175
176
 
176
177
  exception: BaseException | None = None
177
178
  traceback_str: str | None = None
@@ -186,40 +187,35 @@ class BaseOperationExecutor:
186
187
  exception = exception_
187
188
  traceback_str = traceback.format_exc()
188
189
 
189
- with self.sql_alchemy_db.new_session() as session:
190
-
191
- operation_dbm: OperationDBM = get_operation_by_id(
192
- session=session, filter_operation_id=operation_dbm.id, raise_if_not_found=True
190
+ operation_dbm.execution_finish_dt = now_utc_dt()
191
+ if exception:
192
+ operation_dbm.status = OperationDBM.Statuses.executed_with_error
193
+ operation_dbm.error_data = combine_dicts(
194
+ {
195
+ "exception_str": str(exception),
196
+ "traceback_str": traceback_str
197
+ },
198
+ operation_dbm.error_data
193
199
  )
194
- operation_dbm.execution_finish_dt = now_utc_dt()
195
- if exception:
196
- operation_dbm.status = OperationDBM.Statuses.executed_with_error
197
- operation_dbm.error_data = combine_dicts(
198
- {
199
- "exception_str": str(exception),
200
- "traceback_str": traceback_str
201
- },
202
- operation_dbm.error_data
203
- )
204
- else:
205
- operation_dbm.status = OperationDBM.Statuses.executed_without_error
200
+ else:
201
+ operation_dbm.status = OperationDBM.Statuses.executed_without_error
202
+ session.commit()
203
+
204
+ if exception:
205
+ story_log_dbm = StoryLogDBM(
206
+ level=StoryLogDBM.Levels.error,
207
+ title=f"error in sync_execute_operation (id={operation_dbm.id}, type={operation_dbm.type})",
208
+ data={
209
+ "operation_id": operation_dbm.id,
210
+ "exception_str": str(exception),
211
+ "traceback_str": traceback_str
212
+ }
213
+ )
214
+ session.add(story_log_dbm)
206
215
  session.commit()
216
+ session.refresh(story_log_dbm)
207
217
 
208
- if exception:
209
- story_log_dbm = StoryLogDBM(
210
- level=StoryLogDBM.Levels.error,
211
- title=f"error in sync_execute_operation (id={operation_dbm.id}, type={operation_dbm.type})",
212
- data={
213
- "operation_id": operation_dbm.id,
214
- "exception_str": str(exception),
215
- "traceback_str": traceback_str
216
- }
217
- )
218
- session.add(story_log_dbm)
219
- session.commit()
220
- session.refresh(story_log_dbm)
221
-
222
- session.refresh(operation_dbm)
218
+ session.refresh(operation_dbm)
223
219
 
224
220
  self._logger.info(
225
221
  f"finish sync_safe_execute_operation, "
@@ -251,7 +247,7 @@ class BaseOperationExecutor:
251
247
 
252
248
  with self.sql_alchemy_db.new_session() as session:
253
249
  operation_dbm: OperationDBM = get_operation_by_id(
254
- session=session, filter_operation_id=operation_dbm.id, raise_if_not_found=True
250
+ session=session, filter_operation_id=operation_dbm.id, raise_if_not_found=True, lock=True
255
251
  )
256
252
  operation_dbm.execution_start_dt = now_utc_dt()
257
253
  operation_dbm.status = OperationDBM.Statuses.executing
@@ -280,7 +276,7 @@ class BaseOperationExecutor:
280
276
  with self.sql_alchemy_db.new_session() as session:
281
277
 
282
278
  operation_dbm: OperationDBM = get_operation_by_id(
283
- session=session, filter_operation_id=operation_dbm.id, raise_if_not_found=True
279
+ session=session, filter_operation_id=operation_dbm.id, raise_if_not_found=True, lock=True
284
280
  )
285
281
  operation_dbm.execution_finish_dt = now_utc_dt()
286
282
  if exception:
@@ -346,17 +342,21 @@ class OperationExecutorWorker(BaseWorker):
346
342
  self.sqlalchemy_db.init()
347
343
  self.sync_run_startup_funcs()
348
344
 
349
- def sync_execute_operation(self, operation_dbm: OperationDBM) -> OperationDBM:
350
- return self.operation_executor.sync_safe_execute_operation(operation_dbm=operation_dbm, worker=self)
345
+ def sync_execute_operation(self, operation_dbm: OperationDBM, session: Session) -> OperationDBM:
346
+ return self.operation_executor.sync_safe_execute_operation(
347
+ operation_dbm=operation_dbm, worker=self, session=session
348
+ )
351
349
 
352
350
  def sync_run(self):
353
- operation_dbm: OperationDBM | None = get_operation_for_execution(
354
- sqlalchemy_db=self.sqlalchemy_db,
355
- filter_operation_types=self.filter_operation_types
356
- )
357
- if not operation_dbm:
358
- return
359
- self.sync_execute_operation(operation_dbm=operation_dbm)
351
+ with self.sqlalchemy_db.new_session() as session:
352
+ operation_dbm: OperationDBM | None = get_operation_for_execution(
353
+ session=session,
354
+ filter_operation_types=self.filter_operation_types,
355
+ lock=True
356
+ )
357
+ if not operation_dbm:
358
+ return
359
+ self.sync_execute_operation(operation_dbm=operation_dbm, session=session)
360
360
 
361
361
  def sync_run_on_error(self, exception: BaseException, **kwargs):
362
362
  pass
@@ -371,7 +371,8 @@ class OperationExecutorWorker(BaseWorker):
371
371
  async def async_run(self):
372
372
  operation_dbm: OperationDBM | None = get_operation_for_execution(
373
373
  sqlalchemy_db=self.sqlalchemy_db,
374
- filter_operation_types=self.filter_operation_types
374
+ filter_operation_types=self.filter_operation_types,
375
+ lock=True
375
376
  )
376
377
  if not operation_dbm:
377
378
  return
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "arpakitlib"
3
- version = "1.7.94"
3
+ version = "1.7.96"
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