arpakitlib 1.8.85__tar.gz → 1.8.88__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.85 → arpakitlib-1.8.88}/PKG-INFO +1 -1
- arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/arpakitlib_project_template_info.json +4 -0
- arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/command/show_arpakitlib_project_template_info.py +9 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/healthcheck.py +2 -2
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/core/settings.py +2 -0
- arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_7.py +14 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user.py +14 -5
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user_token.py +10 -1
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/admin.py +7 -7
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/client.py +18 -20
- arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/client.py → arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/admin.py +1 -5
- arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/client.py +5 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/const.py +5 -3
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/event.py +12 -1
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/user_roles_has_admin.py +2 -2
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/user_roles_has_client.py +2 -2
- arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin/hello_world.py +16 -0
- arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/support.py +15 -0
- {arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/client → arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/admin}/hello_world.py +3 -3
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/common.py +2 -2
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/init_user.py +14 -14
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/arpakitlib_project_template_info.py +3 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/clear_log_file.py +9 -3
- arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/current_state.py +31 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/drop_sqlalchemy_db.py +5 -2
- arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/hello_world.py +73 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/init_sqlalchemy_db.py +5 -2
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_not_modified.py +10 -3
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_old_cd.py +3 -2
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_raise_error.py +6 -2
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_remove_message.py +7 -4
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/log_file.py +6 -1
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/me.py +7 -2
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/raise_fake_error.py +4 -2
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/reinit_sqlalchemy_db.py +5 -2
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/set_tg_bot_commands.py +5 -2
- {arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general → arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client}/about.py +8 -5
- {arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general → arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client}/author.py +8 -5
- arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/support.py → arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/cancel.py +9 -6
- {arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general → arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client}/error_handler.py +7 -3
- arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/healthcheck.py +21 -0
- {arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general → arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client}/raw_callback_query.py +4 -2
- {arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general → arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client}/raw_inline_query.py +2 -0
- {arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general → arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client}/raw_message.py +5 -2
- {arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general → arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client}/remove_message.py +4 -2
- {arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general → arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client}/start.py +8 -5
- arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/support.py +37 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/main_router.py +16 -12
- arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/state/client.py +5 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/tg_bot_dispatcher.py +1 -1
- arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/__init__.py +0 -0
- arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/etc.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/notify_admins.py +6 -3
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/set_tg_bot_commands.py +14 -15
- arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/util/__init__.py +0 -0
- arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/util/etc.py +0 -0
- arpakitlib-1.8.88/arpakitlib/ar_blank_util.py +65 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_json_util.py +1 -1
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/pyproject.toml +1 -1
- arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/arpakitlib_project_template_info.json +0 -4
- arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_1.py +0 -19
- arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/hello_world.py +0 -16
- arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/healthcheck.py +0 -18
- arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general/hello_world.py +0 -47
- arpakitlib-1.8.85/arpakitlib/ar_blank_util.py +0 -8
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/LICENSE +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/README.md +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/.gitignore +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/.python-version +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/LICENSE +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/README.md +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/alembic/README +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/alembic/env.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/alembic/script.py.mako +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/alembic/versions/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/alembic.ini +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/alembic_history.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/alembic_revision_autogenerate.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/alembic_upgrade_head.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/beautify_json.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/check_logging.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/check_sqlalchemy_db.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/demojize.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/docker_ps_a.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/docker_rm_postgres.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/docker_run_postgres.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/docker_start_postgres.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/docker_stop_postgres.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/drop_json_db.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/drop_sqlalchemy_db.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/emojize.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/generate_settings_env_example.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/git_commit.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/git_push_arpakit_company_github_1.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/git_push_arpakit_company_gitlab_1.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/git_push_arpakit_github_1.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/git_push_arpakit_gitlab_1.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/git_remote_v.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/git_set_arpakit_company_origin.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/git_set_arpakit_origin.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/git_set_divarteam_origin.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/git_status.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/hello_world.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/init_json_db.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/init_sqlalchemy_db.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/poetry_check.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/poetry_clear_cache.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/poetry_config.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/poetry_install.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/poetry_lock.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/poetry_remove_and_add_arpakitlib.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/poetry_show.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/poetry_show_arpakitlib.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/poetry_update.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/poetry_update_arpakitlib.sh +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/reinit_all_sqlalchemy_db.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/reinit_json_db.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/reinit_sqlalchemy_db.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/remove_operations.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/remove_story_logs.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/rm_all_records_in_json_db.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/set_tg_bot_commands.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/show_settings.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/show_sqlalchemy_db_table_name_to_amount.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/start_api.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/start_api_for_prod.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/start_api_with_reload.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/start_operation_executor_worker.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/start_operation_executor_workers.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/start_scheduled_operation_creator_worker.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/start_sqladmin.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/start_sqladmin_for_prod.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/start_sqladmin_with_reload.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/start_tg_bot.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/command/start_tg_bot_for_prod.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/example.env +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/note/note_1.txt +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/note/note_2.txt +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/note/note_3.txt +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/note/note_4.txt +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/note/note_5.txt +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/additional_model/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/additional_model/common.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/asgi.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/authorize.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/blank/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/blank/admin.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/blank/client.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/blank/common.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/const.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/create_api_app.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/event.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/exception.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/exception_handler.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/openapi_ui.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/response.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/check_sqlalchemy_db.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/clear_log_file.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/create_operation.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_arpakitlib_project_template_info.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_auth_data.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_log_file.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation_allowed_statuses.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation_allowed_types.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_settings.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_sqlalchemy_db_table_name_to_amount.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_story_log.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_user.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/init_sqlalchemy_db.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/main_router.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/make_test_data_1.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/raise_fake_error.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/reinit_sqlalchemy_db.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/client/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user_token.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/client/main_router.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/check_authorization.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/get_current_api_key.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/get_errors_info.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/main_router.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/general/now_utc_datetime.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/router/main_router.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/common.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/admin/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/admin/common.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/client/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/client/common.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/common/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/general/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/general/common.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/common.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/operation.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/story_log.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/user.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/common.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/complicated_user_1.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/complicated_user_token_1.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user_token.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/datetime_.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/error.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/ok.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/raw_data.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/api_key.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/common.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user_token.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/api/util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/business_service/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/business_service/hello_world.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/business_service/remove_operations.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/celery_/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/core/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/core/cache_file_storage_in_dir.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/core/const.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/core/dump_file_storage_in_dir.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/core/jinja2_templates.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/core/media_file_storage_in_dir.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/core/util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/json_db/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/json_db/json_db.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/more/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/more/helloworld +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/const.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/operation_executor_worker.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operation_creator_worker.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operations.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/operation_execution/util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/1 +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/healthcheck +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/helloworld +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/openapi-favicon.png +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/redoc/redoc.standalone.js +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/sqladmin-favicon.png +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/favicon-16x16.png +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/favicon-32x32.png +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/index.css +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/index.html +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/oauth2-redirect.html +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-initializer.js +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-bundle.js +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-bundle.js.map +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-es-bundle-core.js +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-es-bundle-core.js.map +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-es-bundle.js +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-es-bundle.js.map +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-standalone-preset.js +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui-standalone-preset.js.map +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui.css +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui.css.map +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui.js +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui.js.map +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/resource/templates/healthcheck.txt +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sandbox/__init__.py +0 -0
- /arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_2.py → /arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_1.py +0 -0
- /arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_3.py → /arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_2.py +0 -0
- /arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_4.py → /arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_3.py +0 -0
- /arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_5.py → /arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_4.py +0 -0
- /arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_6.py → /arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_5.py +0 -0
- /arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_7.py → /arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_6.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/site/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/site/asgi.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/site/consts.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/site/create_site_app.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/site/event.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/site/exception_handler.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/site/router/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/site/router/main_router.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/add_admin_in_app.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/admin_authorize.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/asgi.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/create_sqladmin_app.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/event.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/api_key.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/common.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/operation.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/story_log.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/const.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_db.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/api_key.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/story_log.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/test_data/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_api_keys.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_1.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_2.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_3.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_4.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_5.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/common.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/common.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/is_private_chat.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/message_text.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/not_prod_mode_filter.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/prod_mode_filter.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin/common.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/client/common.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/common.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/admin/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/admin/common.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/client/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/client/common.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/static_/common.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/__init__.py +0 -0
- /arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/middleware.py → /arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/uil.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/__init__.py +0 -0
- {arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/general → arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client}/__init__.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/start_tg_bot.py +0 -0
- {arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util → arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/state}/__init__.py +0 -0
- {arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback → arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/state}/admin.py +0 -0
- /arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/etc.py → /arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/state/common.py +0 -0
- /arpakitlib-1.8.85/arpakitlib/_arpakit_project_template_v_5/project/util/__init__.py → /arpakitlib-1.8.88/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/state/util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/tg_bot/tg_bot.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/_arpakit_project_template_v_5/project/util/arpakitlib_project_template.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_additional_model_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_aiogram_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_arpakit_lib_module_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_arpakit_project_template_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_arpakit_schedule_uust_api_client_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_arpakit_schedule_uust_site_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_arpakitlib_cli_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_base64_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_base_worker_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_cache_file_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_class_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_cryptomus_api_client_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_datetime_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_dict_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_dream_ai_api_client_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_encrypt_decrypt_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_enumeration_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_exception_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_file_storage_in_dir_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_file_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_func_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_hash_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_http_request_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_ip_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_json_db_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_jwt_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_list_of_dicts_to_xlsx.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_list_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_logging_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_mongodb_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_need_type_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_openai_api_client_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_parse_command.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_postgresql_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_rat_func_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_retry_func_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_run_cmd_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_schedule_uust_api_client_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_settings_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_sleep_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_sqladmin_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_sqlalchemy_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_ssh_runner_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_str_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_type_util.py +0 -0
- {arpakitlib-1.8.85 → arpakitlib-1.8.88}/arpakitlib/ar_yookassa_api_client_util.py +0 -0
@@ -3,9 +3,9 @@ import datetime as dt
|
|
3
3
|
import fastapi
|
4
4
|
from fastapi import APIRouter
|
5
5
|
|
6
|
+
from arpakitlib.ar_datetime_util import now_utc_dt
|
6
7
|
from project.api.schema.common import BaseSO
|
7
8
|
from project.api.schema.out.common.error import ErrorCommonSO
|
8
|
-
from project.core.util import now_local_dt
|
9
9
|
|
10
10
|
|
11
11
|
class _HealthcheckGeneralRouteSO(BaseSO):
|
@@ -27,4 +27,4 @@ async def _(
|
|
27
27
|
request: fastapi.requests.Request,
|
28
28
|
response: fastapi.responses.Response
|
29
29
|
):
|
30
|
-
return _HealthcheckGeneralRouteSO(is_ok=True, datetime=
|
30
|
+
return _HealthcheckGeneralRouteSO(is_ok=True, datetime=now_utc_dt())
|
@@ -152,6 +152,8 @@ class Settings(SimpleSettings):
|
|
152
152
|
|
153
153
|
tg_bot_admin_tg_ids: list[int] = [269870432]
|
154
154
|
|
155
|
+
tg_bot_set_commands: bool = True
|
156
|
+
|
155
157
|
var_dirpath: str | None = os.path.join(ProjectPaths.base_dirpath, "var")
|
156
158
|
|
157
159
|
log_filepath: str | None = os.path.join(var_dirpath, "story.log")
|
@@ -7,7 +7,18 @@ from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
|
7
7
|
class UserMV(SimpleMV, model=UserDBM):
|
8
8
|
name = "User"
|
9
9
|
name_plural = "Users"
|
10
|
-
column_list =
|
10
|
+
column_list = [
|
11
|
+
UserDBM.id,
|
12
|
+
UserDBM.long_id,
|
13
|
+
UserDBM.slug,
|
14
|
+
UserDBM.creation_dt,
|
15
|
+
UserDBM.email,
|
16
|
+
UserDBM.username,
|
17
|
+
UserDBM.roles,
|
18
|
+
UserDBM.is_active,
|
19
|
+
UserDBM.password,
|
20
|
+
UserDBM.extra_data
|
21
|
+
]
|
11
22
|
form_columns = [
|
12
23
|
UserDBM.slug,
|
13
24
|
UserDBM.email,
|
@@ -15,9 +26,6 @@ class UserMV(SimpleMV, model=UserDBM):
|
|
15
26
|
UserDBM.roles,
|
16
27
|
UserDBM.is_active,
|
17
28
|
UserDBM.password,
|
18
|
-
UserDBM.tg_id,
|
19
|
-
UserDBM.tg_bot_last_action_dt,
|
20
|
-
UserDBM.tg_data,
|
21
29
|
UserDBM.extra_data
|
22
30
|
]
|
23
31
|
column_sortable_list = sqlalchemy.inspect(UserDBM).columns
|
@@ -28,6 +36,7 @@ class UserMV(SimpleMV, model=UserDBM):
|
|
28
36
|
UserDBM.id,
|
29
37
|
UserDBM.long_id,
|
30
38
|
UserDBM.slug,
|
31
|
-
UserDBM.
|
39
|
+
UserDBM.email,
|
40
|
+
UserDBM.username,
|
32
41
|
UserDBM.password
|
33
42
|
]
|
@@ -7,7 +7,16 @@ from project.sqlalchemy_db_.sqlalchemy_model import UserTokenDBM
|
|
7
7
|
class UserTokenMV(SimpleMV, model=UserTokenDBM):
|
8
8
|
name = "UserToken"
|
9
9
|
name_plural = "UserTokens"
|
10
|
-
column_list =
|
10
|
+
column_list = [
|
11
|
+
UserTokenDBM.id,
|
12
|
+
UserTokenDBM.long_id,
|
13
|
+
UserTokenDBM.slug,
|
14
|
+
UserTokenDBM.creation_dt,
|
15
|
+
UserTokenDBM.value,
|
16
|
+
UserTokenDBM.user,
|
17
|
+
UserTokenDBM.is_active,
|
18
|
+
UserTokenDBM.extra_data,
|
19
|
+
]
|
11
20
|
form_columns = [
|
12
21
|
UserTokenDBM.slug,
|
13
22
|
UserTokenDBM.creation_dt,
|
@@ -8,8 +8,12 @@ from project.tg_bot.blank.common import SimpleBlankTgBot
|
|
8
8
|
|
9
9
|
|
10
10
|
class AdminTgBotBlank(SimpleBlankTgBot):
|
11
|
+
def but_hello_world(self) -> str:
|
12
|
+
res = "hello_world"
|
13
|
+
return emojize(res.strip())
|
14
|
+
|
11
15
|
def good(self) -> str:
|
12
|
-
res = "
|
16
|
+
res = "Good"
|
13
17
|
return emojize(res.strip())
|
14
18
|
|
15
19
|
def user_dbm(self, *, user_dbm: UserDBM | None) -> str:
|
@@ -18,13 +22,9 @@ class AdminTgBotBlank(SimpleBlankTgBot):
|
|
18
22
|
return transfer_data_to_json_str(user_dbm.simple_dict(), beautify=True)
|
19
23
|
|
20
24
|
|
21
|
-
def create_admin_tg_bot_blank() -> AdminTgBotBlank:
|
22
|
-
return AdminTgBotBlank()
|
23
|
-
|
24
|
-
|
25
25
|
@lru_cache()
|
26
|
-
def
|
27
|
-
return AdminTgBotBlank()
|
26
|
+
def get_cached_eng_admin_tg_bot_blank() -> AdminTgBotBlank:
|
27
|
+
return AdminTgBotBlank(lang=AdminTgBotBlank.Languages.rus)
|
28
28
|
|
29
29
|
|
30
30
|
def __example():
|
@@ -3,30 +3,27 @@ from functools import lru_cache
|
|
3
3
|
from emoji import emojize
|
4
4
|
|
5
5
|
from project.tg_bot.blank.common import SimpleBlankTgBot
|
6
|
-
from project.tg_bot.const import
|
6
|
+
from project.tg_bot.const import ClientTgBotCommands
|
7
7
|
|
8
8
|
|
9
9
|
class ClientTgBotBlank(SimpleBlankTgBot):
|
10
10
|
def command_to_desc(self) -> dict[str, str]:
|
11
11
|
return {
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
ClientTgBotCommands.start: emojize(":waving_hand: Начать"),
|
13
|
+
ClientTgBotCommands.about: emojize(":information: О проекте"),
|
14
|
+
ClientTgBotCommands.author: emojize(":bust_in_silhouette: Авторы"),
|
15
|
+
ClientTgBotCommands.support: emojize(":red_heart: Поддержка"),
|
16
|
+
ClientTgBotCommands.cancel: emojize(":right_arrow_curving_left: Отмена"),
|
16
17
|
}
|
17
18
|
|
18
|
-
def
|
19
|
-
res = "
|
19
|
+
def but_support(self) -> str:
|
20
|
+
res = ":red_heart: Поддержка"
|
20
21
|
return emojize(res.strip())
|
21
22
|
|
22
23
|
def error(self) -> str:
|
23
|
-
res = ":warning: <b
|
24
|
-
res += "\n\n:wrench:
|
25
|
-
res += "\n\n:red_heart:
|
26
|
-
return emojize(res.strip())
|
27
|
-
|
28
|
-
def hello_world(self) -> str:
|
29
|
-
res = ":waving_hand: <b>Hello world</b> :waving_hand:"
|
24
|
+
res = ":warning: <b>Упс! Что-то пошло не так...</b> :warning:"
|
25
|
+
res += "\n\n:wrench: Мы уже работаем над решением проблемы"
|
26
|
+
res += "\n\n:red_heart: Приносим извинения за неудобства :red_heart:"
|
30
27
|
return emojize(res.strip())
|
31
28
|
|
32
29
|
def healthcheck(self) -> str:
|
@@ -54,24 +51,25 @@ class ClientTgBotBlank(SimpleBlankTgBot):
|
|
54
51
|
|
55
52
|
def support(self) -> str:
|
56
53
|
res = ":red_heart: <b>Поддержка</b> :red_heart:"
|
54
|
+
res += f"\n\n:link: https://t.me/arpakit"
|
57
55
|
return emojize(res.strip())
|
58
56
|
|
59
57
|
def keyboard_is_old(self) -> str:
|
60
58
|
res = ":information: Эта клавиатура устарела :information:"
|
61
59
|
return emojize(res.strip())
|
62
60
|
|
63
|
-
|
64
|
-
|
65
|
-
|
61
|
+
def cancel(self) -> str:
|
62
|
+
res = ":right_arrow_curving_left: <b>Отмена</b>"
|
63
|
+
return emojize(res.strip())
|
66
64
|
|
67
65
|
|
68
66
|
@lru_cache()
|
69
|
-
def
|
70
|
-
return ClientTgBotBlank()
|
67
|
+
def get_cached_rus_client_tg_bot_blank() -> ClientTgBotBlank:
|
68
|
+
return ClientTgBotBlank(lang=ClientTgBotBlank.Languages.rus)
|
71
69
|
|
72
70
|
|
73
71
|
def __example():
|
74
|
-
print(
|
72
|
+
print(get_cached_rus_client_tg_bot_blank().author())
|
75
73
|
|
76
74
|
|
77
75
|
if __name__ == '__main__':
|
@@ -1,13 +1,13 @@
|
|
1
1
|
from arpakitlib.ar_enumeration_util import Enumeration
|
2
2
|
|
3
3
|
|
4
|
-
class
|
4
|
+
class ClientTgBotCommands(Enumeration):
|
5
5
|
start = "start"
|
6
6
|
about = "about"
|
7
7
|
author = "author"
|
8
8
|
support = "support"
|
9
9
|
healthcheck = "healthcheck"
|
10
|
-
|
10
|
+
cancel = "cancel"
|
11
11
|
|
12
12
|
|
13
13
|
class AdminTgBotCommands(Enumeration):
|
@@ -24,11 +24,13 @@ class AdminTgBotCommands(Enumeration):
|
|
24
24
|
kb_with_not_modified = "kb_with_not_modified"
|
25
25
|
kb_with_raise_error = "kb_with_raise_error"
|
26
26
|
kb_with_remove_message = "kb_with_remove_message"
|
27
|
+
current_state = "current_state"
|
28
|
+
hello_world = "hello_world"
|
27
29
|
|
28
30
|
|
29
31
|
def __example():
|
30
32
|
print("ClientCommandsTgBot:")
|
31
|
-
for v in
|
33
|
+
for v in ClientTgBotCommands.values_list():
|
32
34
|
print(f"- {v}")
|
33
35
|
print()
|
34
36
|
print("AdminCommandsTgBot:")
|
@@ -1,9 +1,11 @@
|
|
1
|
+
import asyncio
|
1
2
|
import logging
|
2
3
|
from typing import Callable
|
3
4
|
|
4
5
|
from aiogram import Dispatcher
|
5
6
|
|
6
7
|
from arpakitlib.ar_base_worker_util import safe_run_worker_in_background, SafeRunInBackgroundModes
|
8
|
+
from arpakitlib.ar_datetime_util import now_utc_dt
|
7
9
|
from project.core.cache_file_storage_in_dir import get_cached_cache_file_storage_in_dir
|
8
10
|
from project.core.dump_file_storage_in_dir import get_cached_dump_file_storage_in_dir
|
9
11
|
from project.core.media_file_storage_in_dir import get_cached_media_file_storage_in_dir
|
@@ -13,6 +15,8 @@ from project.operation_execution.operation_executor_worker import create_operati
|
|
13
15
|
from project.operation_execution.scheduled_operation_creator_worker import create_scheduled_operation_creator_worker
|
14
16
|
from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
15
17
|
from project.tg_bot.tg_bot import get_cached_tg_bot
|
18
|
+
from project.tg_bot.util.notify_admins import notify_admins
|
19
|
+
from project.tg_bot.util.set_tg_bot_commands import set_all_tg_bot_commands
|
16
20
|
|
17
21
|
_logger = logging.getLogger(__name__)
|
18
22
|
|
@@ -23,6 +27,8 @@ _logger = logging.getLogger(__name__)
|
|
23
27
|
async def startup_tg_bot_event():
|
24
28
|
_logger.info("start")
|
25
29
|
|
30
|
+
_ = asyncio.create_task(notify_admins(text=f"Start\n{now_utc_dt().isoformat()}"))
|
31
|
+
|
26
32
|
if get_cached_media_file_storage_in_dir() is not None:
|
27
33
|
get_cached_media_file_storage_in_dir().init()
|
28
34
|
|
@@ -44,6 +50,9 @@ async def startup_tg_bot_event():
|
|
44
50
|
):
|
45
51
|
get_cached_json_db().init()
|
46
52
|
|
53
|
+
if get_cached_settings().tg_bot_set_commands:
|
54
|
+
await set_all_tg_bot_commands()
|
55
|
+
|
47
56
|
if get_cached_settings().tg_bot_drop_pending_updates:
|
48
57
|
await get_cached_tg_bot().delete_webhook(drop_pending_updates=True)
|
49
58
|
|
@@ -89,6 +98,8 @@ async def shutdown_tg_bot_event(*args, **kwargs):
|
|
89
98
|
if get_cached_settings().tg_bot_webhook_enabled:
|
90
99
|
await get_cached_tg_bot().delete_webhook(drop_pending_updates=True)
|
91
100
|
|
101
|
+
await notify_admins(text=f"Finish\n{now_utc_dt().isoformat()}")
|
102
|
+
|
92
103
|
_logger.info("finish")
|
93
104
|
|
94
105
|
|
@@ -97,7 +108,7 @@ def get_shutdown_tg_bot_events() -> list[Callable]:
|
|
97
108
|
return res
|
98
109
|
|
99
110
|
|
100
|
-
#
|
111
|
+
# MAIN
|
101
112
|
|
102
113
|
|
103
114
|
def add_events_to_tg_bot_dispatcher(*, tg_bot_dispatcher: Dispatcher):
|
@@ -12,7 +12,7 @@ class UserRolesHasAdminTgBotFilter(Filter):
|
|
12
12
|
middleware_data_tg_bot: MiddlewareDataTgBot,
|
13
13
|
**kwargs
|
14
14
|
) -> bool:
|
15
|
-
if middleware_data_tg_bot.
|
16
|
-
if middleware_data_tg_bot.
|
15
|
+
if middleware_data_tg_bot.current_user_dbm is not None:
|
16
|
+
if middleware_data_tg_bot.current_user_dbm.roles_has_admin:
|
17
17
|
return True
|
18
18
|
return False
|
@@ -12,7 +12,7 @@ class UserRolesHasClientTgBotFilter(Filter):
|
|
12
12
|
middleware_data_tg_bot: MiddlewareDataTgBot,
|
13
13
|
**kwargs
|
14
14
|
) -> bool:
|
15
|
-
if middleware_data_tg_bot.
|
16
|
-
if middleware_data_tg_bot.
|
15
|
+
if middleware_data_tg_bot.current_user_dbm is not None:
|
16
|
+
if middleware_data_tg_bot.current_user_dbm.roles_has_client:
|
17
17
|
return True
|
18
18
|
return False
|
@@ -0,0 +1,16 @@
|
|
1
|
+
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
|
2
|
+
from aiogram.utils.keyboard import InlineKeyboardBuilder
|
3
|
+
|
4
|
+
from project.tg_bot.blank.admin import get_cached_eng_admin_tg_bot_blank
|
5
|
+
from project.tg_bot.callback.admin import HelloWorldAdminCD
|
6
|
+
|
7
|
+
|
8
|
+
def hello_world_admin_inline_kb_tg_bot() -> InlineKeyboardMarkup:
|
9
|
+
kb_builder = InlineKeyboardBuilder()
|
10
|
+
|
11
|
+
kb_builder.row(InlineKeyboardButton(
|
12
|
+
text=get_cached_eng_admin_tg_bot_blank().but_hello_world(),
|
13
|
+
callback_data=HelloWorldAdminCD(hello_world=True).pack()
|
14
|
+
))
|
15
|
+
|
16
|
+
return kb_builder.as_markup()
|
@@ -0,0 +1,15 @@
|
|
1
|
+
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
|
2
|
+
from aiogram.utils.keyboard import InlineKeyboardBuilder
|
3
|
+
|
4
|
+
from project.tg_bot.blank.client import get_cached_rus_client_tg_bot_blank
|
5
|
+
|
6
|
+
|
7
|
+
def support_client_inline_kb_tg_bot() -> InlineKeyboardMarkup:
|
8
|
+
return InlineKeyboardBuilder(markup=[
|
9
|
+
[
|
10
|
+
InlineKeyboardButton(
|
11
|
+
text=get_cached_rus_client_tg_bot_blank().but_support(),
|
12
|
+
url="https://t.me/arpakit"
|
13
|
+
)
|
14
|
+
]
|
15
|
+
]).as_markup()
|
@@ -1,14 +1,14 @@
|
|
1
1
|
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
|
2
2
|
from aiogram.utils.keyboard import ReplyKeyboardBuilder
|
3
3
|
|
4
|
-
from project.tg_bot.blank.
|
4
|
+
from project.tg_bot.blank.admin import get_cached_eng_admin_tg_bot_blank
|
5
5
|
|
6
6
|
|
7
|
-
def
|
7
|
+
def hello_world_admin_static_kb_tg_bot() -> ReplyKeyboardMarkup:
|
8
8
|
kb_builder = ReplyKeyboardBuilder()
|
9
9
|
|
10
10
|
kb_builder.row(KeyboardButton(
|
11
|
-
text=
|
11
|
+
text=get_cached_eng_admin_tg_bot_blank().but_hello_world()
|
12
12
|
))
|
13
13
|
|
14
14
|
return kb_builder.as_markup(resize_keyboard=True, one_time_keyboard=False)
|
@@ -8,6 +8,6 @@ from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
|
8
8
|
class MiddlewareDataTgBot(BaseModel):
|
9
9
|
model_config = ConfigDict(extra="forbid", arbitrary_types_allowed=True, from_attributes=True)
|
10
10
|
|
11
|
-
|
12
|
-
|
11
|
+
current_user_dbm: UserDBM | None = None
|
12
|
+
current_user_dbm_just_created: bool | None = None
|
13
13
|
additional_data: dict[str, Any] = {}
|
@@ -47,38 +47,38 @@ class InitUserTgBotMiddleware(BaseMiddleware):
|
|
47
47
|
|
48
48
|
if tg_user is not None and get_cached_sqlalchemy_db() is not None:
|
49
49
|
async with get_cached_sqlalchemy_db().new_async_session() as async_session:
|
50
|
-
middleware_data_tg_bot.
|
50
|
+
middleware_data_tg_bot.current_user_dbm = await async_session.scalar(
|
51
51
|
sqlalchemy.select(UserDBM).filter(UserDBM.tg_id == tg_user.id)
|
52
52
|
)
|
53
|
-
if middleware_data_tg_bot.
|
53
|
+
if middleware_data_tg_bot.current_user_dbm is None:
|
54
54
|
roles = [UserDBM.Roles.client]
|
55
55
|
if tg_user.id in get_cached_settings().tg_bot_admin_tg_ids:
|
56
56
|
roles.append(UserDBM.Roles.admin)
|
57
|
-
middleware_data_tg_bot.
|
57
|
+
middleware_data_tg_bot.current_user_dbm = UserDBM(
|
58
58
|
creation_dt=now_utc_dt_,
|
59
59
|
roles=roles,
|
60
60
|
tg_id=tg_user.id,
|
61
61
|
tg_data=tg_user.model_dump(mode="json"),
|
62
62
|
tg_bot_last_action_dt=now_utc_dt_
|
63
63
|
)
|
64
|
-
async_session.add(middleware_data_tg_bot.
|
64
|
+
async_session.add(middleware_data_tg_bot.current_user_dbm)
|
65
65
|
await async_session.commit()
|
66
|
-
await async_session.refresh(middleware_data_tg_bot.
|
67
|
-
middleware_data_tg_bot.
|
68
|
-
_logger.info(f"user_dbm was added, {middleware_data_tg_bot.
|
66
|
+
await async_session.refresh(middleware_data_tg_bot.current_user_dbm)
|
67
|
+
middleware_data_tg_bot.current_user_dbm_just_created = True
|
68
|
+
_logger.info(f"user_dbm was added, {middleware_data_tg_bot.current_user_dbm}")
|
69
69
|
else:
|
70
|
-
middleware_data_tg_bot.
|
71
|
-
middleware_data_tg_bot.
|
70
|
+
middleware_data_tg_bot.current_user_dbm.tg_data = tg_user.model_dump(mode="json")
|
71
|
+
middleware_data_tg_bot.current_user_dbm.tg_bot_last_action_dt = now_utc_dt_
|
72
72
|
if (
|
73
73
|
tg_user.id in get_cached_settings().tg_bot_admin_tg_ids
|
74
|
-
and UserDBM.Roles.admin not in middleware_data_tg_bot.
|
74
|
+
and UserDBM.Roles.admin not in middleware_data_tg_bot.current_user_dbm.roles
|
75
75
|
):
|
76
|
-
middleware_data_tg_bot.
|
77
|
-
middleware_data_tg_bot.
|
76
|
+
middleware_data_tg_bot.current_user_dbm.roles = (
|
77
|
+
middleware_data_tg_bot.current_user_dbm.roles + [UserDBM.Roles.admin]
|
78
78
|
)
|
79
79
|
await async_session.commit()
|
80
|
-
await async_session.refresh(middleware_data_tg_bot.
|
81
|
-
middleware_data_tg_bot.
|
80
|
+
await async_session.refresh(middleware_data_tg_bot.current_user_dbm)
|
81
|
+
middleware_data_tg_bot.current_user_dbm_just_created = False
|
82
82
|
|
83
83
|
_logger.info("finish")
|
84
84
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import aiogram.filters
|
2
|
+
from aiogram.fsm.context import FSMContext
|
2
3
|
|
3
4
|
from arpakitlib.ar_aiogram_util import as_tg_command
|
4
5
|
from arpakitlib.ar_json_util import transfer_data_to_json_str
|
@@ -19,9 +20,11 @@ tg_bot_router = aiogram.Router()
|
|
19
20
|
@as_tg_command()
|
20
21
|
async def _(
|
21
22
|
m: aiogram.types.Message,
|
23
|
+
state: FSMContext,
|
22
24
|
middleware_data_tg_bot: MiddlewareDataTgBot,
|
23
25
|
**kwargs
|
24
26
|
):
|
27
|
+
await state.clear()
|
25
28
|
await m.answer(
|
26
29
|
text=transfer_data_to_json_str(get_arpakitlib_project_template_info(), beautify=True)
|
27
30
|
)
|
@@ -1,13 +1,15 @@
|
|
1
1
|
import aiogram
|
2
2
|
from aiogram import Router, types
|
3
3
|
from aiogram.filters import Command
|
4
|
+
from aiogram.fsm.context import FSMContext
|
4
5
|
|
5
6
|
from arpakitlib.ar_aiogram_util import as_tg_command
|
6
7
|
from project.core.settings import get_cached_settings
|
7
|
-
from project.tg_bot.blank.admin import
|
8
|
+
from project.tg_bot.blank.admin import get_cached_eng_admin_tg_bot_blank
|
8
9
|
from project.tg_bot.const import AdminTgBotCommands
|
9
10
|
from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
|
10
11
|
from project.tg_bot.filter_.user_roles_has_admin import UserRolesHasAdminTgBotFilter
|
12
|
+
from project.tg_bot.middleware.common import MiddlewareDataTgBot
|
11
13
|
|
12
14
|
tg_bot_router = Router()
|
13
15
|
|
@@ -20,14 +22,18 @@ tg_bot_router = Router()
|
|
20
22
|
@as_tg_command(passwd_validator=get_cached_settings().tg_bot_command_passwd)
|
21
23
|
async def _(
|
22
24
|
m: types.Message,
|
25
|
+
state: FSMContext,
|
26
|
+
middleware_data_tg_bot: MiddlewareDataTgBot,
|
23
27
|
**kwargs
|
24
28
|
):
|
29
|
+
await state.clear()
|
30
|
+
|
25
31
|
with open(get_cached_settings().log_filepath, mode="r") as f:
|
26
32
|
if not f.read():
|
27
|
-
await m.answer(
|
33
|
+
await m.answer(get_cached_eng_admin_tg_bot_blank().good())
|
28
34
|
return
|
29
35
|
|
30
36
|
with open(get_cached_settings().log_filepath, mode="w") as f:
|
31
37
|
f.write("")
|
32
38
|
|
33
|
-
await m.answer(
|
39
|
+
await m.answer(get_cached_eng_admin_tg_bot_blank().good())
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import aiogram
|
2
|
+
from aiogram import Router, types
|
3
|
+
from aiogram.filters import Command
|
4
|
+
from aiogram.fsm.context import FSMContext
|
5
|
+
|
6
|
+
from arpakitlib.ar_aiogram_util import as_tg_command
|
7
|
+
from project.tg_bot.const import AdminTgBotCommands
|
8
|
+
from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
|
9
|
+
from project.tg_bot.filter_.user_roles_has_admin import UserRolesHasAdminTgBotFilter
|
10
|
+
from project.tg_bot.middleware.common import MiddlewareDataTgBot
|
11
|
+
|
12
|
+
tg_bot_router = Router()
|
13
|
+
|
14
|
+
|
15
|
+
@tg_bot_router.message(
|
16
|
+
IsPrivateChatTgBotFilter(),
|
17
|
+
UserRolesHasAdminTgBotFilter(),
|
18
|
+
aiogram.filters.Command(AdminTgBotCommands.current_state)
|
19
|
+
)
|
20
|
+
@as_tg_command()
|
21
|
+
async def _(
|
22
|
+
m: types.Message,
|
23
|
+
state: FSMContext,
|
24
|
+
middleware_data_tg_bot: MiddlewareDataTgBot,
|
25
|
+
**kwargs
|
26
|
+
):
|
27
|
+
state = await state.get_state()
|
28
|
+
await m.answer(text=(
|
29
|
+
f"State:"
|
30
|
+
f"\n<code>{state}</code>"
|
31
|
+
))
|
@@ -1,9 +1,10 @@
|
|
1
1
|
import aiogram.filters
|
2
|
+
from aiogram.fsm.context import FSMContext
|
2
3
|
|
3
4
|
from arpakitlib.ar_aiogram_util import as_tg_command
|
4
5
|
from project.core.settings import get_cached_settings
|
5
6
|
from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
6
|
-
from project.tg_bot.blank.admin import
|
7
|
+
from project.tg_bot.blank.admin import get_cached_eng_admin_tg_bot_blank
|
7
8
|
from project.tg_bot.const import AdminTgBotCommands
|
8
9
|
from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
|
9
10
|
from project.tg_bot.filter_.not_prod_mode_filter import NotProdModeTgBotFilter
|
@@ -22,10 +23,12 @@ tg_bot_router = aiogram.Router()
|
|
22
23
|
@as_tg_command(passwd_validator=get_cached_settings().tg_bot_command_passwd)
|
23
24
|
async def _(
|
24
25
|
m: aiogram.types.Message,
|
26
|
+
state: FSMContext,
|
25
27
|
middleware_data_tg_bot: MiddlewareDataTgBot,
|
26
28
|
**kwargs
|
27
29
|
):
|
30
|
+
await state.clear()
|
28
31
|
get_cached_sqlalchemy_db().drop()
|
29
32
|
await m.answer(
|
30
|
-
text=
|
33
|
+
text=get_cached_eng_admin_tg_bot_blank().good()
|
31
34
|
)
|