arpakitlib 1.7.93__tar.gz → 1.7.94__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.93 → arpakitlib-1.7.94}/PKG-INFO +1 -1
  2. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_base_worker_util.py +34 -14
  3. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_operation_execution_util.py +27 -19
  4. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/pyproject.toml +1 -1
  5. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/LICENSE +0 -0
  6. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/NOTICE +0 -0
  7. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/README.md +0 -0
  8. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/__init__.py +0 -0
  9. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/.gitignore +0 -0
  10. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/.python-version +0 -0
  11. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/ARPAKITLIB +0 -0
  12. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/AUTHOR.md +0 -0
  13. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/LICENSE +0 -0
  14. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/NOTICE +0 -0
  15. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/README.md +0 -0
  16. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/example.env +0 -0
  17. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/__init__.py +0 -0
  18. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/docker_ps.sh +0 -0
  19. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/docker_ps_a.sh +0 -0
  20. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/docker_run_postgres_for_dev.sh +0 -0
  21. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/docker_start_postgres_for_dev.sh +0 -0
  22. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/docker_stop_postgres_for_dev.sh +0 -0
  23. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/example_nginx_proxy.nginx +0 -0
  24. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/example_poetry_arpakitlib.sh +0 -0
  25. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/example_pyproject.toml +0 -0
  26. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/example_systemd.service +0 -0
  27. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/git_branch.sh +0 -0
  28. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/git_commit.sh +0 -0
  29. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_github_1.sh +0 -0
  30. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_gitlab_1.sh +0 -0
  31. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_github_1.sh +0 -0
  32. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_gitlab_1.sh +0 -0
  33. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/git_remote_v.sh +0 -0
  34. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/git_set_arpakit_company_origin.sh +0 -0
  35. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/git_set_arpakit_origin.sh +0 -0
  36. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/git_status.sh +0 -0
  37. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/hello_world.py +0 -0
  38. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/json_beutify.py +0 -0
  39. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/logging_check.py +0 -0
  40. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/note/__init__.py +0 -0
  41. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/note/note_1.txt +0 -0
  42. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/note/note_2.txt +0 -0
  43. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/note/note_3.txt +0 -0
  44. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/note/note_4.txt +0 -0
  45. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/note/note_5.txt +0 -0
  46. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/poetry_add_plugin_export.sh +0 -0
  47. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/poetry_check.sh +0 -0
  48. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/poetry_clear_cache.sh +0 -0
  49. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/poetry_config_virtualenvs_in_project_true.sh +0 -0
  50. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/poetry_generate_requirements.txt.sh +0 -0
  51. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/poetry_install.sh +0 -0
  52. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/poetry_lock.sh +0 -0
  53. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/poetry_remove_and_add_arpakitlib.sh +0 -0
  54. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/poetry_show.sh +0 -0
  55. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/poetry_show_arpakitlib.sh +0 -0
  56. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/poetry_update.sh +0 -0
  57. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/poetry_update_arpakitlib.sh +0 -0
  58. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/requirements.txt +0 -0
  59. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/sandbox/__init__.py +0 -0
  60. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_1.py +0 -0
  61. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_2.py +0 -0
  62. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_3.py +0 -0
  63. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_4.py +0 -0
  64. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_5.py +0 -0
  65. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_6.py +0 -0
  66. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_7.py +0 -0
  67. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_8.sh +0 -0
  68. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_9.sh +0 -0
  69. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/settings_check.py +0 -0
  70. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/settings_generate_env_example.py +0 -0
  71. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/sqlalchemy_db_check_conn.py +0 -0
  72. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/sqlalchemy_db_init.py +0 -0
  73. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/manage/sqlalchemy_db_reinit.py +0 -0
  74. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/resource/__init__.py +0 -0
  75. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/resource/static/__init__.py +0 -0
  76. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/resource/static/healthcheck +0 -0
  77. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/resource/static/helloworld +0 -0
  78. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/__init__.py +0 -0
  79. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/additional_model/__init__.py +0 -0
  80. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/additional_model/additional_model.py +0 -0
  81. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/api/__init__.py +0 -0
  82. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/api/asgi.py +0 -0
  83. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/api/auth.py +0 -0
  84. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/api/const.py +0 -0
  85. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/api/create_api_app.py +0 -0
  86. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/api/event.py +0 -0
  87. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/api/router/__init__.py +0 -0
  88. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/api/router/main_router.py +0 -0
  89. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/api/router/v1/__init__.py +0 -0
  90. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/api/router/v1/get_api_error_info.py +0 -0
  91. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/api/router/v1/main_router.py +0 -0
  92. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/api/schema/__init__.py +0 -0
  93. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/api/schema/v1/__init__.py +0 -0
  94. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/api/schema/v1/in_.py +0 -0
  95. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/api/schema/v1/out.py +0 -0
  96. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/api/start_api_for_dev.py +0 -0
  97. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/api/start_api_for_dev_with_reload.py +0 -0
  98. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/api/transmitted_api_data.py +0 -0
  99. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/api/util.py +0 -0
  100. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/business_service/__init__.py +0 -0
  101. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/core/__init__.py +0 -0
  102. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/core/const.py +0 -0
  103. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/core/settings.py +0 -0
  104. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/core/util.py +0 -0
  105. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/db/__init__.py +0 -0
  106. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/db/sqlalchemy_model.py +0 -0
  107. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/db/util.py +0 -0
  108. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/operation_execution/__init__.py +0 -0
  109. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/operation_execution/const.py +0 -0
  110. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/operation_execution/operation_executor.py +0 -0
  111. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/operation_execution/scheduled_operations.py +0 -0
  112. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/operation_execution/start_operation_executor_worker_for_dev.py +0 -0
  113. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/operation_execution/start_scheduled_operation_creator_worker_for_dev.py +0 -0
  114. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/operation_execution/util.py +0 -0
  115. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/test_data/__init__.py +0 -0
  116. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_1.py +0 -0
  117. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_2.py +0 -0
  118. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_3.py +0 -0
  119. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_4.py +0 -0
  120. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_5.py +0 -0
  121. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/_arpakit_project_template/src/util/__init__.py +0 -0
  122. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/api_key_util.py +0 -0
  123. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_additional_model_util.py +0 -0
  124. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_aiogram_util.py +0 -0
  125. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_arpakit_lib_module_util.py +0 -0
  126. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_arpakit_project_template_util.py +0 -0
  127. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_arpakit_schedule_uust_api_client_util.py +0 -0
  128. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_arpakitlib_cli_util.py +0 -0
  129. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_base64_util.py +0 -0
  130. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_cache_file_util.py +0 -0
  131. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_datetime_util.py +0 -0
  132. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_dict_util.py +0 -0
  133. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_dream_ai_api_client_util.py +0 -0
  134. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_encrypt_decrypt_util.py +0 -0
  135. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_enumeration_util.py +0 -0
  136. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_exception_util.py +0 -0
  137. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/healthcheck +0 -0
  138. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/redoc/redoc.standalone.js +0 -0
  139. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/swagger-ui/favicon-16x16.png +0 -0
  140. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/swagger-ui/favicon-32x32.png +0 -0
  141. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/swagger-ui/index.css +0 -0
  142. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/swagger-ui/index.html +0 -0
  143. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/swagger-ui/oauth2-redirect.html +0 -0
  144. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-initializer.js +0 -0
  145. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-bundle.js +0 -0
  146. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-bundle.js.map +0 -0
  147. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle-core.js +0 -0
  148. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle-core.js.map +0 -0
  149. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle.js +0 -0
  150. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle.js.map +0 -0
  151. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-standalone-preset.js +0 -0
  152. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-standalone-preset.js.map +0 -0
  153. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css +0 -0
  154. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css.map +0 -0
  155. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js +0 -0
  156. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js.map +0 -0
  157. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_fastapi_util.py +0 -0
  158. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_file_storage_in_dir_util.py +0 -0
  159. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_file_util.py +0 -0
  160. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_func_util.py +0 -0
  161. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_hash_util.py +0 -0
  162. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_http_request_util.py +0 -0
  163. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_ip_util.py +0 -0
  164. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_json_db_util.py +0 -0
  165. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_json_util.py +0 -0
  166. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_jwt_util.py +0 -0
  167. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_list_of_dicts_to_xlsx.py +0 -0
  168. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_list_util.py +0 -0
  169. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_logging_util.py +0 -0
  170. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_mongodb_util.py +0 -0
  171. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_need_type_util.py +0 -0
  172. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_openai_api_client_util.py +0 -0
  173. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_parse_command.py +0 -0
  174. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_postgresql_util.py +0 -0
  175. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_run_cmd_util.py +0 -0
  176. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_schedule_uust_api_client_util.py +0 -0
  177. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_settings_util.py +0 -0
  178. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_sleep_util.py +0 -0
  179. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_sqlalchemy_model_util.py +0 -0
  180. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_sqlalchemy_util.py +0 -0
  181. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_ssh_runner_util.py +0 -0
  182. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_str_util.py +0 -0
  183. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_type_util.py +0 -0
  184. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/arpakitlib/ar_yookassa_api_client_util.py +0 -0
  185. {arpakitlib-1.7.93 → arpakitlib-1.7.94}/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.93
3
+ Version: 1.7.94
4
4
  Summary: arpakitlib
5
5
  Home-page: https://github.com/ARPAKIT-Company/arpakitlib
6
6
  License: Apache-2.0
@@ -6,11 +6,14 @@ import multiprocessing
6
6
  import threading
7
7
  from abc import ABC
8
8
  from datetime import timedelta
9
+ from random import randint
9
10
  from typing import Any
11
+ from uuid import uuid4
10
12
 
13
+ from arpakitlib.ar_datetime_util import now_utc_dt
11
14
  from arpakitlib.ar_enumeration_util import Enumeration
12
15
  from arpakitlib.ar_func_util import is_async_function, is_sync_function
13
- from arpakitlib.ar_sleep_util import sync_safe_sleep, async_safe_sleep
16
+ from arpakitlib.ar_sleep_util import sync_safe_sleep
14
17
 
15
18
  _ARPAKIT_LIB_MODULE_VERSION = "3.0"
16
19
 
@@ -21,15 +24,23 @@ class BaseWorker(ABC):
21
24
  *,
22
25
  timeout_after_run=timedelta(seconds=0.3),
23
26
  timeout_after_err_in_run=timedelta(seconds=1),
24
- startup_funcs: list[Any] | None = None
27
+ startup_funcs: list[Any] | None = None,
28
+ worker_name: str | None = None
25
29
  ):
26
30
  if startup_funcs is None:
27
31
  startup_funcs = []
28
32
  self.startup_funcs = startup_funcs
29
- self.worker_name = self.__class__.__name__
30
- self._logger = logging.getLogger(self.worker_name)
31
- self.timeout_after_run = timeout_after_run.total_seconds()
32
- self.timeout_after_err_in_run = timeout_after_err_in_run.total_seconds()
33
+ if worker_name is None:
34
+ worker_name = self.__class__.__name__
35
+ self.worker_name = worker_name
36
+ self.worker_creation_dt = now_utc_dt()
37
+ self.worker_id = f"{str(uuid4()).replace(' - ', '')}_{randint(1000, 9999)}"
38
+ self.worker_fullname = (
39
+ f"{self.worker_name}_{self.worker_creation_dt.isoformat()}_{self.worker_id}"
40
+ )
41
+ self._logger = logging.getLogger(self.worker_fullname)
42
+ self.timeout_after_run = timeout_after_run
43
+ self.timeout_after_err_in_run = timeout_after_err_in_run
33
44
 
34
45
  def sync_run_startup_funcs(self):
35
46
  for startup_func in self.startup_funcs:
@@ -41,10 +52,10 @@ class BaseWorker(ABC):
41
52
  raise TypeError("no sync and not async")
42
53
 
43
54
  def sync_on_startup(self):
44
- pass
55
+ self.sync_run_startup_funcs()
45
56
 
46
57
  def sync_run(self):
47
- self._logger.info("hello world")
58
+ self._logger.info(f"hello world, im {self.worker_fullname}")
48
59
 
49
60
  def sync_run_on_error(self, exception: BaseException, **kwargs):
50
61
  pass
@@ -66,8 +77,8 @@ class BaseWorker(ABC):
66
77
  except BaseException as exception_:
67
78
  self._logger.error("error in sync_run_on_error", exc_info=exception_)
68
79
  raise exception_
69
- if self.timeout_after_run is not None:
70
- sync_safe_sleep(self.timeout_after_run)
80
+ sync_safe_sleep(self.timeout_after_err_in_run)
81
+ sync_safe_sleep(self.timeout_after_run)
71
82
 
72
83
  async def async_run_startup_funcs(self):
73
84
  for startup_func in self.startup_funcs:
@@ -79,10 +90,10 @@ class BaseWorker(ABC):
79
90
  raise TypeError("no sync and not async")
80
91
 
81
92
  async def async_on_startup(self):
82
- pass
93
+ await self.async_run_startup_funcs()
83
94
 
84
95
  async def async_run(self):
85
- self._logger.info("hello world")
96
+ self._logger.info(f"hello world, im {self.worker_fullname}")
86
97
 
87
98
  async def async_run_on_error(self, exception: BaseException, **kwargs):
88
99
  pass
@@ -104,8 +115,8 @@ class BaseWorker(ABC):
104
115
  except BaseException as exception_:
105
116
  self._logger.error("error in async_run_on_error", exc_info=exception_)
106
117
  raise exception_
107
- if self.timeout_after_err_in_run is not None:
108
- await async_safe_sleep(self.timeout_after_err_in_run)
118
+ sync_safe_sleep(self.timeout_after_err_in_run)
119
+ sync_safe_sleep(self.timeout_after_run)
109
120
 
110
121
 
111
122
  class SafeRunInBackgroundModes(Enumeration):
@@ -136,6 +147,15 @@ def safe_run_worker_in_background(*, worker: BaseWorker, mode: str) -> (
136
147
  return res
137
148
 
138
149
 
150
+ def safe_run_workers_in_background(
151
+ *, workers: list[BaseWorker], mode: str
152
+ ) -> list[asyncio.Task] | list[threading.Thread] | list[multiprocessing.Process]:
153
+ res = []
154
+ for worker in workers:
155
+ res.append(safe_run_worker_in_background(worker=worker, mode=mode))
156
+ return res
157
+
158
+
139
159
  def __example():
140
160
  pass
141
161
 
@@ -148,7 +148,9 @@ class BaseOperationExecutor:
148
148
  raise Exception("raise_fake_exception")
149
149
  return operation_dbm
150
150
 
151
- def sync_safe_execute_operation(self, operation_dbm: OperationDBM) -> OperationDBM:
151
+ def sync_safe_execute_operation(
152
+ self, operation_dbm: OperationDBM, worker: OperationExecutorWorker
153
+ ) -> OperationDBM:
152
154
  self._logger.info(
153
155
  f"start "
154
156
  f"operation_dbm.id={operation_dbm.id}, "
@@ -162,6 +164,12 @@ class BaseOperationExecutor:
162
164
  )
163
165
  operation_dbm.execution_start_dt = now_utc_dt()
164
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
+ )
165
173
  session.commit()
166
174
  session.refresh(operation_dbm)
167
175
 
@@ -231,7 +239,9 @@ class BaseOperationExecutor:
231
239
  raise Exception("raise_fake_exception")
232
240
  return operation_dbm
233
241
 
234
- async def async_safe_execute_operation(self, operation_dbm: OperationDBM) -> OperationDBM:
242
+ async def async_safe_execute_operation(
243
+ self, operation_dbm: OperationDBM, worker: OperationExecutorWorker
244
+ ) -> OperationDBM:
235
245
  self._logger.info(
236
246
  f"start "
237
247
  f"operation_dbm.id={operation_dbm.id}, "
@@ -245,6 +255,12 @@ class BaseOperationExecutor:
245
255
  )
246
256
  operation_dbm.execution_start_dt = now_utc_dt()
247
257
  operation_dbm.status = OperationDBM.Statuses.executing
258
+ operation_dbm.output_data = combine_dicts(
259
+ operation_dbm.output_data,
260
+ {
261
+ worker.worker_fullname: True
262
+ }
263
+ )
248
264
  session.commit()
249
265
  session.refresh(operation_dbm)
250
266
 
@@ -315,19 +331,15 @@ class OperationExecutorWorker(BaseWorker):
315
331
  sqlalchemy_db: SQLAlchemyDB,
316
332
  operation_executor: BaseOperationExecutor | None = None,
317
333
  filter_operation_types: str | list[str] | None = None,
318
- timeout_after_run=timedelta(seconds=0.3),
319
- timeout_after_err_in_run=timedelta(seconds=1),
320
334
  startup_funcs: list[Any] | None = None
321
335
  ):
322
- super().__init__(
323
- timeout_after_run=timeout_after_run,
324
- timeout_after_err_in_run=timeout_after_err_in_run,
325
- startup_funcs=startup_funcs
326
- )
336
+ super().__init__(startup_funcs=startup_funcs)
327
337
  self.sqlalchemy_db = sqlalchemy_db
328
338
  if operation_executor is None:
329
339
  operation_executor = BaseOperationExecutor(sqlalchemy_db=sqlalchemy_db)
330
340
  self.operation_executor = operation_executor
341
+ if isinstance(filter_operation_types, str):
342
+ filter_operation_types = [filter_operation_types]
331
343
  self.filter_operation_types = filter_operation_types
332
344
 
333
345
  def sync_on_startup(self):
@@ -335,7 +347,7 @@ class OperationExecutorWorker(BaseWorker):
335
347
  self.sync_run_startup_funcs()
336
348
 
337
349
  def sync_execute_operation(self, operation_dbm: OperationDBM) -> OperationDBM:
338
- return self.operation_executor.sync_safe_execute_operation(operation_dbm=operation_dbm)
350
+ return self.operation_executor.sync_safe_execute_operation(operation_dbm=operation_dbm, worker=self)
339
351
 
340
352
  def sync_run(self):
341
353
  operation_dbm: OperationDBM | None = get_operation_for_execution(
@@ -354,7 +366,7 @@ class OperationExecutorWorker(BaseWorker):
354
366
  await self.async_run_startup_funcs()
355
367
 
356
368
  async def async_execute_operation(self, operation_dbm: OperationDBM) -> OperationDBM:
357
- return await self.operation_executor.async_safe_execute_operation(operation_dbm=operation_dbm)
369
+ return await self.operation_executor.async_safe_execute_operation(operation_dbm=operation_dbm, worker=self)
358
370
 
359
371
  async def async_run(self):
360
372
  operation_dbm: OperationDBM | None = get_operation_for_execution(
@@ -383,19 +395,15 @@ class ScheduledOperationCreatorWorker(BaseWorker):
383
395
  self,
384
396
  *,
385
397
  sqlalchemy_db: SQLAlchemyDB,
386
- scheduled_operations: list[ScheduledOperation] | None = None,
387
- timeout_after_run=timedelta(seconds=0.3),
388
- timeout_after_err_in_run=timedelta(seconds=1),
398
+ scheduled_operations: ScheduledOperation | list[ScheduledOperation] | None = None,
389
399
  startup_funcs: list[Any] | None = None
390
400
  ):
391
- super().__init__(
392
- timeout_after_run=timeout_after_run,
393
- timeout_after_err_in_run=timeout_after_err_in_run,
394
- startup_funcs=startup_funcs
395
- )
401
+ super().__init__(startup_funcs=startup_funcs)
396
402
  self.sqlalchemy_db = sqlalchemy_db
397
403
  if scheduled_operations is None:
398
404
  scheduled_operations = []
405
+ if isinstance(scheduled_operations, ScheduledOperation):
406
+ scheduled_operations = [scheduled_operations]
399
407
  self.scheduled_operations = scheduled_operations
400
408
 
401
409
  def sync_on_startup(self):
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "arpakitlib"
3
- version = "1.7.93"
3
+ version = "1.7.94"
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