arpakitlib 1.8.53__tar.gz → 1.8.57__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.8.53 → arpakitlib-1.8.57}/PKG-INFO +1 -1
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/.gitignore +1 -0
- arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/arpakitlib_project_template_info.json +4 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/authorize.py +33 -3
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/check_sqlalchemy_db.py +4 -4
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/clear_log_file.py +3 -3
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/create_operation.py +3 -3
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_arpakitlib_project_template_info.py +3 -3
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_auth_data.py +3 -3
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation.py +3 -3
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation_allowed_statuses.py +3 -3
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation_allowed_types.py +3 -3
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_settings.py +4 -4
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_sqlalchemy_db_table_name_to_amount.py +3 -3
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_story_log.py +3 -3
- arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_user.py +81 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/init_sqlalchemy_db.py +3 -3
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/main_router.py +11 -1
- arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/make_test_data_1.py +41 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/reinit_sqlalchemy_db.py +3 -3
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user.py +3 -3
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user_token.py +3 -3
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/check_authorization.py +5 -4
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/get_current_api_key.py +3 -3
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/get_errors_info.py +3 -3
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/healthcheck.py +3 -3
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/now_utc_datetime.py +3 -3
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/common.py +3 -1
- arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/user.py +35 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/common.py +1 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user.py +3 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/raw_data.py +1 -1
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/common.py +4 -1
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user.py +3 -0
- arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_1.py +18 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/admin_authorize.py +1 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user.py +1 -0
- arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/api_key.py +70 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py +47 -12
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py +81 -12
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/story_log.py +33 -6
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user.py +59 -18
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py +18 -6
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_api_keys.py +2 -2
- arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_1.py +60 -0
- arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/etc.py +0 -0
- arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/util/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_str_util.py +9 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/pyproject.toml +1 -1
- arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/arpakitlib_project_template_info.json +0 -4
- arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_1.py +0 -14
- arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/api_key.py +0 -52
- arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/util.py +0 -28
- arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_1.py +0 -24
- arpakitlib-1.8.53/arpakitlib/ar_steam_payment_api_client_util.py +0 -21
- arpakitlib-1.8.53/arpakitlib/ar_wata_api_client.py +0 -21
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/LICENSE +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/README.md +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/.python-version +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/LICENSE +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/README.md +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/alembic/README +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/alembic/env.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/alembic/script.py.mako +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/alembic/versions/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/alembic.ini +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/alembic_history.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/alembic_revision_autogenerate.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/alembic_upgrade_head.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/beautify_json.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/check_logging.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/check_sqlalchemy_db.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/demojize.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/docker_ps_a.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/docker_rm_postgres.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/docker_run_postgres.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/docker_start_postgres.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/docker_stop_postgres.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/drop_json_db.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/drop_sqlalchemy_db.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/emojize.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/generate_settings_env_example.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/git_commit.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/git_push_arpakit_company_github_1.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/git_push_arpakit_company_gitlab_1.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/git_push_arpakit_github_1.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/git_push_arpakit_gitlab_1.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/git_remote_v.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/git_set_arpakit_company_origin.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/git_set_arpakit_origin.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/git_set_divarteam_origin.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/git_status.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/hello_world.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/init_json_db.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/init_sqlalchemy_db.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/poetry_check.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/poetry_clear_cache.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/poetry_config.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/poetry_install.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/poetry_lock.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/poetry_remove_and_add_arpakitlib.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/poetry_show.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/poetry_show_arpakitlib.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/poetry_update.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/poetry_update_arpakitlib.sh +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/reinit_all_sqlalchemy_db.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/reinit_json_db.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/reinit_sqlalchemy_db.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/remove_operations.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/remove_story_logs.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/rm_all_records_in_json_db.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/set_tg_bot_commands.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/show_settings.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/show_sqlalchemy_db_table_name_to_amount.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/start_api.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/start_api_for_prod.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/start_api_with_reload.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/start_operation_executor_worker.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/start_operation_executor_workers.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/start_scheduled_operation_creator_worker.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/start_sqladmin.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/start_sqladmin_for_prod.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/start_sqladmin_with_reload.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/start_tg_bot.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/command/start_tg_bot_for_prod.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/example.env +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/note/note_1.txt +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/note/note_2.txt +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/note/note_3.txt +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/note/note_4.txt +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/note/note_5.txt +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/additional_model/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/additional_model/common.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/asgi.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/blank/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/blank/admin.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/blank/client.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/blank/common.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/const.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/create_api_app.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/event.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/exception.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/exception_handler.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/openapi_ui.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/response.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_log_file.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/raise_fake_error.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/client/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/client/main_router.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/main_router.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/router/main_router.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/common.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/admin/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/admin/common.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/client/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/client/common.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/common/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/general/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/general/common.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/operation.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/story_log.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user_token.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/datetime_.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/error.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/api_key.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user_token.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/api/util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/business_service/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/business_service/hello_world.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/business_service/remove_operations.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/celery_/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/core/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/core/cache_file_storage_in_dir.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/core/const.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/core/dump_file_storage_in_dir.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/core/jinja2_templates.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/core/media_file_storage_in_dir.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/core/settings.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/core/util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/json_db/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/json_db/json_db.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/operation_execution → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/more}/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/more/helloworld +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/resource → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/operation_execution}/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/const.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/operation_executor_worker.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operation_creator_worker.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operations.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/util.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/sandbox → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/resource}/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/1 +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/healthcheck +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/helloworld +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/openapi-favicon.png +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/redoc/redoc.standalone.js +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/sqladmin-favicon.png +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/favicon-16x16.png +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/favicon-32x32.png +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/index.css +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/index.html +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/oauth2-redirect.html +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-initializer.js +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-bundle.js +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-bundle.js.map +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-es-bundle-core.js +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-es-bundle-core.js.map +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-es-bundle.js +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-es-bundle.js.map +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-standalone-preset.js +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-standalone-preset.js.map +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui.css +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui.css.map +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui.js +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui.js.map +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/site → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/sandbox}/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_2.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_3.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_4.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_5.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_6.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_7.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/site/router → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/site}/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/site/asgi.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/site/consts.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/site/create_site_app.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/site/event.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/site/exception_handler.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_ → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/site/router}/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/site/router/main_router.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_ → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_}/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/add_admin_in_app.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/asgi.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/create_sqladmin_app.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/event.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/api_key.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/common.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/operation.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/story_log.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user_token.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/test_data → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_}/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/const.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_db.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/__init__.py +0 -0
- /arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/__init__.py → /arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/util.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/test_data}/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_2.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_3.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_4.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_5.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/tg_bot}/__init__.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_ → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank}/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/admin.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/common.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/general.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback}/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/admin.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/client.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/common.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/const.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/event.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_ → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_}/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/is_private_chat.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/message_text.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/not_prod_mode_filter.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/prod_mode_filter.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/user_roles_has_admin.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/user_roles_has_client.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb}/__init__.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_}/__init__.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_ → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin}/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin/common.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/admin → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client}/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/common.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/hello_world.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/common.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/client → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_}/__init__.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/admin}/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/admin/common.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/client}/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/client/common.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/client/hello_world.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/common.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware}/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/common.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/init_user.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/middleware.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router}/__init__.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin}/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/arpakitlib_project_template_info.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/clear_log_file.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/drop_sqlalchemy_db.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/init_sqlalchemy_db.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_not_modified.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_old_cd.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_raise_error.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_remove_message.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/log_file.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/me.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/raise_fake_error.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/reinit_sqlalchemy_db.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/set_tg_bot_commands.py +0 -0
- {arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/util → arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general}/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/about.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/author.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/error_handler.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/healthcheck.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/hello_world.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/raw_callback_query.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/raw_inline_query.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/raw_message.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/remove_message.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/start.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/support.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/main_router.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/start_tg_bot.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/tg_bot.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/tg_bot_dispatcher.py +0 -0
- /arpakitlib-1.8.53/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/etc.py → /arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/__init__.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/notify_admins.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/set_tg_bot_commands.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/_arpakit_project_template_v_5/project/util/arpakitlib_project_template.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_additional_model_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_aiogram_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_arpakit_lib_module_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_arpakit_project_template_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_arpakit_schedule_uust_api_client_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_arpakit_schedule_uust_site_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_arpakitlib_cli_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_base64_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_base_worker_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_blank_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_cache_file_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_class_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_cryptomus_api_client_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_datetime_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_dict_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_dream_ai_api_client_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_encrypt_decrypt_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_enumeration_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_exception_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_file_storage_in_dir_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_file_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_func_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_hash_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_http_request_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_ip_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_json_db_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_json_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_jwt_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_list_of_dicts_to_xlsx.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_list_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_logging_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_mongodb_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_need_type_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_openai_api_client_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_parse_command.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_postgresql_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_rat_func_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_retry_func_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_run_cmd_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_schedule_uust_api_client_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_settings_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_sleep_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_sqladmin_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_sqlalchemy_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_ssh_runner_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_type_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_yookassa_api_client_util.py +0 -0
- {arpakitlib-1.8.53 → arpakitlib-1.8.57}/arpakitlib/ar_zabbix_api_client_util.py +0 -0
@@ -293,14 +293,14 @@ def require_user_token_dbm_api_authorize_middleware(
|
|
293
293
|
raise APIException(
|
294
294
|
status_code=fastapi.status.HTTP_401_UNAUTHORIZED,
|
295
295
|
error_code=APIErrorCodes.cannot_authorize,
|
296
|
-
error_description=f"
|
296
|
+
error_description=f"user_token_dbm is required, {require_active_user_token=}, {require_user_roles=}",
|
297
297
|
error_data=transfer_data_to_json_str_to_data(api_auth_data.model_dump())
|
298
298
|
)
|
299
299
|
if require_active_user_token and not api_auth_data.user_token_dbm.is_active:
|
300
300
|
raise APIException(
|
301
301
|
status_code=fastapi.status.HTTP_401_UNAUTHORIZED,
|
302
302
|
error_code=APIErrorCodes.cannot_authorize,
|
303
|
-
error_description=f"
|
303
|
+
error_description=f"user_token_dbm is required, {require_active_user_token=}, {require_user_roles=}",
|
304
304
|
error_data=transfer_data_to_json_str_to_data(api_auth_data.model_dump())
|
305
305
|
)
|
306
306
|
if require_user_roles is not None:
|
@@ -308,10 +308,40 @@ def require_user_token_dbm_api_authorize_middleware(
|
|
308
308
|
raise APIException(
|
309
309
|
status_code=fastapi.status.HTTP_403_FORBIDDEN,
|
310
310
|
error_code=APIErrorCodes.cannot_authorize,
|
311
|
-
error_description=f"
|
311
|
+
error_description=f"user_token_dbm is required, {require_active_user_token=}, {require_user_roles=}",
|
312
312
|
error_data=transfer_data_to_json_str_to_data(api_auth_data.model_dump())
|
313
313
|
)
|
314
314
|
|
315
315
|
async_func.__name__ = require_user_token_dbm_api_authorize_middleware.__name__
|
316
316
|
|
317
317
|
return async_func
|
318
|
+
|
319
|
+
|
320
|
+
def require_not_api_key_dbm_api_authorize_middleware():
|
321
|
+
async def async_func(*, api_auth_data: APIAuthorizeData, request: fastapi.requests.Request):
|
322
|
+
if api_auth_data.api_key_dbm is not None:
|
323
|
+
raise APIException(
|
324
|
+
status_code=fastapi.status.HTTP_401_UNAUTHORIZED,
|
325
|
+
error_code=APIErrorCodes.cannot_authorize,
|
326
|
+
error_description=f"no api_key_dbm is required",
|
327
|
+
error_data=transfer_data_to_json_str_to_data(api_auth_data.model_dump())
|
328
|
+
)
|
329
|
+
|
330
|
+
async_func.__name__ = require_api_key_dbm_api_authorize_middleware.__name__
|
331
|
+
|
332
|
+
return async_func
|
333
|
+
|
334
|
+
|
335
|
+
def require_not_user_token_dbm_api_authorize_middleware():
|
336
|
+
async def async_func(*, api_auth_data: APIAuthorizeData, request: fastapi.requests.Request):
|
337
|
+
if api_auth_data.user_token_dbm is not None:
|
338
|
+
raise APIException(
|
339
|
+
status_code=fastapi.status.HTTP_401_UNAUTHORIZED,
|
340
|
+
error_code=APIErrorCodes.cannot_authorize,
|
341
|
+
error_description=f"no user_token_dbm is required",
|
342
|
+
error_data=transfer_data_to_json_str_to_data(api_auth_data.model_dump())
|
343
|
+
)
|
344
|
+
|
345
|
+
async_func.__name__ = require_api_key_dbm_api_authorize_middleware.__name__
|
346
|
+
|
347
|
+
return async_func
|
@@ -10,7 +10,7 @@ from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
|
10
10
|
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
11
11
|
|
12
12
|
|
13
|
-
class
|
13
|
+
class CheckSQLAlchemyDbAdminRouteSO(BaseRouteSO, RawDataCommonSO):
|
14
14
|
pass
|
15
15
|
|
16
16
|
|
@@ -21,7 +21,7 @@ api_router = APIRouter()
|
|
21
21
|
path="",
|
22
22
|
name="Check sqlalchemy db",
|
23
23
|
status_code=fastapi.status.HTTP_200_OK,
|
24
|
-
response_model=
|
24
|
+
response_model=CheckSQLAlchemyDbAdminRouteSO | ErrorCommonSO
|
25
25
|
)
|
26
26
|
async def _(
|
27
27
|
*,
|
@@ -38,6 +38,6 @@ async def _(
|
|
38
38
|
]))
|
39
39
|
):
|
40
40
|
get_cached_sqlalchemy_db().is_conn_good()
|
41
|
-
return
|
42
|
-
|
41
|
+
return CheckSQLAlchemyDbAdminRouteSO(
|
42
|
+
raw_data={"is_conn_good": get_cached_sqlalchemy_db().is_conn_good()}
|
43
43
|
)
|
@@ -11,7 +11,7 @@ from project.core.settings import get_cached_settings
|
|
11
11
|
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
12
12
|
|
13
13
|
|
14
|
-
class
|
14
|
+
class ClearLogFileAdminRouteSO(BaseRouteSO, RawDataCommonSO):
|
15
15
|
pass
|
16
16
|
|
17
17
|
|
@@ -22,7 +22,7 @@ api_router = APIRouter()
|
|
22
22
|
path="",
|
23
23
|
name="Clear log file",
|
24
24
|
status_code=fastapi.status.HTTP_200_OK,
|
25
|
-
response_model=
|
25
|
+
response_model=ClearLogFileAdminRouteSO | ErrorCommonSO
|
26
26
|
)
|
27
27
|
def _(
|
28
28
|
*,
|
@@ -41,4 +41,4 @@ def _(
|
|
41
41
|
init_log_file(log_filepath=get_cached_settings().log_filepath)
|
42
42
|
with open(file=get_cached_settings().log_filepath, mode="w") as f:
|
43
43
|
f.write("")
|
44
|
-
return
|
44
|
+
return ClearLogFileAdminRouteSO()
|
@@ -20,7 +20,7 @@ class CreateOperationAdminSI(BaseSI):
|
|
20
20
|
input_data: dict[str, Any] = NotSet
|
21
21
|
|
22
22
|
|
23
|
-
class
|
23
|
+
class CreateOperationAdminRouteSO(BaseRouteSO, OperationAdmin1SO):
|
24
24
|
pass
|
25
25
|
|
26
26
|
|
@@ -31,7 +31,7 @@ api_router = APIRouter()
|
|
31
31
|
"",
|
32
32
|
name="Create operation",
|
33
33
|
status_code=fastapi.status.HTTP_200_OK,
|
34
|
-
response_model=
|
34
|
+
response_model=CreateOperationAdminRouteSO | None | ErrorCommonSO,
|
35
35
|
)
|
36
36
|
async def _(
|
37
37
|
*,
|
@@ -75,4 +75,4 @@ async def _(
|
|
75
75
|
await async_session.commit()
|
76
76
|
await async_session.refresh(operation_dbm)
|
77
77
|
|
78
|
-
return
|
78
|
+
return CreateOperationAdminRouteSO.from_dbm(simple_dbm=operation_dbm)
|
@@ -10,7 +10,7 @@ from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
|
10
10
|
from project.util.arpakitlib_project_template import get_arpakitlib_project_template_info
|
11
11
|
|
12
12
|
|
13
|
-
class
|
13
|
+
class GetArpakitlibProjectTemplateInfoAdminRouteSO(BaseRouteSO, RawDataCommonSO):
|
14
14
|
pass
|
15
15
|
|
16
16
|
|
@@ -21,7 +21,7 @@ api_router = APIRouter()
|
|
21
21
|
"",
|
22
22
|
name="Get arpakitlib project template info",
|
23
23
|
status_code=fastapi.status.HTTP_200_OK,
|
24
|
-
response_model=
|
24
|
+
response_model=GetArpakitlibProjectTemplateInfoAdminRouteSO | ErrorCommonSO
|
25
25
|
)
|
26
26
|
async def _(
|
27
27
|
*,
|
@@ -37,4 +37,4 @@ async def _(
|
|
37
37
|
]))
|
38
38
|
):
|
39
39
|
arpakitlib_project_template_data = get_arpakitlib_project_template_info()
|
40
|
-
return
|
40
|
+
return GetArpakitlibProjectTemplateInfoAdminRouteSO(raw_data=arpakitlib_project_template_data)
|
@@ -10,7 +10,7 @@ from project.api.schema.out.common.raw_data import RawDataCommonSO
|
|
10
10
|
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
11
11
|
|
12
12
|
|
13
|
-
class
|
13
|
+
class GetAuthDataAdminRouteSO(BaseRouteSO, RawDataCommonSO):
|
14
14
|
pass
|
15
15
|
|
16
16
|
|
@@ -21,7 +21,7 @@ api_router = APIRouter()
|
|
21
21
|
path="",
|
22
22
|
name="Get auth data",
|
23
23
|
status_code=fastapi.status.HTTP_200_OK,
|
24
|
-
response_model=
|
24
|
+
response_model=GetAuthDataAdminRouteSO | ErrorCommonSO,
|
25
25
|
)
|
26
26
|
async def _(
|
27
27
|
*,
|
@@ -37,4 +37,4 @@ async def _(
|
|
37
37
|
)
|
38
38
|
]))
|
39
39
|
):
|
40
|
-
return
|
40
|
+
return GetAuthDataAdminRouteSO(raw_data=transfer_data_to_json_str_to_data(api_auth_data.model_dump()))
|
@@ -12,7 +12,7 @@ from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
|
12
12
|
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM, OperationDBM
|
13
13
|
|
14
14
|
|
15
|
-
class
|
15
|
+
class GetOperationAdminRouteSO(BaseRouteSO, OperationAdmin1SO):
|
16
16
|
pass
|
17
17
|
|
18
18
|
|
@@ -23,7 +23,7 @@ api_router = APIRouter()
|
|
23
23
|
"",
|
24
24
|
name="Get story log",
|
25
25
|
status_code=fastapi.status.HTTP_200_OK,
|
26
|
-
response_model=
|
26
|
+
response_model=GetOperationAdminRouteSO | None | ErrorCommonSO,
|
27
27
|
)
|
28
28
|
async def _(
|
29
29
|
*,
|
@@ -60,4 +60,4 @@ async def _(
|
|
60
60
|
result = await async_session.scalar(query)
|
61
61
|
if result is None:
|
62
62
|
return None
|
63
|
-
return
|
63
|
+
return GetOperationAdminRouteSO.from_dbm(simple_dbm=result)
|
@@ -8,7 +8,7 @@ from project.api.schema.out.common.error import ErrorCommonSO
|
|
8
8
|
from project.sqlalchemy_db_.sqlalchemy_model import OperationDBM, UserDBM
|
9
9
|
|
10
10
|
|
11
|
-
class
|
11
|
+
class GetOperationAllowedStatusesAdminRouteSO(BaseRouteSO):
|
12
12
|
allowed_statuses: list[str]
|
13
13
|
|
14
14
|
|
@@ -19,7 +19,7 @@ api_router = APIRouter()
|
|
19
19
|
"",
|
20
20
|
name="Get operation allowed statuses",
|
21
21
|
status_code=fastapi.status.HTTP_200_OK,
|
22
|
-
response_model=
|
22
|
+
response_model=GetOperationAllowedStatusesAdminRouteSO | ErrorCommonSO,
|
23
23
|
)
|
24
24
|
async def _(
|
25
25
|
*,
|
@@ -35,6 +35,6 @@ async def _(
|
|
35
35
|
)
|
36
36
|
]))
|
37
37
|
):
|
38
|
-
return
|
38
|
+
return GetOperationAllowedStatusesAdminRouteSO(
|
39
39
|
allowed_statuses=OperationDBM.Statuses.values_list()
|
40
40
|
)
|
@@ -8,7 +8,7 @@ from project.api.schema.out.common.error import ErrorCommonSO
|
|
8
8
|
from project.sqlalchemy_db_.sqlalchemy_model import OperationDBM, UserDBM
|
9
9
|
|
10
10
|
|
11
|
-
class
|
11
|
+
class GetOperationAllowedTypesAdminRouteSO(BaseRouteSO):
|
12
12
|
allowed_types: list[str]
|
13
13
|
|
14
14
|
|
@@ -19,7 +19,7 @@ api_router = APIRouter()
|
|
19
19
|
"",
|
20
20
|
name="Get operation allowed types",
|
21
21
|
status_code=fastapi.status.HTTP_200_OK,
|
22
|
-
response_model=
|
22
|
+
response_model=GetOperationAllowedTypesAdminRouteSO | ErrorCommonSO,
|
23
23
|
)
|
24
24
|
async def _(
|
25
25
|
*,
|
@@ -35,6 +35,6 @@ async def _(
|
|
35
35
|
)
|
36
36
|
]))
|
37
37
|
):
|
38
|
-
return
|
38
|
+
return GetOperationAllowedTypesAdminRouteSO(
|
39
39
|
allowed_types=OperationDBM.Types.values_list()
|
40
40
|
)
|
@@ -10,7 +10,7 @@ from project.core.settings import get_cached_settings
|
|
10
10
|
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
11
11
|
|
12
12
|
|
13
|
-
class
|
13
|
+
class GetSettingsAdminRouteSO(BaseRouteSO, RawDataCommonSO):
|
14
14
|
pass
|
15
15
|
|
16
16
|
|
@@ -21,7 +21,7 @@ api_router = APIRouter()
|
|
21
21
|
"",
|
22
22
|
name="Get settings",
|
23
23
|
status_code=fastapi.status.HTTP_200_OK,
|
24
|
-
response_model=
|
24
|
+
response_model=GetSettingsAdminRouteSO | ErrorCommonSO,
|
25
25
|
)
|
26
26
|
async def _(
|
27
27
|
*,
|
@@ -37,6 +37,6 @@ async def _(
|
|
37
37
|
)
|
38
38
|
]))
|
39
39
|
):
|
40
|
-
return
|
41
|
-
|
40
|
+
return GetSettingsAdminRouteSO(
|
41
|
+
raw_data=get_cached_settings().model_dump(mode="json")
|
42
42
|
)
|
@@ -10,7 +10,7 @@ from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
|
10
10
|
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
11
11
|
|
12
12
|
|
13
|
-
class
|
13
|
+
class GetAuthDataAdminRouteSO(BaseRouteSO, RawDataCommonSO):
|
14
14
|
pass
|
15
15
|
|
16
16
|
|
@@ -21,7 +21,7 @@ api_router = APIRouter()
|
|
21
21
|
"",
|
22
22
|
name="Get sqlalchemy db table name to amount",
|
23
23
|
status_code=fastapi.status.HTTP_200_OK,
|
24
|
-
response_model=
|
24
|
+
response_model=GetAuthDataAdminRouteSO | ErrorCommonSO
|
25
25
|
)
|
26
26
|
async def _(
|
27
27
|
*,
|
@@ -36,4 +36,4 @@ async def _(
|
|
36
36
|
)
|
37
37
|
]))
|
38
38
|
):
|
39
|
-
return
|
39
|
+
return GetAuthDataAdminRouteSO(raw_data=await get_cached_sqlalchemy_db().async_get_table_name_to_amount())
|
@@ -12,7 +12,7 @@ from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
|
12
12
|
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM, StoryLogDBM
|
13
13
|
|
14
14
|
|
15
|
-
class
|
15
|
+
class GetStoryLogAdminRouteSO(BaseRouteSO, StoryLogAdmin1SO):
|
16
16
|
pass
|
17
17
|
|
18
18
|
|
@@ -23,7 +23,7 @@ api_router = APIRouter()
|
|
23
23
|
"",
|
24
24
|
name="Get story log",
|
25
25
|
status_code=fastapi.status.HTTP_200_OK,
|
26
|
-
response_model=
|
26
|
+
response_model=GetStoryLogAdminRouteSO | None | ErrorCommonSO,
|
27
27
|
)
|
28
28
|
async def _(
|
29
29
|
*,
|
@@ -60,4 +60,4 @@ async def _(
|
|
60
60
|
result = await async_session.scalar(query)
|
61
61
|
if result is None:
|
62
62
|
return None
|
63
|
-
return
|
63
|
+
return GetStoryLogAdminRouteSO.from_dbm(simple_dbm=result)
|
arpakitlib-1.8.57/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_user.py
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
import fastapi.requests
|
2
|
+
import sqlalchemy
|
3
|
+
from fastapi import APIRouter
|
4
|
+
|
5
|
+
from arpakitlib.ar_str_util import strip_if_not_none, make_none_if_blank
|
6
|
+
from project.api.authorize import APIAuthorizeData, api_authorize, require_user_token_dbm_api_authorize_middleware, \
|
7
|
+
require_api_key_dbm_api_authorize_middleware
|
8
|
+
from project.api.schema.common import BaseRouteSO
|
9
|
+
from project.api.schema.out.admin.user import UserAdmin1SO
|
10
|
+
from project.api.schema.out.common.error import ErrorCommonSO
|
11
|
+
from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
12
|
+
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
13
|
+
|
14
|
+
|
15
|
+
class GetUserAdminRouteSO(BaseRouteSO, UserAdmin1SO):
|
16
|
+
pass
|
17
|
+
|
18
|
+
|
19
|
+
api_router = APIRouter()
|
20
|
+
|
21
|
+
|
22
|
+
@api_router.get(
|
23
|
+
"",
|
24
|
+
name="Get user",
|
25
|
+
status_code=fastapi.status.HTTP_200_OK,
|
26
|
+
response_model=GetUserAdminRouteSO | None | ErrorCommonSO,
|
27
|
+
)
|
28
|
+
async def _(
|
29
|
+
*,
|
30
|
+
request: fastapi.requests.Request,
|
31
|
+
response: fastapi.responses.Response,
|
32
|
+
api_auth_data: APIAuthorizeData = fastapi.Depends(api_authorize(middlewares=[
|
33
|
+
require_api_key_dbm_api_authorize_middleware(
|
34
|
+
require_active=True
|
35
|
+
),
|
36
|
+
require_user_token_dbm_api_authorize_middleware(
|
37
|
+
require_active_user_token=True,
|
38
|
+
require_user_roles=[UserDBM.Roles.admin]
|
39
|
+
)
|
40
|
+
])),
|
41
|
+
filter_id: int | None = fastapi.Query(default=None),
|
42
|
+
filter_long_id: str | None = fastapi.Query(default=None),
|
43
|
+
filter_slug: str | None = fastapi.Query(default=None),
|
44
|
+
filter_email: str | None = fastapi.Query(default=None),
|
45
|
+
filter_username: str | None = fastapi.Query(default=None),
|
46
|
+
filter_tg_id: int | None = fastapi.Query(default=None),
|
47
|
+
):
|
48
|
+
filter_long_id = make_none_if_blank(strip_if_not_none(filter_long_id))
|
49
|
+
filter_slug = make_none_if_blank(strip_if_not_none(filter_slug))
|
50
|
+
filter_email = make_none_if_blank(strip_if_not_none(filter_email))
|
51
|
+
filter_username = make_none_if_blank(strip_if_not_none(filter_username))
|
52
|
+
|
53
|
+
if (
|
54
|
+
filter_id is None
|
55
|
+
and filter_long_id is None
|
56
|
+
and filter_slug is None
|
57
|
+
and filter_email is None
|
58
|
+
and filter_username is None
|
59
|
+
and filter_tg_id is None
|
60
|
+
):
|
61
|
+
return None
|
62
|
+
|
63
|
+
query = sqlalchemy.select(UserDBM)
|
64
|
+
if filter_id is not None:
|
65
|
+
query = query.filter(UserDBM.id == filter_id)
|
66
|
+
if filter_long_id is not None:
|
67
|
+
query = query.filter(UserDBM.long_id == filter_long_id)
|
68
|
+
if filter_slug is not None:
|
69
|
+
query = query.filter(UserDBM.slug == filter_slug)
|
70
|
+
if filter_email is not None:
|
71
|
+
query = query.filter(UserDBM.email == filter_email)
|
72
|
+
if filter_username is not None:
|
73
|
+
query = query.filter(UserDBM.username == filter_username)
|
74
|
+
if filter_tg_id is not None:
|
75
|
+
query = query.filter(UserDBM.tg_id == filter_tg_id)
|
76
|
+
|
77
|
+
async with get_cached_sqlalchemy_db().new_async_session() as async_session:
|
78
|
+
result = await async_session.scalar(query)
|
79
|
+
if result is None:
|
80
|
+
return None
|
81
|
+
return GetUserAdminRouteSO.from_dbm(simple_dbm=result)
|
@@ -10,7 +10,7 @@ from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
|
10
10
|
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
11
11
|
|
12
12
|
|
13
|
-
class
|
13
|
+
class InitSqlalchemyDbAdminRouteSO(BaseRouteSO, RawDataCommonSO):
|
14
14
|
pass
|
15
15
|
|
16
16
|
|
@@ -21,7 +21,7 @@ api_router = APIRouter()
|
|
21
21
|
path="",
|
22
22
|
name="Init sqlalchemy db",
|
23
23
|
status_code=fastapi.status.HTTP_200_OK,
|
24
|
-
response_model=
|
24
|
+
response_model=InitSqlalchemyDbAdminRouteSO | ErrorCommonSO,
|
25
25
|
)
|
26
26
|
async def _(
|
27
27
|
*,
|
@@ -39,4 +39,4 @@ async def _(
|
|
39
39
|
]))
|
40
40
|
):
|
41
41
|
get_cached_sqlalchemy_db().init()
|
42
|
-
return
|
42
|
+
return InitSqlalchemyDbAdminRouteSO()
|
@@ -3,7 +3,7 @@ from fastapi import APIRouter
|
|
3
3
|
from project.api.router.admin import get_auth_data, get_arpakitlib_project_template_info, raise_fake_error, \
|
4
4
|
reinit_sqlalchemy_db, get_story_log, init_sqlalchemy_db, get_sqlalchemy_db_table_name_to_amount, \
|
5
5
|
get_operation_allowed_statuses, get_operation, create_operation, get_operation_allowed_types, get_log_file, \
|
6
|
-
clear_log_file, check_sqlalchemy_db, get_settings
|
6
|
+
clear_log_file, check_sqlalchemy_db, get_settings, get_user, make_test_data_1
|
7
7
|
|
8
8
|
main_admin_api_router = APIRouter()
|
9
9
|
|
@@ -81,3 +81,13 @@ main_admin_api_router.include_router(
|
|
81
81
|
router=get_settings.api_router,
|
82
82
|
prefix="/get_settings"
|
83
83
|
)
|
84
|
+
|
85
|
+
main_admin_api_router.include_router(
|
86
|
+
router=get_user.api_router,
|
87
|
+
prefix="/get_user"
|
88
|
+
)
|
89
|
+
|
90
|
+
main_admin_api_router.include_router(
|
91
|
+
router=make_test_data_1.api_router,
|
92
|
+
prefix="/make_test_data_1"
|
93
|
+
)
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import fastapi
|
2
|
+
from fastapi import APIRouter
|
3
|
+
|
4
|
+
from project.api.authorize import require_api_key_dbm_api_authorize_middleware, APIAuthorizeData, \
|
5
|
+
require_user_token_dbm_api_authorize_middleware, api_authorize
|
6
|
+
from project.api.schema.common import BaseRouteSO
|
7
|
+
from project.api.schema.out.common.error import ErrorCommonSO
|
8
|
+
from project.api.schema.out.common.raw_data import RawDataCommonSO
|
9
|
+
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
10
|
+
from project.test_data.make_test_data_1 import make_test_data_1
|
11
|
+
|
12
|
+
|
13
|
+
class MakeTestData1AdminRouteSO(BaseRouteSO, RawDataCommonSO):
|
14
|
+
pass
|
15
|
+
|
16
|
+
|
17
|
+
api_router = APIRouter()
|
18
|
+
|
19
|
+
|
20
|
+
@api_router.get(
|
21
|
+
path="",
|
22
|
+
name="Make test data 1",
|
23
|
+
status_code=fastapi.status.HTTP_200_OK,
|
24
|
+
response_model=MakeTestData1AdminRouteSO | ErrorCommonSO
|
25
|
+
)
|
26
|
+
def _(
|
27
|
+
*,
|
28
|
+
request: fastapi.requests.Request,
|
29
|
+
response: fastapi.responses.Response,
|
30
|
+
api_auth_data: APIAuthorizeData = fastapi.Depends(api_authorize(middlewares=[
|
31
|
+
require_api_key_dbm_api_authorize_middleware(
|
32
|
+
require_active=True
|
33
|
+
),
|
34
|
+
require_user_token_dbm_api_authorize_middleware(
|
35
|
+
require_active_user_token=True,
|
36
|
+
require_user_roles=[UserDBM.Roles.admin]
|
37
|
+
)
|
38
|
+
]))
|
39
|
+
):
|
40
|
+
make_test_data_1()
|
41
|
+
return MakeTestData1AdminRouteSO()
|
@@ -11,7 +11,7 @@ from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
|
11
11
|
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
12
12
|
|
13
13
|
|
14
|
-
class
|
14
|
+
class ReinitSqlalchemyDbAdminRouteSO(BaseRouteSO, RawDataCommonSO):
|
15
15
|
pass
|
16
16
|
|
17
17
|
|
@@ -22,7 +22,7 @@ api_router = APIRouter()
|
|
22
22
|
path="",
|
23
23
|
name="Reinit sqlalchemy db",
|
24
24
|
status_code=fastapi.status.HTTP_200_OK,
|
25
|
-
response_model=
|
25
|
+
response_model=ReinitSqlalchemyDbAdminRouteSO | ErrorCommonSO,
|
26
26
|
)
|
27
27
|
async def _(
|
28
28
|
*,
|
@@ -40,4 +40,4 @@ async def _(
|
|
40
40
|
]))
|
41
41
|
):
|
42
42
|
get_cached_sqlalchemy_db().reinit()
|
43
|
-
return
|
43
|
+
return ReinitSqlalchemyDbAdminRouteSO()
|
@@ -11,7 +11,7 @@ from project.api.schema.out.common.error import ErrorCommonSO
|
|
11
11
|
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
12
12
|
|
13
13
|
|
14
|
-
class
|
14
|
+
class GetCurrentUserClientRouteSO(BaseRouteSO, UserClient1SO):
|
15
15
|
pass
|
16
16
|
|
17
17
|
|
@@ -22,7 +22,7 @@ api_router = APIRouter()
|
|
22
22
|
"",
|
23
23
|
name="Get current user",
|
24
24
|
status_code=fastapi.status.HTTP_200_OK,
|
25
|
-
response_model=
|
25
|
+
response_model=GetCurrentUserClientRouteSO | ErrorCommonSO,
|
26
26
|
)
|
27
27
|
async def _(
|
28
28
|
*,
|
@@ -38,6 +38,6 @@ async def _(
|
|
38
38
|
)
|
39
39
|
]))
|
40
40
|
):
|
41
|
-
return
|
41
|
+
return GetCurrentUserClientRouteSO.from_dbm(
|
42
42
|
simple_dbm=api_auth_data.user_token_dbm.user
|
43
43
|
)
|
@@ -10,7 +10,7 @@ from project.api.schema.out.common.error import ErrorCommonSO
|
|
10
10
|
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
11
11
|
|
12
12
|
|
13
|
-
class
|
13
|
+
class GetCurrentUserTokenClientRouteSO(BaseRouteSO, UserTokenClient1SO):
|
14
14
|
user: UserClient1SO
|
15
15
|
|
16
16
|
|
@@ -21,7 +21,7 @@ api_router = APIRouter()
|
|
21
21
|
"",
|
22
22
|
name="Get current user token",
|
23
23
|
status_code=fastapi.status.HTTP_200_OK,
|
24
|
-
response_model=
|
24
|
+
response_model=GetCurrentUserTokenClientRouteSO | ErrorCommonSO,
|
25
25
|
)
|
26
26
|
async def _(
|
27
27
|
*,
|
@@ -37,6 +37,6 @@ async def _(
|
|
37
37
|
)
|
38
38
|
]))
|
39
39
|
):
|
40
|
-
return
|
40
|
+
return GetCurrentUserTokenClientRouteSO.from_dbm(
|
41
41
|
simple_dbm=api_auth_data.user_token_dbm
|
42
42
|
)
|
@@ -35,12 +35,13 @@ async def _(
|
|
35
35
|
return CheckAuthorizationGeneralRouteSO(
|
36
36
|
is_current_api_key_ok=api_auth_data.api_key_dbm is not None,
|
37
37
|
is_current_user_token_ok=api_auth_data.user_token_dbm is not None,
|
38
|
-
current_api_key=ApiKeyGeneral1SO.from_dbm(
|
38
|
+
current_api_key=ApiKeyGeneral1SO.from_dbm(
|
39
|
+
simple_dbm=api_auth_data.api_key_dbm
|
40
|
+
) if api_auth_data.api_key_dbm is not None else None,
|
39
41
|
current_user_token=UserTokenGeneral1SO.from_dbm(
|
40
42
|
simple_dbm=api_auth_data.user_token_dbm
|
41
|
-
) if api_auth_data.user_token_dbm is not None else None
|
42
|
-
,
|
43
|
+
) if api_auth_data.user_token_dbm is not None else None,
|
43
44
|
current_user=UserGeneral1SO.from_dbm(
|
44
45
|
simple_dbm=api_auth_data.user_token_dbm.user
|
45
|
-
) if api_auth_data.user_token_dbm is not None else None
|
46
|
+
) if (api_auth_data.user_token_dbm is not None and api_auth_data.user_token_dbm.user is not None) else None
|
46
47
|
)
|
@@ -9,7 +9,7 @@ from project.api.schema.out.general.api_key import ApiKeyGeneral1SO
|
|
9
9
|
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
10
10
|
|
11
11
|
|
12
|
-
class
|
12
|
+
class GetCurrentApiKeyGeneralRouteSO(BaseRouteSO, ApiKeyGeneral1SO):
|
13
13
|
pass
|
14
14
|
|
15
15
|
|
@@ -20,7 +20,7 @@ api_router = APIRouter()
|
|
20
20
|
"",
|
21
21
|
name="Get current api key",
|
22
22
|
status_code=fastapi.status.HTTP_200_OK,
|
23
|
-
response_model=
|
23
|
+
response_model=GetCurrentApiKeyGeneralRouteSO | str | ErrorCommonSO,
|
24
24
|
)
|
25
25
|
async def _(
|
26
26
|
*,
|
@@ -36,6 +36,6 @@ async def _(
|
|
36
36
|
)
|
37
37
|
]))
|
38
38
|
):
|
39
|
-
return
|
39
|
+
return GetCurrentApiKeyGeneralRouteSO.from_dbm(
|
40
40
|
simple_dbm=api_auth_data.api_key_dbm
|
41
41
|
)
|