arpakitlib 1.8.305__tar.gz → 1.8.320__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.

Potentially problematic release.


This version of arpakitlib might be problematic. Click here for more details.

Files changed (438) hide show
  1. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/PKG-INFO +2 -2
  2. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_ensure_sqlalchemy_check_constraints.py +4 -2
  3. arpakitlib-1.8.320/arpakitlib/ar_generate_connection_url_util.py +79 -0
  4. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_mongodb_util.py +0 -23
  5. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_settings_util.py +24 -3
  6. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_sqlalchemy_drop_check_constraints.py +3 -0
  7. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_sqlalchemy_util.py +3 -40
  8. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_uppercase_env_keys.py +24 -13
  9. arpakitlib-1.8.320/arpakitlib/include_fastapi_routers_from_dir.py +44 -0
  10. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/pyproject.toml +3 -2
  11. arpakitlib-1.8.305/arpakitlib/ar_additional_model_util.py +0 -40
  12. arpakitlib-1.8.305/arpakitlib/ar_arpakit_schedule_uust_api_client_util.py +0 -422
  13. arpakitlib-1.8.305/arpakitlib/ar_arpakit_schedule_uust_site_util.py +0 -68
  14. arpakitlib-1.8.305/arpakitlib/ar_generate_celery_url.py +0 -71
  15. arpakitlib-1.8.305/arpakitlib/ar_schedule_uust_api_client_util.py +0 -227
  16. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/LICENSE +0 -0
  17. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/README.md +0 -0
  18. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/__init__.py +0 -0
  19. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/.gitignore +0 -0
  20. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/.python-version +0 -0
  21. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/LICENSE +0 -0
  22. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/README.md +0 -0
  23. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/alembic/README +0 -0
  24. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/alembic/env.py +0 -0
  25. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/alembic/script.py.mako +0 -0
  26. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/alembic/versions/__init__.py +0 -0
  27. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/alembic.ini +0 -0
  28. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/arpakitlib_project_template_info.json +0 -0
  29. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/__init__.py +0 -0
  30. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/alembic_heads.sh +0 -0
  31. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/alembic_history.sh +0 -0
  32. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/alembic_history_verbose.sh +0 -0
  33. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/alembic_revision_autogenerate.sh +0 -0
  34. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/alembic_upgrade_head.sh +0 -0
  35. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/beautify_json.py +0 -0
  36. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/check_logging.py +0 -0
  37. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/check_sqlalchemy_db.py +0 -0
  38. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/demojize.py +0 -0
  39. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/docker_ps_a.sh +0 -0
  40. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/docker_rm_postgres.sh +0 -0
  41. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/docker_run_postgres.sh +0 -0
  42. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/docker_start_postgres.sh +0 -0
  43. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/docker_stop_postgres.sh +0 -0
  44. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/drop_json_db.py +0 -0
  45. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/drop_sqlalchemy_db.py +0 -0
  46. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/emojize.py +0 -0
  47. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/ensure_sqlalchemy_check_constraints.py +0 -0
  48. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/generate_settings_env_example.py +0 -0
  49. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/git_commit.sh +0 -0
  50. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/git_push_arpakit_company_github_1.sh +0 -0
  51. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/git_push_arpakit_company_gitlab_1.sh +0 -0
  52. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/git_push_arpakit_github_1.sh +0 -0
  53. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/git_push_arpakit_gitlab_1.sh +0 -0
  54. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/git_remote_v.sh +0 -0
  55. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/git_set_arpakit_company_origin.sh +0 -0
  56. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/git_set_arpakit_origin.sh +0 -0
  57. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/git_set_divarteam_origin.sh +0 -0
  58. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/git_status.sh +0 -0
  59. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/hello_world.py +0 -0
  60. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/init_json_db.py +0 -0
  61. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/init_sqlalchemy_db.py +0 -0
  62. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/poetry_check.sh +0 -0
  63. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/poetry_clear_cache.sh +0 -0
  64. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/poetry_config.sh +0 -0
  65. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/poetry_install.sh +0 -0
  66. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/poetry_lock.sh +0 -0
  67. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/poetry_remove_and_add_arpakitlib.sh +0 -0
  68. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/poetry_show.sh +0 -0
  69. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/poetry_show_arpakitlib.sh +0 -0
  70. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/poetry_update.sh +0 -0
  71. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/poetry_update_arpakitlib.sh +0 -0
  72. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/reinit_all_sqlalchemy_db.py +0 -0
  73. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/reinit_json_db.py +0 -0
  74. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/reinit_sqlalchemy_db.py +0 -0
  75. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/remove_operations.py +0 -0
  76. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/remove_rows_from_tables_sqlalchemy_db.py +0 -0
  77. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/remove_story_logs.py +0 -0
  78. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/rm_all_records_in_json_db.py +0 -0
  79. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/set_tg_bot_commands.py +0 -0
  80. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/show_arpakitlib_project_template_info.py +0 -0
  81. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/show_settings.py +0 -0
  82. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/show_sqlalchemy_db_table_name_to_amount.py +0 -0
  83. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/start_api.py +0 -0
  84. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/start_api_for_prod.py +0 -0
  85. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/start_operation_executor_worker.py +0 -0
  86. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/start_operation_executor_workers_mode_async_task.py +0 -0
  87. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/start_operation_executor_workers_mode_thread.py +0 -0
  88. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/start_scheduled_operation_creator_worker.py +0 -0
  89. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/start_sqladmin.py +0 -0
  90. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/start_sqladmin_for_prod.py +0 -0
  91. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/start_sqladmin_with_reload.py +0 -0
  92. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/start_tg_bot.py +0 -0
  93. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/command/start_tg_bot_for_prod.py +0 -0
  94. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/example.env +0 -0
  95. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/note/note_1.txt +0 -0
  96. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/note/note_2.txt +0 -0
  97. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/note/note_3.txt +0 -0
  98. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/note/note_4.txt +0 -0
  99. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/note/note_5.txt +0 -0
  100. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/__init__.py +0 -0
  101. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/additional_model/__init__.py +0 -0
  102. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/additional_model/common.py +0 -0
  103. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/__init__.py +0 -0
  104. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/api_error_codes.py +0 -0
  105. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/api_exception.py +0 -0
  106. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/asgi.py +0 -0
  107. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/authorize.py +0 -0
  108. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/before_start_api.py +0 -0
  109. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/blank/__init__.py +0 -0
  110. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/blank/admin.py +0 -0
  111. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/blank/client.py +0 -0
  112. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/blank/common.py +0 -0
  113. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/create_api_app.py +0 -0
  114. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/create_first_data.py +0 -0
  115. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/event.py +0 -0
  116. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/exception_handler.py +0 -0
  117. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/middleware/__init__.py +0 -0
  118. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/middleware/add_api_middlewares.py +0 -0
  119. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/middleware/limit_content_length.py +0 -0
  120. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/openapi_ui.py +0 -0
  121. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/raise_own_exception_if_exception_in_api_router.py +0 -0
  122. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/response.py +0 -0
  123. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/__init__.py +0 -0
  124. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/__init__.py +0 -0
  125. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/check_sqlalchemy_db.py +0 -0
  126. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/clear_log_file.py +0 -0
  127. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/create_operation.py +0 -0
  128. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_arpakitlib_project_template_info.py +0 -0
  129. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_auth_data.py +0 -0
  130. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_log_file.py +0 -0
  131. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation.py +0 -0
  132. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation_allowed_statuses.py +0 -0
  133. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation_allowed_types.py +0 -0
  134. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_settings.py +0 -0
  135. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_sqlalchemy_db_table_name_to_amount.py +0 -0
  136. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_story_log.py +0 -0
  137. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_user.py +0 -0
  138. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/init_sqlalchemy_db.py +0 -0
  139. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/main_router.py +0 -0
  140. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/make_test_data_1.py +0 -0
  141. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/make_test_data_2.py +0 -0
  142. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/make_test_data_3.py +0 -0
  143. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/make_test_data_4.py +0 -0
  144. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/make_test_data_5.py +0 -0
  145. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/raise_api_exception_1.py +0 -0
  146. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/raise_api_exception_2.py +0 -0
  147. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/raise_api_exception_3.py +0 -0
  148. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/raise_fake_error.py +0 -0
  149. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/reinit_sqlalchemy_db.py +0 -0
  150. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/client/__init__.py +0 -0
  151. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user.py +0 -0
  152. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user_token.py +0 -0
  153. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/client/main_router.py +0 -0
  154. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/__init__.py +0 -0
  155. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/check_authorization.py +0 -0
  156. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/get_current_api_key.py +0 -0
  157. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/get_errors_info.py +0 -0
  158. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/healthcheck.py +0 -0
  159. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/main_router.py +0 -0
  160. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/now_utc_datetime.py +0 -0
  161. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/router/main_router.py +0 -0
  162. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/__init__.py +0 -0
  163. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/common.py +0 -0
  164. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/__init__.py +0 -0
  165. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/admin/__init__.py +0 -0
  166. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/admin/common.py +0 -0
  167. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/client/__init__.py +0 -0
  168. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/client/common.py +0 -0
  169. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/common/__init__.py +0 -0
  170. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/general/__init__.py +0 -0
  171. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/general/common.py +0 -0
  172. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/__init__.py +0 -0
  173. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/__init__.py +0 -0
  174. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/common.py +0 -0
  175. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/operation.py +0 -0
  176. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/story_log.py +0 -0
  177. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/user.py +0 -0
  178. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/__init__.py +0 -0
  179. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/common.py +0 -0
  180. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/complicated_user_1.py +0 -0
  181. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/complicated_user_token_1.py +0 -0
  182. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user.py +0 -0
  183. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user_token.py +0 -0
  184. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/__init__.py +0 -0
  185. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/datetime_.py +0 -0
  186. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/error.py +0 -0
  187. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/ok.py +0 -0
  188. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/raw_data.py +0 -0
  189. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/__init__.py +0 -0
  190. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/api_key.py +0 -0
  191. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/common.py +0 -0
  192. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user.py +0 -0
  193. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user_token.py +0 -0
  194. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/util/__init__.py +0 -0
  195. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/util/create_obj_schema_from_dbm.py +0 -0
  196. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/start_api.py +0 -0
  197. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/api/util.py +0 -0
  198. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/business_service/__init__.py +0 -0
  199. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/business_service/exception.py +0 -0
  200. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/business_service/hello_world.py +0 -0
  201. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/business_service/remove_operations.py +0 -0
  202. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/celery_/__init__.py +0 -0
  203. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/core/__init__.py +0 -0
  204. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/core/cache_file_storage_in_dir.py +0 -0
  205. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/core/const.py +0 -0
  206. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/core/dump_file_storage_in_dir.py +0 -0
  207. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/core/jinja2_templates.py +0 -0
  208. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/core/media_file_storage_in_dir.py +0 -0
  209. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/core/settings.py +0 -0
  210. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/core/setup_logging.py +0 -0
  211. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/core/util.py +0 -0
  212. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/emailer/__init__.py +0 -0
  213. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/emailer/send_email.py +0 -0
  214. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/emailer/send_simple_email.py +0 -0
  215. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/json_db/__init__.py +0 -0
  216. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/json_db/json_db.py +0 -0
  217. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/more/__init__.py +0 -0
  218. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/more/api.nginx +0 -0
  219. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/more/helloworld +0 -0
  220. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/__init__.py +0 -0
  221. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/const.py +0 -0
  222. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/operation_executor_worker.py +0 -0
  223. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operation_creator_worker.py +0 -0
  224. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operations.py +0 -0
  225. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/util.py +0 -0
  226. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/__init__.py +0 -0
  227. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/1 +0 -0
  228. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/healthcheck +0 -0
  229. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/helloworld +0 -0
  230. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/openapi-favicon.png +0 -0
  231. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/redoc/redoc.standalone.js +0 -0
  232. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/sqladmin-favicon.png +0 -0
  233. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/favicon-16x16.png +0 -0
  234. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/favicon-32x32.png +0 -0
  235. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/index.css +0 -0
  236. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/index.html +0 -0
  237. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/oauth2-redirect.html +0 -0
  238. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-initializer.js +0 -0
  239. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-bundle.js +0 -0
  240. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-bundle.js.map +0 -0
  241. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-es-bundle-core.js +0 -0
  242. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-es-bundle-core.js.map +0 -0
  243. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-es-bundle.js +0 -0
  244. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-es-bundle.js.map +0 -0
  245. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-standalone-preset.js +0 -0
  246. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-standalone-preset.js.map +0 -0
  247. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui.css +0 -0
  248. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui.css.map +0 -0
  249. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui.js +0 -0
  250. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui.js.map +0 -0
  251. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/templates/healthcheck.txt +0 -0
  252. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/resource/templates/simple_email.html +0 -0
  253. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/__init__.py +0 -0
  254. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_1.py +0 -0
  255. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_2.py +0 -0
  256. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_3.py +0 -0
  257. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_4.py +0 -0
  258. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_5.py +0 -0
  259. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_6.py +0 -0
  260. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_7.py +0 -0
  261. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/site/__init__.py +0 -0
  262. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/site/asgi.py +0 -0
  263. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/site/consts.py +0 -0
  264. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/site/create_site_app.py +0 -0
  265. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/site/event.py +0 -0
  266. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/site/exception_handler.py +0 -0
  267. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/site/router/__init__.py +0 -0
  268. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/site/router/main_router.py +0 -0
  269. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/__init__.py +0 -0
  270. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/add_admin_in_app.py +0 -0
  271. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/admin_authorize.py +0 -0
  272. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/asgi.py +0 -0
  273. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/create_sqladmin_app.py +0 -0
  274. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/event.py +0 -0
  275. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/__init__.py +0 -0
  276. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/api_key.py +0 -0
  277. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/common.py +0 -0
  278. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/operation.py +0 -0
  279. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/story_log.py +0 -0
  280. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user.py +0 -0
  281. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user_token.py +0 -0
  282. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/verification_code.py +0 -0
  283. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/start_sqladmin.py +0 -0
  284. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/util/__init__.py +0 -0
  285. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/util/etc.py +0 -0
  286. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/__init__.py +0 -0
  287. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/const.py +0 -0
  288. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_db.py +0 -0
  289. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/__init__.py +0 -0
  290. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/api_key.py +0 -0
  291. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py +0 -0
  292. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py +0 -0
  293. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/story_log.py +0 -0
  294. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user.py +0 -0
  295. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py +0 -0
  296. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/verification_code.py +0 -0
  297. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/util/__init__.py +0 -0
  298. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/util/execute_func_with_story_log.py +0 -0
  299. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/test_data/__init__.py +0 -0
  300. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_api_keys.py +0 -0
  301. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_1.py +0 -0
  302. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_2.py +0 -0
  303. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_3.py +0 -0
  304. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_4.py +0 -0
  305. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_5.py +0 -0
  306. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/__init__.py +0 -0
  307. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/__init__.py +0 -0
  308. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/admin.py +0 -0
  309. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/client.py +0 -0
  310. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/common.py +0 -0
  311. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback_data_/__init__.py +0 -0
  312. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback_data_/admin.py +0 -0
  313. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback_data_/client.py +0 -0
  314. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback_data_/common.py +0 -0
  315. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/const.py +0 -0
  316. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/event.py +0 -0
  317. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/__init__.py +0 -0
  318. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/is_private_chat.py +0 -0
  319. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/message_text.py +0 -0
  320. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/not_prod_mode_filter.py +0 -0
  321. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/prod_mode_filter.py +0 -0
  322. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/user_roles_has_admin.py +0 -0
  323. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/user_roles_has_client.py +0 -0
  324. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/__init__.py +0 -0
  325. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/__init__.py +0 -0
  326. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin/__init__.py +0 -0
  327. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin/common.py +0 -0
  328. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin/hello_world.py +0 -0
  329. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/__init__.py +0 -0
  330. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/common.py +0 -0
  331. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/support.py +0 -0
  332. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/common.py +0 -0
  333. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/__init__.py +0 -0
  334. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/admin/__init__.py +0 -0
  335. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/admin/common.py +0 -0
  336. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/admin/hello_world.py +0 -0
  337. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/client/__init__.py +0 -0
  338. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/client/common.py +0 -0
  339. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/common.py +0 -0
  340. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/__init__.py +0 -0
  341. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/common.py +0 -0
  342. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/init_user.py +0 -0
  343. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/uil.py +0 -0
  344. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/__init__.py +0 -0
  345. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/__init__.py +0 -0
  346. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/arpakitlib_project_template_info.py +0 -0
  347. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/clear_log_file.py +0 -0
  348. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/current_state.py +0 -0
  349. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/drop_sqlalchemy_db.py +0 -0
  350. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/hello_world.py +0 -0
  351. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/init_sqlalchemy_db.py +0 -0
  352. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_not_modified.py +0 -0
  353. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_old_cd.py +0 -0
  354. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_raise_error.py +0 -0
  355. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_remove_message.py +0 -0
  356. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/log_file.py +0 -0
  357. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/me.py +0 -0
  358. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/raise_fake_error.py +0 -0
  359. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/reinit_sqlalchemy_db.py +0 -0
  360. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/set_tg_bot_commands.py +0 -0
  361. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/__init__.py +0 -0
  362. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/about.py +0 -0
  363. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/author.py +0 -0
  364. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/cancel.py +0 -0
  365. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/error_handler.py +0 -0
  366. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/healthcheck.py +0 -0
  367. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/raw_callback_query.py +0 -0
  368. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/raw_inline_query.py +0 -0
  369. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/raw_message.py +0 -0
  370. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/remove_message.py +0 -0
  371. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/start.py +0 -0
  372. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/support.py +0 -0
  373. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/voice_.py +0 -0
  374. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/main_router.py +0 -0
  375. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/start_tg_bot.py +0 -0
  376. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/state/__init__.py +0 -0
  377. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/state/admin.py +0 -0
  378. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/state/client.py +0 -0
  379. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/state/common.py +0 -0
  380. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/state/util.py +0 -0
  381. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/tg_bot.py +0 -0
  382. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/tg_bot_dispatcher.py +0 -0
  383. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/__init__.py +0 -0
  384. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/etc.py +0 -0
  385. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/notify_admins.py +0 -0
  386. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/set_tg_bot_commands.py +0 -0
  387. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot_notifier/__init__.py +0 -0
  388. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot_notifier/blank.py +0 -0
  389. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot_notifier/tg_bot_notifier.py +0 -0
  390. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/util/__init__.py +0 -0
  391. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/util/arpakitlib_project_template_util.py +0 -0
  392. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/util/etc.py +0 -0
  393. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/project/util/send_email_.py +0 -0
  394. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/_arpakit_project_template_v_5/todo.txt +0 -0
  395. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_aiogram_as_tg_command_util.py +0 -0
  396. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_arpakit_lib_module_util.py +0 -0
  397. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_arpakit_project_template_util.py +0 -0
  398. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_arpakitlib_cli_util.py +0 -0
  399. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_base64_util.py +0 -0
  400. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_base_worker_util.py +0 -0
  401. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_blank_util.py +0 -0
  402. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_cache_file_util.py +0 -0
  403. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_class_util.py +0 -0
  404. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_clone_pydantic_model_fields.py +0 -0
  405. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_datetime_util.py +0 -0
  406. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_dict_util.py +0 -0
  407. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_encrypt_decrypt_util.py +0 -0
  408. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_enumeration_util.py +0 -0
  409. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_exception_util.py +0 -0
  410. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_file_storage_in_dir_util.py +0 -0
  411. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_file_util.py +0 -0
  412. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_func_util.py +0 -0
  413. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_generate_simple_code.py +0 -0
  414. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_hash_util.py +0 -0
  415. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_http_request_util.py +0 -0
  416. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_ip_util.py +0 -0
  417. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_json_db_util.py +0 -0
  418. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_json_util.py +0 -0
  419. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_jwt_util.py +0 -0
  420. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_list_of_dicts_to_xlsx.py +0 -0
  421. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_list_util.py +0 -0
  422. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_log_async_func_if_error.py +0 -0
  423. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_logging_util.py +0 -0
  424. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_need_type_util.py +0 -0
  425. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_parse_command.py +0 -0
  426. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_postgresql_util.py +0 -0
  427. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_pydantic_schema_from_sqlalchemy_model.py +0 -0
  428. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_raise_own_exception_if_exception.py +0 -0
  429. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_rat_func_util.py +0 -0
  430. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_really_validate_email.py +0 -0
  431. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_really_validate_url.py +0 -0
  432. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_retry_func_util.py +0 -0
  433. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_run_cmd_util.py +0 -0
  434. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_safe_func.py +0 -0
  435. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_sleep_util.py +0 -0
  436. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_sqladmin_util.py +0 -0
  437. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_str_util.py +0 -0
  438. {arpakitlib-1.8.305 → arpakitlib-1.8.320}/arpakitlib/ar_type_util.py +0 -0
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arpakitlib
3
- Version: 1.8.305
3
+ Version: 1.8.320
4
4
  Summary: arpakitlib
5
- License: Apache-2.0
5
+ License-Expression: Apache-2.0
6
6
  License-File: LICENSE
7
7
  Keywords: arpakitlib,arpakit,arpakit-company,arpakitcompany,arpakit_company
8
8
  Author: arpakit_company
@@ -73,12 +73,14 @@ def ensure_sqlalchemy_check_constraints(*, base_: type[DeclarativeBase], engine:
73
73
  # Возьмём соединение и транзакцию (BEGIN), чтобы изменения были атомарными
74
74
 
75
75
  with engine.begin() as conn:
76
- conn_inspector = sqlalchemy.inspect(conn)
76
+ conn_inspection_ = sqlalchemy.inspect(conn)
77
77
 
78
78
  for table in base_.metadata.tables.values():
79
+ if not conn_inspection_.has_table(table.name, schema=table.schema):
80
+ continue
79
81
 
80
82
  # Соберём существующие CHECK-и из БД
81
- existing = conn_inspector.get_check_constraints(table.name, schema=table.schema)
83
+ existing = conn_inspection_.get_check_constraints(table.name, schema=table.schema)
82
84
 
83
85
  # Множества для быстрых проверок
84
86
  existing_names: Set[str] = set()
@@ -0,0 +1,79 @@
1
+ from urllib.parse import quote_plus
2
+
3
+
4
+ def generate_connection_url(
5
+ *,
6
+ scheme: str = "postgresql", # общий случай: postgresql, sqlite, redis, amqp и т.п.
7
+ user: str | None = None,
8
+ password: str | None = None,
9
+ host: str | None = "127.0.0.1",
10
+ port: int | None = None,
11
+ database: str | int | None = None,
12
+ quote_query_params: bool = True,
13
+ **query_params
14
+ ) -> str:
15
+ """
16
+ Универсальная функция для генерации URL соединений (Postgres, Redis, AMQP, SQLite и др.)
17
+
18
+ Примеры:
19
+ postgresql://user:pass@localhost:5432/dbname
20
+ sqlite:///path/to/db.sqlite3
21
+ redis://:mypassword@redis:6379/0
22
+ amqp://user:pass@rabbit:5672/myvhost
23
+ """
24
+ # Формируем часть авторизации
25
+ auth_part = ""
26
+ if user and password:
27
+ auth_part = f"{quote_plus(user)}:{quote_plus(password)}@"
28
+ elif password and not user:
29
+ auth_part = f":{quote_plus(password)}@"
30
+ elif user:
31
+ auth_part = f"{quote_plus(user)}@"
32
+
33
+ # Формируем хост и порт
34
+ if scheme.startswith("sqlite"):
35
+ host_part = ""
36
+ else:
37
+ host_part = host or ""
38
+ if port:
39
+ host_part += f":{port}"
40
+
41
+ # Формируем "базу" (database / номер / путь)
42
+ db_part = ""
43
+ if database is not None:
44
+ db_part = f"/{quote_plus(str(database))}"
45
+
46
+ # Формируем query параметры
47
+ query_part = ""
48
+ if query_params:
49
+ query_items = []
50
+ for k, v in query_params.items():
51
+ value = str(v)
52
+ if quote_query_params:
53
+ value = quote_plus(value)
54
+ query_items.append(f"{k}={value}")
55
+ query_part = f"?{'&'.join(query_items)}"
56
+
57
+ return f"{scheme}://{auth_part}{host_part}{db_part}{query_part}"
58
+
59
+
60
+ def __example():
61
+ print(generate_connection_url())
62
+ # → redis://127.0.0.1:6379/0
63
+
64
+ # Redis с паролем
65
+ print(generate_connection_url(password="supersecret", host="redis"))
66
+ # → redis://:supersecret@redis:6379/0
67
+
68
+ # RabbitMQ (AMQP)
69
+ print(generate_connection_url(scheme="amqp", user="guest", password="guest", host="rabbitmq", port=6789))
70
+ # → amqp://guest:guest@rabbitmq:6379/0
71
+
72
+ # Redis с параметрами
73
+ print(generate_connection_url(scheme="mongodb", user="root", password="pass", host="localhost", port=27017,
74
+ authSource="fghjkl;", quote_query_params=True))
75
+ # → redis://:pass@127.0.0.1:6379/0?ssl_cert_reqs=none&socket_timeout=10
76
+
77
+
78
+ if __name__ == '__main__':
79
+ __example()
@@ -4,8 +4,6 @@ import asyncio
4
4
  import logging
5
5
  from abc import abstractmethod
6
6
  from random import randint
7
- from typing import Optional
8
- from urllib.parse import quote
9
7
 
10
8
  from pymongo import MongoClient
11
9
  from pymongo.collection import Collection
@@ -14,27 +12,6 @@ from pymongo.database import Database
14
12
  _ARPAKIT_LIB_MODULE_VERSION = "3.0"
15
13
 
16
14
 
17
- def generate_mongo_uri(
18
- *,
19
- mongo_user: Optional[str] = None,
20
- mongo_password: Optional[str] = None,
21
- mongo_hostname: str = "localhost",
22
- mongo_port: int = 27017,
23
- mongo_auth_db: Optional[str] = None
24
- ) -> str:
25
- res: str = f'mongodb://'
26
- if mongo_user:
27
- res += f"{mongo_user}"
28
- if mongo_password:
29
- res += f":{quote(mongo_password)}"
30
- res += "@"
31
- res += f"{mongo_hostname}:{mongo_port}"
32
- if mongo_auth_db is not None:
33
- res += f"/?authSource={mongo_auth_db}"
34
-
35
- return res
36
-
37
-
38
15
  class EasyMongoDb:
39
16
  def __init__(
40
17
  self,
@@ -8,12 +8,24 @@ from pydantic_settings import BaseSettings
8
8
  _ARPAKIT_LIB_MODULE_VERSION = "3.0"
9
9
 
10
10
 
11
- def generate_env_example(settings_class: Union[BaseSettings, type[BaseSettings]]):
11
+ def generate_env_example(settings_class: Union[BaseSettings, type[BaseSettings]]) -> str:
12
12
  res = ""
13
13
  for k, f in settings_class.model_fields.items():
14
14
  if f.default is not PydanticUndefined:
15
- res += f"# {k}=\n"
15
+ v = f.default
16
+ # Приводим к строке для .env
17
+ if isinstance(v, bool):
18
+ s = "true" if v else "false"
19
+ elif v is None:
20
+ s = "None"
21
+ else:
22
+ s = str(v)
23
+ # Если дефолт — строка с пробелами → в кавычки (экранируем \ и ")
24
+ if isinstance(v, str) and any(ch.isspace() for ch in v):
25
+ s = '"' + s.replace("\\", "\\\\").replace('"', '\\"') + '"'
26
+ res += f"{k}={s}\n"
16
27
  else:
28
+ # обязательное поле — без значения
17
29
  res += f"{k}=\n"
18
30
  return res
19
31
 
@@ -25,8 +37,17 @@ class SimpleSettings(BaseSettings):
25
37
  @classmethod
26
38
  def validate_all_fields(cls, values: dict[str, Any]) -> dict[str, Any]:
27
39
  for key, value in values.items():
28
- if isinstance(value, str) and value.lower().strip() in {"null", "none", "nil"}:
40
+ if not isinstance(value, str):
41
+ continue
42
+ if value.lower().strip() in {"null", "none", "nil"}:
29
43
  values[key] = None
44
+ elif value.lower().strip() == "default_value":
45
+ field = cls.model_fields.get(key)
46
+ if field is not None:
47
+ if field.default is not None:
48
+ values[key] = field.default
49
+ elif field.default_factory is not None:
50
+ values[key] = field.default_factory()
30
51
  return values
31
52
 
32
53
  @classmethod
@@ -58,6 +58,9 @@ def drop_sqlalchemy_check_constraints(*, base_: type[DeclarativeBase], engine: E
58
58
  conn_inspection_ = sqlalchemy.inspect(conn)
59
59
 
60
60
  for table in base_.metadata.tables.values():
61
+ if not conn_inspection_.has_table(table.name, schema=table.schema):
62
+ continue
63
+
61
64
  fqtn = _qualified_name(table.schema, table.name, engine.dialect.name)
62
65
 
63
66
  # берём ВСЕ реальные CHECK-и из базы
@@ -3,7 +3,6 @@ import asyncio
3
3
  import logging
4
4
  from datetime import timedelta, datetime
5
5
  from typing import Any, Collection
6
- from urllib.parse import quote_plus
7
6
  from uuid import uuid4
8
7
 
9
8
  import sqlalchemy
@@ -17,44 +16,6 @@ from arpakitlib.ar_datetime_util import now_utc_dt
17
16
  _ARPAKIT_LIB_MODULE_VERSION = "3.0"
18
17
 
19
18
 
20
- def generate_sqlalchemy_url(
21
- *,
22
- base: str = "postgresql",
23
- user: str | None = None,
24
- password: str | None = None,
25
- host: str | None = "127.0.0.1",
26
- port: int | None = 5432,
27
- database: str | None = None,
28
- **query_params
29
- ) -> str | None:
30
- if host is None or port is None:
31
- return None
32
-
33
- auth_part = ""
34
- if user and password:
35
- auth_part = f"{quote_plus(user)}:{quote_plus(password)}@"
36
- elif user:
37
- auth_part = f"{quote_plus(user)}@"
38
-
39
- if base.startswith("sqlite"):
40
- host_part = ""
41
- else:
42
- host_part = f"{host}"
43
- if port:
44
- host_part += f":{port}"
45
-
46
- database_part = f"/{database}" if database else ""
47
- if base.startswith("sqlite") and database:
48
- database_part = f"/{database}"
49
-
50
- query_part = ""
51
- if query_params:
52
- query_items = [f"{key}={quote_plus(str(value))}" for key, value in query_params.items()]
53
- query_part = f"?{'&'.join(query_items)}"
54
-
55
- return f"{base}://{auth_part}{host_part}{database_part}{query_part}"
56
-
57
-
58
19
  class BaseDBM(DeclarativeBase):
59
20
  __abstract__ = True
60
21
  __table_args__ = {"extend_existing": True}
@@ -333,9 +294,11 @@ class SQLAlchemyDb:
333
294
  self.base_dbm.metadata.drop_all(bind=self.engine, checkfirst=True)
334
295
  self._logger.info("dropped")
335
296
 
336
- def reinit(self):
297
+ def reinit(self, ensure_check_constraints: bool = True):
337
298
  self.base_dbm.metadata.drop_all(bind=self.engine, checkfirst=True)
338
299
  self.base_dbm.metadata.create_all(bind=self.engine, checkfirst=True)
300
+ if ensure_check_constraints:
301
+ self.ensure_check_constraints()
339
302
  self._logger.info("reinited")
340
303
 
341
304
  def reinit_all(self):
@@ -13,14 +13,16 @@ LINE_RE = re.compile(r"""
13
13
  $
14
14
  """, re.VERBOSE)
15
15
 
16
- COMMENT_RE = re.compile(r"^\s*#")
16
+ COMMENT_KEY_RE = re.compile(r"^(\s*#\s*)([A-Za-z_][A-Za-z0-9_]*)(\s*=\s*.*)$")
17
17
 
18
18
 
19
- def uppercase_env_keys(*, path: str | Path,
20
- output: Optional[str | Path] = None,
21
- backup: bool = False) -> Path:
19
+ def uppercase_env_keys(
20
+ *, path: str | Path,
21
+ output: Optional[str | Path] = None,
22
+ backup: bool = False
23
+ ) -> Path:
22
24
  """
23
- Преобразует имена переменных в .env в верхний регистр.
25
+ Преобразует имена переменных в .env и в комментариях в верхний регистр.
24
26
 
25
27
  :param path: путь к исходному .env
26
28
  :param output: путь к файлу вывода. Если None — правит на месте.
@@ -33,18 +35,29 @@ def uppercase_env_keys(*, path: str | Path,
33
35
 
34
36
  text = src.read_text(encoding="utf-8-sig").splitlines(keepends=True)
35
37
 
36
- seen_upper = set()
37
38
  out_lines = []
38
39
 
39
40
  for line in text:
40
- # комментарии и пустые строки — как есть
41
- if not line.strip() or COMMENT_RE.match(line):
41
+ stripped = line.strip()
42
+
43
+ # пустые строки — оставляем как есть
44
+ if not stripped:
42
45
  out_lines.append(line)
43
46
  continue
44
47
 
48
+ # комментарий с "ключом" вида # KEY=
49
+ m_comment = COMMENT_KEY_RE.match(line.rstrip("\n"))
50
+ if m_comment:
51
+ prefix, key, rest = m_comment.groups()
52
+ key_up = key.upper()
53
+ # сохраняем оригинальный символ конца строки, если он был
54
+ newline = "\n" if line.endswith("\n") else ""
55
+ out_lines.append(f"{prefix}{key_up}{rest}{newline}")
56
+ continue
57
+
58
+ # стандартная строка с KEY=VAL
45
59
  m = LINE_RE.match(line.rstrip("\n"))
46
60
  if not m:
47
- # строки без "=" или нестандартные — не трогаем
48
61
  out_lines.append(line)
49
62
  continue
50
63
 
@@ -55,12 +68,10 @@ def uppercase_env_keys(*, path: str | Path,
55
68
  val = m.group("val")
56
69
 
57
70
  key_up = key.upper()
58
- # аккуратно соберем строку обратно (сохраняя пробелы/формат)
59
- new_line = f"{lead}{(export_kw + ' ') if export_kw else ''}{key_up}{eq}{val}\n"
71
+ newline = "\n" if line.endswith("\n") else ""
72
+ new_line = f"{lead}{(export_kw + ' ') if export_kw else ''}{key_up}{eq}{val}{newline}"
60
73
  out_lines.append(new_line)
61
74
 
62
- seen_upper.add(key_up)
63
-
64
75
  # запись
65
76
  if output is None:
66
77
  if backup:
@@ -0,0 +1,44 @@
1
+ import importlib.util
2
+ import os
3
+ from fastapi import APIRouter
4
+
5
+
6
+ def include_fastapi_routers_from_dir(
7
+ *,
8
+ router: APIRouter,
9
+ base_dir: str = ".",
10
+ exclude_filenames: list[str] | None = None,
11
+ ):
12
+ """
13
+ Рекурсивно ищет все .py файлы с объектом `api_router` типа APIRouter
14
+ и подключает их к переданному `router`.
15
+
16
+ Префикс = имя файла без .py
17
+ exclude_filenames — список имён файлов, которые нужно пропустить (без путей)
18
+ """
19
+ if exclude_filenames is None:
20
+ exclude_filenames = ["__init__.py"]
21
+
22
+ for root, _, files in os.walk(base_dir):
23
+ for filename in files:
24
+ if not filename.endswith(".py") or filename in exclude_filenames:
25
+ continue
26
+
27
+ file_path = os.path.join(root, filename)
28
+ module_name = (
29
+ os.path.relpath(file_path, base_dir)
30
+ .replace(os.sep, ".")
31
+ .removesuffix(".py")
32
+ )
33
+
34
+ spec = importlib.util.spec_from_file_location(module_name, file_path)
35
+ module = importlib.util.module_from_spec(spec)
36
+ spec.loader.exec_module(module)
37
+
38
+ api_router = getattr(module, "api_router", None)
39
+ if isinstance(api_router, APIRouter):
40
+ prefix = "/" + filename[:-3] # имя файла без .py
41
+ router.include_router(
42
+ router=api_router,
43
+ prefix=prefix
44
+ )
@@ -1,11 +1,12 @@
1
1
  [project]
2
2
  name = "arpakitlib"
3
- version = "1.8.305"
3
+ version = "1.8.320"
4
4
  description = "arpakitlib"
5
5
  authors = [
6
6
  { name = "arpakit_company", email = "support@arpakit.com" }
7
7
  ]
8
- license = { text = "Apache License 2.0" }
8
+ license = "Apache-2.0"
9
+ license-files = ["LICENSE"]
9
10
  readme = "README.md"
10
11
  keywords = ["arpakitlib", "arpakit", "arpakit-company", "arpakitcompany", "arpakit_company"]
11
12
  requires-python = ">=3.12.4,<4.0"
@@ -1,40 +0,0 @@
1
- # arpakit
2
- from typing import Any
3
-
4
- from pydantic import BaseModel, ConfigDict
5
-
6
- _ARPAKIT_LIB_MODULE_VERSION = "3.0"
7
-
8
-
9
- class BaseAM(BaseModel):
10
- model_config = ConfigDict(extra="forbid", arbitrary_types_allowed=True, from_attributes=True)
11
- _bus_data: dict[str, Any] | None = None
12
-
13
- @property
14
- def bus_data(self) -> dict[str, Any]:
15
- if self._bus_data is None:
16
- self._bus_data = {}
17
- return self._bus_data
18
-
19
-
20
- def __example():
21
- class UserAM(BaseAM):
22
- id: int
23
- name: str
24
- email: str
25
-
26
- @property
27
- def bus_data_age(self) -> int | None:
28
- return self.bus_data.get("age")
29
-
30
- user = UserAM(id=1, name="John Doe", email="john.doe@example.com")
31
- print(user.name) # John Doe
32
-
33
- # bus_data
34
- user.bus_data["age"] = 22
35
- print(user.bus_data) # {'age': '22'}
36
- print(user.bus_data_age) # 22
37
-
38
-
39
- if __name__ == '__main__':
40
- __example()