arpakitlib 1.7.214__tar.gz → 1.7.216__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.
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/PKG-INFO +1 -1
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_arpakit_schedule_uust_api_client_util.py +160 -166
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_util.py +7 -2
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_http_request_util.py +20 -8
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_schedule_uust_api_client_util.py +4 -2
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/pyproject.toml +1 -1
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/LICENSE +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/README.md +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/.gitignore +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/.python-version +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/ARPAKITLIB +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/LICENSE +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/README.md +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/example.env +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/docker_ps.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/docker_ps_a.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/docker_run_postgres_for_dev.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/docker_start_postgres_for_dev.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/docker_stop_postgres_for_dev.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/git_branch.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/git_commit.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_github_1.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_gitlab_1.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_github_1.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_gitlab_1.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/git_remote_v.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/git_set_arpakit_company_origin.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/git_set_arpakit_origin.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/git_status.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/hello_world.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/json_beautify.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/note/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/note/note_1.txt +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/note/note_2.txt +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/note/note_3.txt +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/note/note_4.txt +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/note/note_5.txt +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/poetry_add_plugin_export.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/poetry_check.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/poetry_clear_cache.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/poetry_config.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/poetry_config_virtualenvs_in_project_true.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/poetry_install.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/poetry_lock.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/poetry_remove_and_add_arpakitlib.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/poetry_self_add_plugin_export.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/poetry_show.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/poetry_show_arpakitlib.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/poetry_update.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/poetry_update_arpakitlib.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/sandbox/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_1.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_2.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_3.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_4.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_5.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_6.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_7.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_8.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_9.sh +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/resource/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/resource/static/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/resource/static/healthcheck +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/resource/static/helloworld +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/additional_model/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/additional_model/additional_model.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/admin1/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/admin1/add_admin_in_app.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/admin1/admin_auth.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/admin1/model_view.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/api/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/api/_start_api_with_reload.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/api/_start_api_without_reload.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/api/asgi.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/api/auth.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/api/const.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/api/create_api_app.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/api/event.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/api/router/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/api/router/main_router.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/api/router/v1/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/api/router/v1/get_api_error_info.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/api/router/v1/main_router.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/api/schema/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/api/schema/v1/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/api/schema/v1/in_.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/api/schema/v1/out.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/api/transmitted_api_data.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/api/util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/business_service/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/business_service/hello_world.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/core/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/core/_check_logging.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/core/_check_settings.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/core/_generate_settings_env_example.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/core/const.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/core/settings.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/core/util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/db/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/db/_check_conn_sqlalchemy_db.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/db/_init_sqlalchemy_db.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/db/_reinit_sqlalchemy_db.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/db/const.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/db/sqlalchemy_model.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/db/util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/operation_execution/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/operation_execution/_start_operation_executor_worker.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/operation_execution/_start_scheduled_operation_creator_worker.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/operation_execution/const.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/operation_execution/operation_executor.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/operation_execution/scheduled_operations.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/operation_execution/util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/test_data/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_1.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_2.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_3.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_4.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_5.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/tg_bot/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/tg_bot/router/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/tg_bot/start_tg_bot.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/src/util/__init__.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_additional_model_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_aiogram_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_api_key_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_arpakit_lib_module_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_arpakit_project_template_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_arpakitlib_cli_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_base64_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_base_worker_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_cache_file_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_class_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_datetime_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_dict_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_dream_ai_api_client_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_encrypt_decrypt_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_enumeration_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_exception_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/healthcheck +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/redoc/redoc.standalone.js +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/swagger-ui/favicon-16x16.png +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/swagger-ui/favicon-32x32.png +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/swagger-ui/index.css +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/swagger-ui/index.html +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/swagger-ui/oauth2-redirect.html +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-initializer.js +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-bundle.js +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-bundle.js.map +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle-core.js +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle-core.js.map +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle.js +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle.js.map +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-standalone-preset.js +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-standalone-preset.js.map +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css.map +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js.map +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_file_storage_in_dir_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_file_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_func_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_hash_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_ip_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_json_db_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_json_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_jwt_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_list_of_dicts_to_xlsx.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_list_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_logging_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_mongodb_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_need_type_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_openai_api_client_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_operation_execution_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_parse_command.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_postgresql_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_run_cmd_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_settings_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_sleep_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_sqladmin_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_sqlalchemy_model_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_sqlalchemy_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_ssh_runner_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_str_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_type_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_yookassa_api_client_util.py +0 -0
- {arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_zabbix_api_client_util.py +0 -0
{arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/ar_arpakit_schedule_uust_api_client_util.py
RENAMED
@@ -3,21 +3,18 @@
|
|
3
3
|
from __future__ import annotations
|
4
4
|
|
5
5
|
import asyncio
|
6
|
-
import hashlib
|
7
|
-
import json
|
8
6
|
import logging
|
9
7
|
from datetime import timedelta, datetime, time
|
10
8
|
from typing import Any
|
11
9
|
from urllib.parse import urljoin
|
12
10
|
|
13
|
-
import aiohttp
|
14
11
|
import cachetools
|
15
|
-
from aiohttp import ClientResponse
|
12
|
+
from aiohttp import ClientResponse
|
16
13
|
from pydantic import ConfigDict, BaseModel
|
17
14
|
|
18
15
|
from arpakitlib.ar_enumeration_util import Enumeration
|
19
|
-
from arpakitlib.
|
20
|
-
from arpakitlib.
|
16
|
+
from arpakitlib.ar_http_request_util import async_make_http_request
|
17
|
+
from arpakitlib.ar_json_util import safely_transfer_obj_to_json_str
|
21
18
|
|
22
19
|
_ARPAKIT_LIB_MODULE_VERSION = "3.0"
|
23
20
|
|
@@ -53,23 +50,28 @@ class BaseAPIModel(BaseModel):
|
|
53
50
|
|
54
51
|
class CurrentSemesterAPIModel(BaseAPIModel):
|
55
52
|
id: int
|
53
|
+
long_id: str
|
56
54
|
creation_dt: datetime
|
57
|
-
|
55
|
+
entity_type: str
|
56
|
+
actualization_dt: datetime
|
58
57
|
value: str
|
59
|
-
raw_value: str
|
60
58
|
|
61
59
|
|
62
60
|
class CurrentWeekAPIModel(BaseAPIModel):
|
63
61
|
id: int
|
62
|
+
long_id: str
|
64
63
|
creation_dt: datetime
|
65
|
-
|
66
|
-
|
64
|
+
entity_type: str
|
65
|
+
actualization_dt: datetime
|
66
|
+
value: int
|
67
67
|
|
68
68
|
|
69
69
|
class GroupAPIModel(BaseAPIModel):
|
70
70
|
id: int
|
71
|
+
long_id: str
|
71
72
|
creation_dt: datetime
|
72
|
-
|
73
|
+
entity_type: str
|
74
|
+
actualization_dt: datetime
|
73
75
|
uust_api_id: int
|
74
76
|
title: str
|
75
77
|
faculty: str | None
|
@@ -80,8 +82,10 @@ class GroupAPIModel(BaseAPIModel):
|
|
80
82
|
|
81
83
|
class TeacherAPIModel(BaseAPIModel):
|
82
84
|
id: int
|
85
|
+
long_id: str
|
83
86
|
creation_dt: datetime
|
84
|
-
|
87
|
+
entity_type: str
|
88
|
+
actualization_dt: datetime
|
85
89
|
uust_api_id: int
|
86
90
|
name: str | None
|
87
91
|
surname: str | None
|
@@ -98,8 +102,10 @@ class TeacherAPIModel(BaseAPIModel):
|
|
98
102
|
|
99
103
|
class GroupLessonAPIModel(BaseAPIModel):
|
100
104
|
id: int
|
105
|
+
long_id: str
|
101
106
|
creation_dt: datetime
|
102
|
-
|
107
|
+
entity_type: str
|
108
|
+
actualization_dt: datetime
|
103
109
|
uust_api_id: int
|
104
110
|
type: str
|
105
111
|
title: str
|
@@ -134,8 +140,10 @@ class GroupLessonAPIModel(BaseAPIModel):
|
|
134
140
|
|
135
141
|
class TeacherLessonAPIModel(BaseAPIModel):
|
136
142
|
id: int
|
143
|
+
long_id: str
|
137
144
|
creation_dt: datetime
|
138
|
-
|
145
|
+
entity_type: str
|
146
|
+
actualization_dt: datetime
|
139
147
|
uust_api_id: int
|
140
148
|
type: str
|
141
149
|
title: str
|
@@ -209,104 +217,63 @@ class ARPAKITScheduleUUSTAPIClient:
|
|
209
217
|
if self.ttl_cache is not None:
|
210
218
|
self.ttl_cache.clear()
|
211
219
|
|
212
|
-
async def
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
220
|
+
async def _async_make_http_request(
|
221
|
+
self,
|
222
|
+
*,
|
223
|
+
method: str = "GET",
|
224
|
+
url: str,
|
225
|
+
params: dict[str, Any] | None = None,
|
226
|
+
**kwargs
|
227
|
+
) -> ClientResponse:
|
228
|
+
response = await async_make_http_request(
|
229
|
+
method=method,
|
230
|
+
url=url,
|
231
|
+
headers=self.headers,
|
232
|
+
params=params,
|
233
|
+
raise_for_status_=True,
|
234
|
+
**kwargs
|
224
235
|
)
|
236
|
+
return response
|
225
237
|
|
226
|
-
|
227
|
-
|
228
|
-
return self.ttl_cache[cache_key]
|
229
|
-
|
230
|
-
while True:
|
231
|
-
tries += 1
|
232
|
-
self._logger.info(f"{method} {url}")
|
233
|
-
try:
|
234
|
-
async with aiohttp.ClientSession() as session:
|
235
|
-
async with session.request(**kwargs) as response:
|
236
|
-
await response.read()
|
237
|
-
if self.use_cache and self.ttl_cache is not None:
|
238
|
-
self.ttl_cache[cache_key] = response
|
239
|
-
return response
|
240
|
-
except Exception as err:
|
241
|
-
self._logger.warning(f"{tries}/{max_tries} {err} {method} {url}")
|
242
|
-
if tries >= max_tries:
|
243
|
-
raise err
|
244
|
-
await async_safe_sleep(timedelta(seconds=0.1).total_seconds())
|
245
|
-
continue
|
246
|
-
|
247
|
-
async def healthcheck(self) -> bool:
|
248
|
-
response = await self._async_make_request(method="GET", url=urljoin(self.base_url, "healthcheck"))
|
249
|
-
response.raise_for_status()
|
238
|
+
async def check_auth(self) -> dict[str, Any]:
|
239
|
+
response = await self._async_make_http_request(method="GET", url=urljoin(self.base_url, "check_auth"))
|
250
240
|
json_data = await response.json()
|
251
|
-
return json_data
|
252
|
-
|
253
|
-
async def is_healthcheck_good(self) -> bool:
|
254
|
-
try:
|
255
|
-
return await self.healthcheck()
|
256
|
-
except ClientResponseError:
|
257
|
-
return False
|
241
|
+
return json_data
|
258
242
|
|
259
|
-
async def
|
260
|
-
response = await self.
|
261
|
-
|
262
|
-
|
263
|
-
return json_data["data"]["auth_healthcheck"]
|
264
|
-
|
265
|
-
async def is_auth_healthcheck_good(self) -> bool:
|
266
|
-
try:
|
267
|
-
return await self.auth_healthcheck()
|
268
|
-
except ClientResponseError:
|
269
|
-
return False
|
270
|
-
|
271
|
-
async def get_required_current_week_value(self) -> int:
|
272
|
-
response = await self._async_make_request(method="GET", url=urljoin(self.base_url, "get_current_week"))
|
273
|
-
response.raise_for_status()
|
243
|
+
async def get_current_week(self) -> CurrentWeekAPIModel | None:
|
244
|
+
response = await self._async_make_http_request(
|
245
|
+
method="GET", url=urljoin(self.base_url, "get_current_week")
|
246
|
+
)
|
274
247
|
json_data = await response.json()
|
275
|
-
|
276
|
-
|
248
|
+
if json_data is None:
|
249
|
+
return None
|
250
|
+
return CurrentWeekAPIModel.model_validate(json_data)
|
277
251
|
|
278
252
|
async def get_current_semester(self) -> CurrentSemesterAPIModel | None:
|
279
|
-
response = await self.
|
253
|
+
response = await self._async_make_http_request(
|
254
|
+
method="GET", url=urljoin(self.base_url, "get_current_semester")
|
255
|
+
)
|
280
256
|
json_data = await response.json()
|
281
257
|
if json_data is None:
|
282
258
|
return None
|
283
|
-
|
284
|
-
return None
|
285
|
-
response.raise_for_status()
|
286
|
-
return CurrentSemesterAPIModel.from_arpakit_uust_api_data(arpakit_uust_api_data=json_data)
|
259
|
+
return CurrentSemesterAPIModel.model_validate(json_data)
|
287
260
|
|
288
|
-
async def
|
289
|
-
response = await self.
|
261
|
+
async def get_weather_in_ufa(self) -> WeatherInUfaAPIModel:
|
262
|
+
response = await self._async_make_http_request(
|
263
|
+
method="GET", url=urljoin(self.base_url, "get_weather_in_ufa")
|
264
|
+
)
|
290
265
|
json_data = await response.json()
|
291
|
-
|
292
|
-
return None
|
293
|
-
if "error_code" in json_data and json_data["error_code"] == "CURRENT_WEEK_NOT_FOUND":
|
294
|
-
return None
|
295
|
-
response.raise_for_status()
|
296
|
-
return CurrentWeekAPIModel.from_arpakit_uust_api_data(arpakit_uust_api_data=json_data)
|
266
|
+
return WeatherInUfaAPIModel.model_validate(json_data)
|
297
267
|
|
298
268
|
async def get_log_file_content(self) -> str | None:
|
299
|
-
|
300
|
-
response = await self._async_make_request(method="GET", url=urljoin(self.base_url, "extra/get_log_file"))
|
301
|
-
response.raise_for_status()
|
269
|
+
response = await self._async_make_http_request(method="GET", url=urljoin(self.base_url, "get_log_file"))
|
302
270
|
text_data = await response.text()
|
303
271
|
return text_data
|
304
272
|
|
305
273
|
async def get_groups(self) -> list[GroupAPIModel]:
|
306
|
-
response = await self.
|
307
|
-
response.raise_for_status()
|
274
|
+
response = await self._async_make_http_request(method="GET", url=urljoin(self.base_url, "get_groups"))
|
308
275
|
json_data = await response.json()
|
309
|
-
return [GroupAPIModel.
|
276
|
+
return [GroupAPIModel.model_validate(d) for d in json_data]
|
310
277
|
|
311
278
|
async def get_group(
|
312
279
|
self, *, filter_id: int | None = None, filter_uust_api_id: int | None = None
|
@@ -316,34 +283,25 @@ class ARPAKITScheduleUUSTAPIClient:
|
|
316
283
|
params["filter_id"] = filter_id
|
317
284
|
if filter_uust_api_id is not None:
|
318
285
|
params["filter_uust_api_id"] = filter_uust_api_id
|
319
|
-
response = await self.
|
320
|
-
|
321
|
-
url=urljoin(self.base_url, "group/get_group"),
|
322
|
-
params=params
|
323
|
-
)
|
286
|
+
response = await self._async_make_http_request(method="GET", url=urljoin(self.base_url, "get_group"),
|
287
|
+
params=params)
|
324
288
|
json_data = await response.json()
|
325
|
-
if
|
289
|
+
if json_data is None:
|
326
290
|
return None
|
327
|
-
|
328
|
-
return GroupAPIModel.from_arpakit_uust_api_data(arpakit_uust_api_data=json_data)
|
291
|
+
return GroupAPIModel.model_validate(json_data)
|
329
292
|
|
330
293
|
async def find_groups(
|
331
294
|
self, *, q: str
|
332
295
|
) -> list[GroupAPIModel]:
|
333
|
-
response = await self.
|
334
|
-
|
335
|
-
url=urljoin(self.base_url, "group/find_groups"),
|
336
|
-
params={"q": q.strip()}
|
337
|
-
)
|
338
|
-
response.raise_for_status()
|
296
|
+
response = await self._async_make_http_request(method="GET", url=urljoin(self.base_url, "find_groups"),
|
297
|
+
params={"q": q.strip()})
|
339
298
|
json_data = await response.json()
|
340
|
-
return [GroupAPIModel.
|
299
|
+
return [GroupAPIModel.model_validate(d) for d in json_data]
|
341
300
|
|
342
301
|
async def get_teachers(self) -> list[TeacherAPIModel]:
|
343
|
-
response = await self.
|
344
|
-
response.raise_for_status()
|
302
|
+
response = await self._async_make_http_request(method="GET", url=urljoin(self.base_url, "get_teachers"))
|
345
303
|
json_data = await response.json()
|
346
|
-
return [TeacherAPIModel.
|
304
|
+
return [TeacherAPIModel.model_validate(d) for d in json_data]
|
347
305
|
|
348
306
|
async def get_teacher(
|
349
307
|
self, *, filter_id: int | None = None, filter_uust_api_id: int | None = None
|
@@ -353,28 +311,37 @@ class ARPAKITScheduleUUSTAPIClient:
|
|
353
311
|
params["filter_id"] = filter_id
|
354
312
|
if filter_uust_api_id is not None:
|
355
313
|
params["filter_uust_api_id"] = filter_uust_api_id
|
356
|
-
response = await self.
|
357
|
-
|
358
|
-
url=urljoin(self.base_url, "teacher/get_teacher"),
|
359
|
-
params=params
|
360
|
-
)
|
314
|
+
response = await self._async_make_http_request(method="GET", url=urljoin(self.base_url, "get_teacher"),
|
315
|
+
params=params)
|
361
316
|
json_data = await response.json()
|
362
|
-
if
|
317
|
+
if json_data is None:
|
363
318
|
return None
|
364
|
-
|
365
|
-
return TeacherAPIModel.from_arpakit_uust_api_data(arpakit_uust_api_data=json_data)
|
319
|
+
return TeacherAPIModel.model_validate(json_data)
|
366
320
|
|
367
321
|
async def find_teachers(
|
368
322
|
self, *, q: str
|
369
323
|
) -> list[TeacherAPIModel]:
|
370
|
-
response = await self.
|
371
|
-
|
372
|
-
url=urljoin(self.base_url, "teacher/find_teachers"),
|
373
|
-
params={"q": q.strip()}
|
374
|
-
)
|
375
|
-
response.raise_for_status()
|
324
|
+
response = await self._async_make_http_request(method="GET", url=urljoin(self.base_url, "find_teachers"),
|
325
|
+
params={"q": q.strip()})
|
376
326
|
json_data = await response.json()
|
377
|
-
return [TeacherAPIModel.
|
327
|
+
return [TeacherAPIModel.model_validate(d) for d in json_data]
|
328
|
+
|
329
|
+
async def find_any(
|
330
|
+
self, *, q: str
|
331
|
+
) -> list[TeacherAPIModel | GroupLessonAPIModel]:
|
332
|
+
response = await self._async_make_http_request(method="GET", url=urljoin(self.base_url, "find_any"),
|
333
|
+
params={"q": q.strip()})
|
334
|
+
json_data = await response.json()
|
335
|
+
|
336
|
+
results = []
|
337
|
+
for i in json_data:
|
338
|
+
if i.get("entity_type") == "group":
|
339
|
+
results.append(GroupAPIModel.model_validate(i))
|
340
|
+
elif i.get("entity_type") == "teacher":
|
341
|
+
results.append(TeacherAPIModel.model_validate(i))
|
342
|
+
else:
|
343
|
+
pass
|
344
|
+
return results
|
378
345
|
|
379
346
|
async def get_group_lessons(
|
380
347
|
self,
|
@@ -387,14 +354,11 @@ class ARPAKITScheduleUUSTAPIClient:
|
|
387
354
|
params["filter_group_id"] = filter_group_id
|
388
355
|
if filter_group_uust_api_id is not None:
|
389
356
|
params["filter_group_uust_api_id"] = filter_group_uust_api_id
|
390
|
-
response = await self.
|
391
|
-
method="GET",
|
392
|
-
url=urljoin(self.base_url, "group_lesson/get_group_lessons"),
|
393
|
-
params=params
|
357
|
+
response = await self._async_make_http_request(
|
358
|
+
method="GET", url=urljoin(self.base_url, "get_group_lessons"), params=params
|
394
359
|
)
|
395
|
-
response.raise_for_status()
|
396
360
|
json_data = await response.json()
|
397
|
-
return [GroupLessonAPIModel.
|
361
|
+
return [GroupLessonAPIModel.model_validate(d) for d in json_data]
|
398
362
|
|
399
363
|
async def get_teacher_lessons(
|
400
364
|
self,
|
@@ -407,20 +371,11 @@ class ARPAKITScheduleUUSTAPIClient:
|
|
407
371
|
params["filter_teacher_id"] = filter_teacher_id
|
408
372
|
if filter_teacher_uust_api_id is not None:
|
409
373
|
params["filter_teacher_uust_api_id"] = filter_teacher_uust_api_id
|
410
|
-
response = await self.
|
411
|
-
method="GET",
|
412
|
-
url=urljoin(self.base_url, "teacher_lesson/get_teacher_lessons"),
|
413
|
-
params=params
|
374
|
+
response = await self._async_make_http_request(
|
375
|
+
method="GET", url=urljoin(self.base_url, "get_teacher_lessons"), params=params
|
414
376
|
)
|
415
|
-
response.raise_for_status()
|
416
377
|
json_data = await response.json()
|
417
|
-
return [TeacherLessonAPIModel.
|
418
|
-
|
419
|
-
async def get_weather_in_ufa(self) -> WeatherInUfaAPIModel:
|
420
|
-
response = await self._async_make_request(method="GET", url=urljoin(self.base_url, "get_weather_in_ufa"))
|
421
|
-
response.raise_for_status()
|
422
|
-
json_data = await response.json()
|
423
|
-
return WeatherInUfaAPIModel.from_arpakit_uust_api_data(json_data)
|
378
|
+
return [TeacherLessonAPIModel.model_validate(d) for d in json_data]
|
424
379
|
|
425
380
|
|
426
381
|
def __example():
|
@@ -428,28 +383,67 @@ def __example():
|
|
428
383
|
|
429
384
|
|
430
385
|
async def __async_example():
|
431
|
-
client = ARPAKITScheduleUUSTAPIClient(api_key="
|
432
|
-
|
433
|
-
|
434
|
-
print(
|
435
|
-
|
436
|
-
|
437
|
-
print(
|
438
|
-
|
439
|
-
|
440
|
-
print(
|
441
|
-
|
442
|
-
|
443
|
-
print(
|
444
|
-
|
445
|
-
|
446
|
-
print(f"
|
447
|
-
|
448
|
-
|
449
|
-
print(f"
|
450
|
-
|
451
|
-
|
452
|
-
|
386
|
+
client = ARPAKITScheduleUUSTAPIClient(api_key="viewer", use_cache=True)
|
387
|
+
|
388
|
+
print(f"check_auth")
|
389
|
+
print(safely_transfer_obj_to_json_str(await client.check_auth()))
|
390
|
+
|
391
|
+
print(f"get_weather_in_ufa")
|
392
|
+
print(safely_transfer_obj_to_json_str((await client.get_weather_in_ufa()).model_dump()))
|
393
|
+
|
394
|
+
print(f"get_current_week")
|
395
|
+
print(safely_transfer_obj_to_json_str((await client.get_current_week()).model_dump()))
|
396
|
+
|
397
|
+
print(f"get_current_semester")
|
398
|
+
print(safely_transfer_obj_to_json_str((await client.get_current_semester()).model_dump()))
|
399
|
+
|
400
|
+
# Group
|
401
|
+
print(f"get_groups")
|
402
|
+
print(safely_transfer_obj_to_json_str((await client.get_groups())))
|
403
|
+
|
404
|
+
print(f"get_group")
|
405
|
+
if await client.get_group(filter_id=25285, filter_uust_api_id=6674):
|
406
|
+
print(safely_transfer_obj_to_json_str(
|
407
|
+
(await client.get_group(filter_id=25285, filter_uust_api_id=6674)).model_dump()))
|
408
|
+
else:
|
409
|
+
print("Group is none")
|
410
|
+
|
411
|
+
print(f"find_groups")
|
412
|
+
print(safely_transfer_obj_to_json_str((await client.find_groups(q="ПИ-427Б"))))
|
413
|
+
|
414
|
+
# Teacher
|
415
|
+
print(f"get_teachers")
|
416
|
+
print(safely_transfer_obj_to_json_str((await client.get_teachers())))
|
417
|
+
|
418
|
+
print(f"get_teacher")
|
419
|
+
if await client.get_teacher(filter_id=16975, filter_uust_api_id=112978):
|
420
|
+
print(safely_transfer_obj_to_json_str(
|
421
|
+
(await client.get_teacher(filter_id=16975, filter_uust_api_id=112978)).model_dump()))
|
422
|
+
else:
|
423
|
+
print("Teacher is none")
|
424
|
+
|
425
|
+
print(f"find_teachers")
|
426
|
+
print(safely_transfer_obj_to_json_str((await client.find_teachers(q="Казанцев"))))
|
427
|
+
|
428
|
+
# Group Lesson
|
429
|
+
print(f"get_group_lessons")
|
430
|
+
if await client.get_group_lessons(filter_group_id=25285, filter_group_uust_api_id=6674):
|
431
|
+
print(safely_transfer_obj_to_json_str((await client.get_group_lessons(filter_group_id=25285,
|
432
|
+
filter_group_uust_api_id=6674))))
|
433
|
+
else:
|
434
|
+
print("Group lessons is none")
|
435
|
+
|
436
|
+
# Teacher Lesson
|
437
|
+
print(f"get_teacher_lessons")
|
438
|
+
if await client.get_teacher_lessons(filter_teacher_id=16975, filter_teacher_uust_api_id=112978):
|
439
|
+
print(safely_transfer_obj_to_json_str((await client.get_teacher_lessons(filter_teacher_id=16975,
|
440
|
+
filter_teacher_uust_api_id=112978))))
|
441
|
+
else:
|
442
|
+
print("Teacher lessons is none")
|
443
|
+
|
444
|
+
# Find Any
|
445
|
+
print(f"find_any")
|
446
|
+
print(safely_transfer_obj_to_json_str((await client.find_any(q="ПИ"))))
|
453
447
|
|
454
448
|
|
455
449
|
if __name__ == '__main__':
|
@@ -282,7 +282,8 @@ def create_handle_exception(
|
|
282
282
|
def create_story_log_before_response_in_handle_exception(
|
283
283
|
*,
|
284
284
|
sqlalchemy_db: SQLAlchemyDB,
|
285
|
-
|
285
|
+
ignore_api_error_codes: list[str] | None = None,
|
286
|
+
ignore_status_codes: list[int] | None = None
|
286
287
|
) -> Callable:
|
287
288
|
def func(
|
288
289
|
*,
|
@@ -292,8 +293,12 @@ def create_story_log_before_response_in_handle_exception(
|
|
292
293
|
exception: Exception,
|
293
294
|
**kwargs
|
294
295
|
) -> (int, ErrorSO, dict[str, Any]):
|
295
|
-
if
|
296
|
+
if ignore_api_error_codes and error_so.error_code in ignore_api_error_codes:
|
296
297
|
return status_code, error_so, kwargs
|
298
|
+
|
299
|
+
if ignore_status_codes and status_code in ignore_status_codes:
|
300
|
+
return status_code, error_so, kwargs
|
301
|
+
|
297
302
|
sqlalchemy_db.init()
|
298
303
|
traceback_str = "".join(traceback.format_exception(type(exception), exception, exception.__traceback__))
|
299
304
|
with sqlalchemy_db.new_session() as session:
|
@@ -26,6 +26,7 @@ def sync_make_http_request(
|
|
26
26
|
max_tries_: int = 9,
|
27
27
|
proxy_url_: str | None = None,
|
28
28
|
raise_for_status_: bool = False,
|
29
|
+
not_raise_for_statuses: list[int] | None = None,
|
29
30
|
timeout_: timedelta | float = timedelta(seconds=15).total_seconds(),
|
30
31
|
enable_logging_: bool = False,
|
31
32
|
**kwargs
|
@@ -53,21 +54,25 @@ def sync_make_http_request(
|
|
53
54
|
kwargs["allow_redirects"] = True
|
54
55
|
|
55
56
|
if enable_logging_:
|
56
|
-
_logger.info(f"
|
57
|
+
_logger.info(f"try http {method} {url} {params}")
|
57
58
|
|
58
59
|
while True:
|
59
60
|
tries_counter += 1
|
60
61
|
try:
|
61
62
|
response = requests.request(**kwargs)
|
62
63
|
if raise_for_status_:
|
63
|
-
response.
|
64
|
+
if not_raise_for_statuses and response.status_code in not_raise_for_statuses:
|
65
|
+
if enable_logging_:
|
66
|
+
_logger.info(f"ignored status {response.status_code} for http {method} {url} {params}")
|
67
|
+
else:
|
68
|
+
response.raise_for_status()
|
64
69
|
if enable_logging_:
|
65
|
-
_logger.info(f"
|
70
|
+
_logger.info(f"good try http {method} {url} {params}")
|
66
71
|
return response
|
67
72
|
except BaseException as exception:
|
68
73
|
if enable_logging_:
|
69
74
|
_logger.warning(
|
70
|
-
f"{tries_counter}/{max_tries_}.
|
75
|
+
f"{tries_counter}/{max_tries_}. retry {method} {url} {params}, exception={exception}"
|
71
76
|
)
|
72
77
|
if tries_counter >= max_tries_:
|
73
78
|
raise exception
|
@@ -84,6 +89,7 @@ async def async_make_http_request(
|
|
84
89
|
max_tries_: int = 9,
|
85
90
|
proxy_url_: str | None = None,
|
86
91
|
raise_for_status_: bool = False,
|
92
|
+
not_raise_for_statuses: list[int] | None = None,
|
87
93
|
timeout_: timedelta | None = timedelta(seconds=15),
|
88
94
|
enable_logging_: bool = False,
|
89
95
|
**kwargs
|
@@ -106,7 +112,7 @@ async def async_make_http_request(
|
|
106
112
|
proxy_connector = ProxyConnector.from_url(proxy_url_)
|
107
113
|
|
108
114
|
if enable_logging_:
|
109
|
-
_logger.info(f"
|
115
|
+
_logger.info(f"try http {method} {url} {params}")
|
110
116
|
|
111
117
|
while True:
|
112
118
|
tries_counter += 1
|
@@ -114,15 +120,21 @@ async def async_make_http_request(
|
|
114
120
|
async with aiohttp.ClientSession(connector=proxy_connector) as session:
|
115
121
|
async with session.request(**kwargs) as response:
|
116
122
|
if raise_for_status_:
|
117
|
-
response.
|
123
|
+
if not_raise_for_statuses and response.status in not_raise_for_statuses:
|
124
|
+
if enable_logging_:
|
125
|
+
_logger.info(
|
126
|
+
f"ignored status {response.status} for http {method} {url} {params}"
|
127
|
+
)
|
128
|
+
else:
|
129
|
+
response.raise_for_status()
|
118
130
|
await response.read()
|
119
131
|
if enable_logging_:
|
120
|
-
_logger.info(f"
|
132
|
+
_logger.info(f"good try http {method} {url} {params}")
|
121
133
|
return response
|
122
134
|
except BaseException as exception:
|
123
135
|
if enable_logging_:
|
124
136
|
_logger.warning(
|
125
|
-
f"{tries_counter}/{max_tries_}.
|
137
|
+
f"{tries_counter}/{max_tries_}. retry http {method} {url} {params}, exception={exception}"
|
126
138
|
)
|
127
139
|
if tries_counter >= max_tries_:
|
128
140
|
raise exception
|
@@ -77,7 +77,8 @@ class ScheduleUUSTAPIClient:
|
|
77
77
|
*,
|
78
78
|
method: str = "GET",
|
79
79
|
url: str,
|
80
|
-
params: dict[str, Any] | None = None
|
80
|
+
params: dict[str, Any] | None = None,
|
81
|
+
**kwargs
|
81
82
|
) -> ClientResponse:
|
82
83
|
response = await async_make_http_request(
|
83
84
|
method=method,
|
@@ -85,7 +86,8 @@ class ScheduleUUSTAPIClient:
|
|
85
86
|
headers=self.headers,
|
86
87
|
params=combine_dicts(params, self.auth_params()),
|
87
88
|
proxy_url_=self.api_proxy_url,
|
88
|
-
raise_for_status_=True
|
89
|
+
raise_for_status_=True,
|
90
|
+
**kwargs
|
89
91
|
)
|
90
92
|
json_data = await response.json()
|
91
93
|
if "error" in json_data.keys():
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/.python-version
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/__init__.py
RENAMED
File without changes
|
{arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/docker_ps.sh
RENAMED
File without changes
|
{arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/docker_ps_a.sh
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/git_branch.sh
RENAMED
File without changes
|
{arpakitlib-1.7.214 → arpakitlib-1.7.216}/arpakitlib/_arpakit_project_template/manage/git_commit.sh
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|