arpakitlib 1.8.33__tar.gz → 1.8.35__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 (367) hide show
  1. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/PKG-INFO +1 -1
  2. arpakitlib-1.8.35/arpakitlib/_arpakit_project_template_v_5/arpakitlib_project_template_info.json +4 -0
  3. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/api_key.py +7 -0
  4. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/story_log.py +8 -0
  5. arpakitlib-1.8.35/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user.py +174 -0
  6. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py +5 -0
  7. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_arpakitlib_cli_util.py +0 -1
  8. arpakitlib-1.8.35/arpakitlib/ar_openai_api_client_util.py +131 -0
  9. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_parse_command.py +0 -11
  10. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/pyproject.toml +1 -1
  11. arpakitlib-1.8.33/arpakitlib/_arpakit_project_template_v_5/arpakitlib_project_template_info.json +0 -4
  12. arpakitlib-1.8.33/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user.py +0 -87
  13. arpakitlib-1.8.33/arpakitlib/ar_openai_api_client_util.py +0 -75
  14. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/LICENSE +0 -0
  15. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/README.md +0 -0
  16. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/__init__.py +0 -0
  17. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/.gitignore +0 -0
  18. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/.python-version +0 -0
  19. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/LICENSE +0 -0
  20. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/README.md +0 -0
  21. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/alembic/README +0 -0
  22. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/alembic/env.py +0 -0
  23. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/alembic/script.py.mako +0 -0
  24. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/alembic/versions/__init__.py +0 -0
  25. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/alembic.ini +0 -0
  26. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/__init__.py +0 -0
  27. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/alembic_history.sh +0 -0
  28. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/alembic_revision_autogenerate.sh +0 -0
  29. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/alembic_upgrade_head.sh +0 -0
  30. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/beautify_json.py +0 -0
  31. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/check_logging.py +0 -0
  32. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/check_sqlalchemy_db.py +0 -0
  33. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/demojize.py +0 -0
  34. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/docker_ps_a.sh +0 -0
  35. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/docker_rm_postgres.sh +0 -0
  36. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/docker_run_postgres.sh +0 -0
  37. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/docker_start_postgres.sh +0 -0
  38. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/docker_stop_postgres.sh +0 -0
  39. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/drop_json_db.py +0 -0
  40. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/drop_sqlalchemy_db.py +0 -0
  41. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/generate_settings_env_example.py +0 -0
  42. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/git_commit.sh +0 -0
  43. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/git_push_arpakit_company_github_1.sh +0 -0
  44. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/git_push_arpakit_company_gitlab_1.sh +0 -0
  45. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/git_push_arpakit_github_1.sh +0 -0
  46. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/git_push_arpakit_gitlab_1.sh +0 -0
  47. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/git_remote_v.sh +0 -0
  48. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/git_set_arpakit_company_origin.sh +0 -0
  49. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/git_set_arpakit_origin.sh +0 -0
  50. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/git_set_divarteam_origin.sh +0 -0
  51. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/git_status.sh +0 -0
  52. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/hello_world.py +0 -0
  53. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/init_json_db.py +0 -0
  54. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/init_sqlalchemy_db.py +0 -0
  55. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/poetry_check.sh +0 -0
  56. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/poetry_clear_cache.sh +0 -0
  57. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/poetry_config.sh +0 -0
  58. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/poetry_install.sh +0 -0
  59. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/poetry_lock.sh +0 -0
  60. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/poetry_remove_and_add_arpakitlib.sh +0 -0
  61. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/poetry_show.sh +0 -0
  62. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/poetry_show_arpakitlib.sh +0 -0
  63. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/poetry_update.sh +0 -0
  64. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/poetry_update_arpakitlib.sh +0 -0
  65. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/reinit_all_sqlalchemy_db.py +0 -0
  66. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/reinit_json_db.py +0 -0
  67. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/reinit_sqlalchemy_db.py +0 -0
  68. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/remove_operations.py +0 -0
  69. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/remove_story_logs.py +0 -0
  70. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/rm_all_records_in_json_db.py +0 -0
  71. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/set_tg_bot_commands.py +0 -0
  72. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/show_settings.py +0 -0
  73. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/show_sqlalchemy_db_table_name_to_amount.py +0 -0
  74. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/start_api.py +0 -0
  75. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/start_api_for_prod.py +0 -0
  76. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/start_api_with_reload.py +0 -0
  77. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/start_operation_executor_worker.py +0 -0
  78. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/start_operation_executor_workers.py +0 -0
  79. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/start_scheduled_operation_creator_worker.py +0 -0
  80. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/start_sqladmin.py +0 -0
  81. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/start_sqladmin_for_prod.py +0 -0
  82. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/start_sqladmin_with_reload.py +0 -0
  83. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/start_tg_bot.py +0 -0
  84. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/command/start_tg_bot_for_prod.py +0 -0
  85. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/example.env +0 -0
  86. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/note/note_1.txt +0 -0
  87. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/note/note_2.txt +0 -0
  88. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/note/note_3.txt +0 -0
  89. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/note/note_4.txt +0 -0
  90. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/note/note_5.txt +0 -0
  91. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/__init__.py +0 -0
  92. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/additional_model/__init__.py +0 -0
  93. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/additional_model/common.py +0 -0
  94. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/__init__.py +0 -0
  95. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/asgi.py +0 -0
  96. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/authorize.py +0 -0
  97. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/blank/__init__.py +0 -0
  98. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/blank/admin.py +0 -0
  99. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/blank/client.py +0 -0
  100. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/blank/common.py +0 -0
  101. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/const.py +0 -0
  102. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/create_api_app.py +0 -0
  103. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/event.py +0 -0
  104. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/exception.py +0 -0
  105. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/exception_handler.py +0 -0
  106. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/openapi_ui.py +0 -0
  107. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/response.py +0 -0
  108. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/__init__.py +0 -0
  109. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/__init__.py +0 -0
  110. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_arpakitlib_project_template_info.py +0 -0
  111. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_auth_data.py +0 -0
  112. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_story_log.py +0 -0
  113. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/init_sqlalchemy_db.py +0 -0
  114. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/main_router.py +0 -0
  115. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/raise_fake_error.py +0 -0
  116. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/reinit_sqlalchemy_db.py +0 -0
  117. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/client/__init__.py +0 -0
  118. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_api_key.py +0 -0
  119. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user.py +0 -0
  120. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user_token.py +0 -0
  121. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_errors_info.py +0 -0
  122. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/client/main_router.py +0 -0
  123. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/__init__.py +0 -0
  124. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/healthcheck.py +0 -0
  125. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/main_router.py +0 -0
  126. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/now_utc_datetime.py +0 -0
  127. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/router/main_router.py +0 -0
  128. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/__init__.py +0 -0
  129. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/common.py +0 -0
  130. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/__init__.py +0 -0
  131. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/admin/__init__.py +0 -0
  132. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/admin/common.py +0 -0
  133. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/client/__init__.py +0 -0
  134. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/client/common.py +0 -0
  135. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/common/__init__.py +0 -0
  136. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/general/__init__.py +0 -0
  137. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/general/common.py +0 -0
  138. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/__init__.py +0 -0
  139. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/__init__.py +0 -0
  140. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/common.py +0 -0
  141. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/operation.py +0 -0
  142. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/story_log.py +0 -0
  143. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/__init__.py +0 -0
  144. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/api_key.py +0 -0
  145. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/common.py +0 -0
  146. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user.py +0 -0
  147. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user_token.py +0 -0
  148. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/__init__.py +0 -0
  149. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/datetime_.py +0 -0
  150. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/error.py +0 -0
  151. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/raw_data.py +0 -0
  152. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/__init__.py +0 -0
  153. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/common.py +0 -0
  154. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/errors_info_general.py +0 -0
  155. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/healthcheck.py +0 -0
  156. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/api/util.py +0 -0
  157. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/business_service/__init__.py +0 -0
  158. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/business_service/hello_world.py +0 -0
  159. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/business_service/remove_operations.py +0 -0
  160. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/celery_/__init__.py +0 -0
  161. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/core/__init__.py +0 -0
  162. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/core/cache_file_storage_in_dir.py +0 -0
  163. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/core/const.py +0 -0
  164. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/core/dump_file_storage_in_dir.py +0 -0
  165. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/core/jinja2_templates.py +0 -0
  166. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/core/media_file_storage_in_dir.py +0 -0
  167. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/core/settings.py +0 -0
  168. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/core/util.py +0 -0
  169. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/json_db/__init__.py +0 -0
  170. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/json_db/json_db.py +0 -0
  171. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/more/helloworld +0 -0
  172. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/__init__.py +0 -0
  173. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/const.py +0 -0
  174. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/operation_executor_worker.py +0 -0
  175. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operation_creator_worker.py +0 -0
  176. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operations.py +0 -0
  177. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/util.py +0 -0
  178. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/__init__.py +0 -0
  179. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/1 +0 -0
  180. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/healthcheck +0 -0
  181. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/helloworld +0 -0
  182. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/openapi-favicon.png +0 -0
  183. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/redoc/redoc.standalone.js +0 -0
  184. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/sqladmin-favicon.png +0 -0
  185. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/favicon-16x16.png +0 -0
  186. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/favicon-32x32.png +0 -0
  187. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/index.css +0 -0
  188. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/index.html +0 -0
  189. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/oauth2-redirect.html +0 -0
  190. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-initializer.js +0 -0
  191. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-bundle.js +0 -0
  192. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-bundle.js.map +0 -0
  193. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-es-bundle-core.js +0 -0
  194. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-es-bundle-core.js.map +0 -0
  195. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-es-bundle.js +0 -0
  196. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-es-bundle.js.map +0 -0
  197. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-standalone-preset.js +0 -0
  198. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-standalone-preset.js.map +0 -0
  199. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui.css +0 -0
  200. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui.css.map +0 -0
  201. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui.js +0 -0
  202. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui.js.map +0 -0
  203. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/__init__.py +0 -0
  204. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_1.py +0 -0
  205. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_2.py +0 -0
  206. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_3.py +0 -0
  207. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_4.py +0 -0
  208. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_5.py +0 -0
  209. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_6.py +0 -0
  210. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_7.py +0 -0
  211. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/site/__init__.py +0 -0
  212. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/site/asgi.py +0 -0
  213. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/site/consts.py +0 -0
  214. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/site/create_site_app.py +0 -0
  215. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/site/event.py +0 -0
  216. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/site/exception_handler.py +0 -0
  217. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/site/router/__init__.py +0 -0
  218. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/site/router/main_router.py +0 -0
  219. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/__init__.py +0 -0
  220. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/add_admin_in_app.py +0 -0
  221. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/admin_authorize.py +0 -0
  222. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/asgi.py +0 -0
  223. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/create_sqladmin_app.py +0 -0
  224. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/event.py +0 -0
  225. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/__init__.py +0 -0
  226. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/api_key.py +0 -0
  227. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/common.py +0 -0
  228. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/operation.py +0 -0
  229. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/story_log.py +0 -0
  230. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user.py +0 -0
  231. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user_token.py +0 -0
  232. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/__init__.py +0 -0
  233. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/const.py +0 -0
  234. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_db.py +0 -0
  235. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/__init__.py +0 -0
  236. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py +0 -0
  237. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py +0 -0
  238. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/util.py +0 -0
  239. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/test_data/__init__.py +0 -0
  240. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_api_keys.py +0 -0
  241. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_1.py +0 -0
  242. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_2.py +0 -0
  243. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_3.py +0 -0
  244. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_4.py +0 -0
  245. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_5.py +0 -0
  246. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/__init__.py +0 -0
  247. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/__init__.py +0 -0
  248. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/admin.py +0 -0
  249. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/client.py +0 -0
  250. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/common.py +0 -0
  251. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/__init__.py +0 -0
  252. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/admin.py +0 -0
  253. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/client.py +0 -0
  254. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/common.py +0 -0
  255. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/const.py +0 -0
  256. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/event.py +0 -0
  257. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/__init__.py +0 -0
  258. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/is_private_chat.py +0 -0
  259. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/message_text.py +0 -0
  260. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/not_prod_mode_filter.py +0 -0
  261. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/prod_mode_filter.py +0 -0
  262. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/user_roles_has_admin.py +0 -0
  263. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/user_roles_has_client.py +0 -0
  264. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/__init__.py +0 -0
  265. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/__init__.py +0 -0
  266. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin/__init__.py +0 -0
  267. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin/common.py +0 -0
  268. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/__init__.py +0 -0
  269. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/common.py +0 -0
  270. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/hello_world.py +0 -0
  271. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/common.py +0 -0
  272. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/__init__.py +0 -0
  273. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/admin/__init__.py +0 -0
  274. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/admin/common.py +0 -0
  275. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/client/__init__.py +0 -0
  276. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/client/common.py +0 -0
  277. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/client/hello_world.py +0 -0
  278. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/common.py +0 -0
  279. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/__init__.py +0 -0
  280. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/common.py +0 -0
  281. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/init_user.py +0 -0
  282. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/middleware.py +0 -0
  283. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/__init__.py +0 -0
  284. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/__init__.py +0 -0
  285. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/arpakitlib_project_template_info.py +0 -0
  286. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/clear_log_file.py +0 -0
  287. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/drop_sqlalchemy_db.py +0 -0
  288. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/init_sqlalchemy_db.py +0 -0
  289. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_not_modified.py +0 -0
  290. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_old_cd.py +0 -0
  291. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_raise_error.py +0 -0
  292. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_remove_message.py +0 -0
  293. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/log_file.py +0 -0
  294. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/me.py +0 -0
  295. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/raise_fake_error.py +0 -0
  296. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/reinit_sqlalchemy_db.py +0 -0
  297. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/set_tg_bot_commands.py +0 -0
  298. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/__init__.py +0 -0
  299. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/about.py +0 -0
  300. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/author.py +0 -0
  301. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/error_handler.py +0 -0
  302. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/healthcheck.py +0 -0
  303. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/hello_world.py +0 -0
  304. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/raw_callback_query.py +0 -0
  305. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/raw_inline_query.py +0 -0
  306. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/raw_message.py +0 -0
  307. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/remove_message.py +0 -0
  308. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/start.py +0 -0
  309. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/support.py +0 -0
  310. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/main_router.py +0 -0
  311. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/start_tg_bot.py +0 -0
  312. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/tg_bot.py +0 -0
  313. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/tg_bot_dispatcher.py +0 -0
  314. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/__init__.py +0 -0
  315. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/etc.py +0 -0
  316. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/notify_admins.py +0 -0
  317. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/set_tg_bot_commands.py +0 -0
  318. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/util/__init__.py +0 -0
  319. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/_arpakit_project_template_v_5/project/util/arpakitlib_project_template.py +0 -0
  320. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_additional_model_util.py +0 -0
  321. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_aiogram_util.py +0 -0
  322. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_arpakit_lib_module_util.py +0 -0
  323. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_arpakit_project_template_util.py +0 -0
  324. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_arpakit_schedule_uust_api_client_util.py +0 -0
  325. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_arpakit_schedule_uust_site_util.py +0 -0
  326. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_base64_util.py +0 -0
  327. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_base_worker_util.py +0 -0
  328. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_blank_util.py +0 -0
  329. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_cache_file_util.py +0 -0
  330. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_class_util.py +0 -0
  331. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_cryptomus_api_client_util.py +0 -0
  332. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_datetime_util.py +0 -0
  333. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_dict_util.py +0 -0
  334. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_dream_ai_api_client_util.py +0 -0
  335. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_encrypt_decrypt_util.py +0 -0
  336. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_enumeration_util.py +0 -0
  337. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_exception_util.py +0 -0
  338. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_file_storage_in_dir_util.py +0 -0
  339. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_file_util.py +0 -0
  340. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_func_util.py +0 -0
  341. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_hash_util.py +0 -0
  342. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_http_request_util.py +0 -0
  343. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_ip_util.py +0 -0
  344. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_json_db_util.py +0 -0
  345. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_json_util.py +0 -0
  346. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_jwt_util.py +0 -0
  347. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_list_of_dicts_to_xlsx.py +0 -0
  348. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_list_util.py +0 -0
  349. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_logging_util.py +0 -0
  350. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_mongodb_util.py +0 -0
  351. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_need_type_util.py +0 -0
  352. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_postgresql_util.py +0 -0
  353. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_rat_func_util.py +0 -0
  354. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_retry_func_util.py +0 -0
  355. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_run_cmd_util.py +0 -0
  356. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_schedule_uust_api_client_util.py +0 -0
  357. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_settings_util.py +0 -0
  358. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_sleep_util.py +0 -0
  359. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_sqladmin_util.py +0 -0
  360. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_sqlalchemy_util.py +0 -0
  361. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_ssh_runner_util.py +0 -0
  362. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_steam_payment_api_client_util.py +0 -0
  363. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_str_util.py +0 -0
  364. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_type_util.py +0 -0
  365. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_wata_api_client.py +0 -0
  366. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_yookassa_api_client_util.py +0 -0
  367. {arpakitlib-1.8.33 → arpakitlib-1.8.35}/arpakitlib/ar_zabbix_api_client_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: arpakitlib
3
- Version: 1.8.33
3
+ Version: 1.8.35
4
4
  Summary: arpakitlib
5
5
  License: Apache-2.0
6
6
  Keywords: arpakitlib,arpakit,arpakit-company,arpakitcompany,arpakit_company
@@ -0,0 +1,4 @@
1
+ {
2
+ "arpakitlib_project_template_version": "5",
3
+ "arpakitlib_project_template_subversion": "6"
4
+ }
@@ -43,3 +43,10 @@ class ApiKeyDBM(SimpleDBM):
43
43
  server_default="true",
44
44
  nullable=False
45
45
  )
46
+
47
+ def __repr__(self) -> str:
48
+ res = f"{self.entity_name} (id={self.id}, is_active={self.is_active}"
49
+ if self.title:
50
+ res += f", title={self.title}"
51
+ res += ")"
52
+ return res
@@ -49,3 +49,11 @@ class StoryLogDBM(SimpleDBM):
49
49
  server_default="{}",
50
50
  nullable=False
51
51
  )
52
+
53
+ @property
54
+ def sdp_allowed_levels(self) -> list[str]:
55
+ return self.Levels.values_list()
56
+
57
+ @property
58
+ def sdp_allowed_types(self) -> list[str]:
59
+ return self.Types.values_list()
@@ -0,0 +1,174 @@
1
+ from __future__ import annotations
2
+
3
+ import datetime as dt
4
+ from typing import TYPE_CHECKING, Any
5
+
6
+ import sqlalchemy
7
+ from sqlalchemy.orm import Mapped, mapped_column, relationship
8
+
9
+ from arpakitlib.ar_enumeration_util import Enumeration
10
+ from arpakitlib.ar_type_util import raise_for_type
11
+ from project.sqlalchemy_db_.sqlalchemy_model.common import SimpleDBM
12
+
13
+ if TYPE_CHECKING:
14
+ from project.sqlalchemy_db_.sqlalchemy_model.user_token import UserTokenDBM
15
+
16
+
17
+ class UserDBM(SimpleDBM):
18
+ __tablename__ = "user"
19
+
20
+ class Roles(Enumeration):
21
+ admin = "admin"
22
+ client = "client"
23
+
24
+ email: Mapped[str | None] = mapped_column(
25
+ sqlalchemy.TEXT,
26
+ unique=True,
27
+ insert_default=None,
28
+ nullable=True
29
+ )
30
+ roles: Mapped[list[str]] = mapped_column(
31
+ sqlalchemy.ARRAY(sqlalchemy.TEXT),
32
+ insert_default=[Roles.client],
33
+ index=True,
34
+ nullable=False
35
+ )
36
+ is_active: Mapped[bool] = mapped_column(
37
+ sqlalchemy.Boolean,
38
+ index=True,
39
+ insert_default=True,
40
+ server_default="true",
41
+ nullable=False
42
+ )
43
+ tg_id: Mapped[int | None] = mapped_column(
44
+ sqlalchemy.BIGINT,
45
+ unique=True,
46
+ nullable=True
47
+ )
48
+ tg_bot_last_action_dt: Mapped[dt.datetime | None] = mapped_column(
49
+ sqlalchemy.TIMESTAMP(timezone=True),
50
+ insert_default=None,
51
+ nullable=True
52
+ )
53
+ tg_data: Mapped[dict[str, Any] | None] = mapped_column(
54
+ sqlalchemy.JSON,
55
+ insert_default={},
56
+ server_default="{}",
57
+ nullable=True
58
+ )
59
+
60
+ # many to one
61
+ user_tokens: Mapped[list[UserTokenDBM]] = relationship(
62
+ "UserTokenDBM",
63
+ uselist=True,
64
+ back_populates="user",
65
+ foreign_keys="UserTokenDBM.user_id"
66
+ )
67
+
68
+ def __repr__(self) -> str:
69
+ if self.email is not None:
70
+ res = f"{self.entity_name} (id={self.id}, email={self.email})"
71
+ else:
72
+ res = f"{self.entity_name} (id={self.id})"
73
+ return res
74
+
75
+ @property
76
+ def sdp_allowed_roles(self) -> list[str]:
77
+ return self.Roles.values_list()
78
+
79
+ @property
80
+ def roles_has_admin(self) -> bool:
81
+ return self.Roles.admin in self.roles
82
+
83
+ @property
84
+ def sdp_roles_has_admin(self) -> bool:
85
+ return self.roles_has_admin
86
+
87
+ @property
88
+ def roles_has_client(self) -> bool:
89
+ return self.Roles.client in self.roles
90
+
91
+ @property
92
+ def sdp_roles_has_client(self) -> bool:
93
+ return self.roles_has_client
94
+
95
+ def compare_roles(self, roles: list[str] | str) -> bool:
96
+ if isinstance(roles, str):
97
+ roles = [roles]
98
+ raise_for_type(roles, list)
99
+ return bool(set(roles) & set(self.roles))
100
+
101
+ @property
102
+ def tg_first_name(self) -> str | None:
103
+ if self.tg_data and "first_name" in self.tg_data:
104
+ return self.tg_data["first_name"]
105
+ return None
106
+
107
+ @property
108
+ def sdp_tg_first_name(self) -> str | None:
109
+ return self.tg_first_name
110
+
111
+ @property
112
+ def tg_last_name(self) -> str | None:
113
+ if self.tg_data and "last_name" in self.tg_data:
114
+ return self.tg_data["last_name"]
115
+ return None
116
+
117
+ @property
118
+ def sdp_tg_last_name(self) -> str | None:
119
+ return self.tg_last_name
120
+
121
+ @property
122
+ def tg_language_code(self) -> str | None:
123
+ if self.tg_data and "language_code" in self.tg_data:
124
+ return self.tg_data["language_code"]
125
+ return None
126
+
127
+ @property
128
+ def sdp_tg_language_code(self) -> str | None:
129
+ return self.tg_language_code
130
+
131
+ @property
132
+ def tg_username(self) -> str | None:
133
+ if self.tg_data and "username" in self.tg_data:
134
+ return self.tg_data["username"]
135
+ return None
136
+
137
+ @property
138
+ def sdp_tg_username(self) -> str | None:
139
+ return self.tg_username
140
+
141
+ @property
142
+ def tg_at_username(self) -> str | None:
143
+ if self.tg_username:
144
+ return f"@{self.tg_username}"
145
+ return None
146
+
147
+ @property
148
+ def sdp_tg_at_username(self) -> str | None:
149
+ return self.tg_at_username
150
+
151
+ @property
152
+ def tg_fullname(self) -> str | None:
153
+ if not self.tg_first_name and not self.tg_last_name:
154
+ return None
155
+ res = ""
156
+ if self.tg_first_name:
157
+ res += self.tg_first_name
158
+ if self.tg_last_name:
159
+ res += " " + self.tg_last_name
160
+ return res
161
+
162
+ @property
163
+ def sdp_tg_fullname(self) -> str | None:
164
+ return self.tg_fullname
165
+
166
+ @property
167
+ def tg_link_by_username(self) -> str | None:
168
+ if not self.tg_username:
169
+ return None
170
+ return f"https://t.me/{self.tg_username}"
171
+
172
+ @property
173
+ def sdp_tg_link_by_username(self) -> str | None:
174
+ return self.tg_link_by_username
@@ -45,9 +45,14 @@ class UserTokenDBM(SimpleDBM):
45
45
  nullable=False
46
46
  )
47
47
 
48
+ # one to many
48
49
  user: Mapped[UserDBM] = relationship(
49
50
  "UserDBM",
50
51
  uselist=False,
51
52
  back_populates="user_tokens",
52
53
  foreign_keys=[user_id]
53
54
  )
55
+
56
+ def __repr__(self) -> str:
57
+ res = f"{self.entity_name} (id={self.id}, user_id={self.user_id})"
58
+ return res
@@ -14,7 +14,6 @@ def execute_arpakitlib_cli(*, full_command: str | None = None):
14
14
  full_command = " ".join(sys.argv)
15
15
 
16
16
  parsed_command = parse_command(text=full_command)
17
- parsed_command.raise_for_command(needed_command="arpakitlib", lower_=True)
18
17
 
19
18
  command = parsed_command.get_value_by_keys(keys=["command", "c"])
20
19
  if command:
@@ -0,0 +1,131 @@
1
+ # arpakit
2
+
3
+ import asyncio
4
+ import logging
5
+
6
+ import httpx
7
+ from openai import OpenAI, AsyncOpenAI
8
+ from openai.types.chat import ChatCompletion
9
+
10
+ from arpakitlib.ar_logging_util import setup_normal_logging
11
+
12
+ _ARPAKIT_LIB_MODULE_VERSION = "3.0"
13
+
14
+ """
15
+ https://platform.openai.com/docs/
16
+ """
17
+
18
+
19
+ class OpenAIAPIClient:
20
+ def __init__(
21
+ self,
22
+ *,
23
+ open_ai: OpenAI,
24
+ async_open_ai: AsyncOpenAI
25
+ ):
26
+ self._logger = logging.getLogger(self.__class__.__name__)
27
+
28
+ self.open_ai = open_ai
29
+ self.async_open_ai = async_open_ai
30
+
31
+ def check_conn(self):
32
+ self.open_ai.models.list()
33
+
34
+ def is_conn_good(self) -> bool:
35
+ try:
36
+ self.check_conn()
37
+ return True
38
+ except Exception as e:
39
+ self._logger.error(e)
40
+ return False
41
+
42
+ async def async_check_conn(self):
43
+ await self.async_open_ai.models.list()
44
+
45
+ async def async_is_conn_good(self) -> bool:
46
+ try:
47
+ await self.async_check_conn()
48
+ return True
49
+ except Exception as e:
50
+ self._logger.error(e)
51
+ return False
52
+
53
+ def simple_ask(self, *, prompt: str | None = None, string: str) -> ChatCompletion:
54
+ messages = []
55
+ if prompt is not None:
56
+ messages.append({
57
+ "role": "system",
58
+ "content": prompt
59
+ })
60
+ messages.append({
61
+ "role": "user",
62
+ "content": string
63
+ })
64
+ response: ChatCompletion = self.open_ai.chat.completions.create(
65
+ model="gpt-4o",
66
+ messages=messages,
67
+ n=1,
68
+ temperature=0.1,
69
+ top_p=0.9,
70
+ max_tokens=300
71
+ )
72
+ return response
73
+
74
+ async def async_simple_ask(self, *, prompt: str | None = None, string: str) -> ChatCompletion:
75
+ messages = []
76
+ if prompt is not None:
77
+ messages.append({
78
+ "role": "system",
79
+ "content": prompt
80
+ })
81
+ messages.append({
82
+ "role": "user",
83
+ "content": string
84
+ })
85
+ response: ChatCompletion = await self.async_open_ai.chat.completions.create(
86
+ model="gpt-4o",
87
+ messages=messages,
88
+ n=1,
89
+ temperature=0.1,
90
+ top_p=0.9,
91
+ max_tokens=300
92
+ )
93
+ return response
94
+
95
+
96
+ def __example():
97
+ pass
98
+
99
+
100
+ async def __async_example():
101
+ setup_normal_logging()
102
+ api_key = ""
103
+ base_url = "https://api.proxyapi.ru/openai/v1"
104
+ client = OpenAIAPIClient(
105
+ open_ai=OpenAI(
106
+ api_key=api_key,
107
+ base_url=base_url,
108
+ timeout=httpx.Timeout(
109
+ timeout=60,
110
+ )
111
+ ),
112
+ async_open_ai=AsyncOpenAI(
113
+ api_key=api_key,
114
+ base_url=base_url,
115
+ timeout=httpx.Timeout(
116
+ timeout=60,
117
+ )
118
+ )
119
+ )
120
+
121
+ print(await client.async_is_conn_good())
122
+
123
+ response = client.simple_ask(
124
+ string="Привет, проверяю тебя"
125
+ )
126
+ print(response.choices[0].message.content)
127
+
128
+
129
+ if __name__ == '__main__':
130
+ __example()
131
+ asyncio.run(__async_example())
@@ -4,8 +4,6 @@ import shlex
4
4
 
5
5
  from pydantic import BaseModel
6
6
 
7
- from arpakitlib.ar_enumeration_util import ValuesForParseType
8
-
9
7
  _ARPAKIT_LIB_MODULE_VERSION = "3.0"
10
8
 
11
9
 
@@ -19,15 +17,6 @@ class ParsedCommand(BaseModel):
19
17
  key_to_value: dict[str, str | None] = {}
20
18
  values_without_key: list[str] = []
21
19
 
22
- def raise_for_command(self, needed_command: str, lower_: bool = True):
23
- needed_command = needed_command.strip()
24
-
25
- if (
26
- (self.command.lower() if lower_ else self.command)
27
- != (needed_command.lower() if lower_ else needed_command)
28
- ):
29
- raise ValuesForParseType(f"needed_command != {self.command}, lower_={lower_}")
30
-
31
20
  @property
32
21
  def keys(self) -> list[str]:
33
22
  return [k for k, v in self.key_to_value.items() if v is not None]
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "arpakitlib"
3
- version = "1.8.33"
3
+ version = "1.8.35"
4
4
  description = "arpakitlib"
5
5
  authors = [
6
6
  { name = "arpakit_support", email = "support@arpakit.com" }
@@ -1,4 +0,0 @@
1
- {
2
- "arpakitlib_project_template_version": "5",
3
- "arpakitlib_project_template_subversion": "5"
4
- }
@@ -1,87 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import datetime as dt
4
- from typing import TYPE_CHECKING, Any
5
-
6
- import sqlalchemy
7
- from sqlalchemy.orm import Mapped, mapped_column, relationship
8
-
9
- from arpakitlib.ar_enumeration_util import Enumeration
10
- from arpakitlib.ar_type_util import raise_for_type
11
- from project.sqlalchemy_db_.sqlalchemy_model.common import SimpleDBM
12
-
13
- if TYPE_CHECKING:
14
- from project.sqlalchemy_db_.sqlalchemy_model.user_token import UserTokenDBM
15
-
16
-
17
- class UserDBM(SimpleDBM):
18
- __tablename__ = "user"
19
-
20
- class Roles(Enumeration):
21
- admin = "admin"
22
- client = "client"
23
-
24
- email: Mapped[str | None] = mapped_column(
25
- sqlalchemy.TEXT,
26
- unique=True,
27
- insert_default=None,
28
- nullable=True
29
- )
30
- roles: Mapped[list[str]] = mapped_column(
31
- sqlalchemy.ARRAY(sqlalchemy.TEXT),
32
- insert_default=[Roles.client],
33
- index=True,
34
- nullable=False
35
- )
36
- is_active: Mapped[bool] = mapped_column(
37
- sqlalchemy.Boolean,
38
- index=True,
39
- insert_default=True,
40
- server_default="true",
41
- nullable=False
42
- )
43
- tg_id: Mapped[int | None] = mapped_column(
44
- sqlalchemy.BIGINT,
45
- unique=True,
46
- nullable=True
47
- )
48
- tg_bot_last_action_dt: Mapped[dt.datetime | None] = mapped_column(
49
- sqlalchemy.TIMESTAMP(timezone=True),
50
- insert_default=None,
51
- nullable=True
52
- )
53
- tg_data: Mapped[dict[str, Any] | None] = mapped_column(
54
- sqlalchemy.JSON,
55
- insert_default={},
56
- server_default="{}",
57
- nullable=True
58
- )
59
-
60
- user_tokens: Mapped[list[UserTokenDBM]] = relationship(
61
- "UserTokenDBM",
62
- uselist=True,
63
- back_populates="user",
64
- foreign_keys="UserTokenDBM.user_id"
65
- )
66
-
67
- @property
68
- def roles_has_admin(self) -> bool:
69
- return self.Roles.admin in self.roles
70
-
71
- @property
72
- def sdp_roles_has_admin(self) -> bool:
73
- return self.roles_has_admin
74
-
75
- @property
76
- def roles_has_client(self) -> bool:
77
- return self.Roles.client in self.roles
78
-
79
- @property
80
- def sdp_roles_has_client(self) -> bool:
81
- return self.roles_has_client
82
-
83
- def compare_roles(self, roles: list[str] | str) -> bool:
84
- if isinstance(roles, str):
85
- roles = [roles]
86
- raise_for_type(roles, list)
87
- return bool(set(roles) & set(self.roles))
@@ -1,75 +0,0 @@
1
- # arpakit
2
-
3
- import asyncio
4
- import logging
5
- from typing import Optional
6
-
7
- from openai import OpenAI, AsyncOpenAI
8
-
9
- _ARPAKIT_LIB_MODULE_VERSION = "3.0"
10
-
11
- """
12
- https://platform.openai.com/docs/
13
- """
14
-
15
-
16
- class OpenAIAPIClient:
17
- def __init__(
18
- self,
19
- *,
20
- open_ai: Optional[OpenAI] = None,
21
- async_open_ai: Optional[AsyncOpenAI] = None
22
- ):
23
- self._logger = logging.getLogger(self.__class__.__name__)
24
-
25
- self.open_ai = open_ai
26
- self.async_open_ai = async_open_ai
27
-
28
- def check_conn(self):
29
- self.open_ai.models.list()
30
-
31
- def is_conn_good(self) -> bool:
32
- try:
33
- self.check_conn()
34
- return True
35
- except Exception as e:
36
- self._logger.error(e)
37
- return False
38
-
39
- async def async_check_conn(self):
40
- await self.async_open_ai.models.list()
41
-
42
- async def async_is_conn_good(self) -> bool:
43
- try:
44
- await self.async_check_conn()
45
- return True
46
- except Exception as e:
47
- self._logger.error(e)
48
- return False
49
-
50
-
51
- def __example():
52
- open_ai = OpenAI(api_key="your-api-key")
53
- client = OpenAIAPIClient(open_ai=open_ai)
54
-
55
- print("Checking OpenAI API connection...")
56
- if client.is_conn_good():
57
- print("Connection to OpenAI API is good")
58
- else:
59
- print("Failed to connect to OpenAI API")
60
-
61
-
62
- async def __async_example():
63
- async_open_ai = AsyncOpenAI(api_key="your-api-key")
64
- client = OpenAIAPIClient(async_open_ai=async_open_ai)
65
-
66
- print("Checking OpenAI API async connection...")
67
- if await client.async_is_conn_good():
68
- print("Async connection to OpenAI API is good")
69
- else:
70
- print("Failed to async connect to OpenAI API")
71
-
72
-
73
- if __name__ == '__main__':
74
- __example()
75
- asyncio.run(__async_example())
File without changes
File without changes