arpakitlib 1.8.4__py3-none-any.whl → 1.8.6__py3-none-any.whl
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/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/alembic/env.py +2 -2
- arpakitlib/_arpakit_project_template_v_2/arpakitlib_project_template_info.json +3 -0
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/check_logging.py +1 -1
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/check_sqlalchemy_db.py +2 -2
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/drop_json_db.py +3 -3
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/drop_sqlalchemy_db.py +4 -3
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/generate_settings_env_example.py +2 -2
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/init_json_db.py +2 -2
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/init_sqlalchemy_db.py +2 -2
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/reinit_json_db.py +3 -3
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/reinit_sqlalchemy_db.py +3 -3
- arpakitlib/_arpakit_project_template_v_2/command/remove_operations.py +13 -0
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/remove_story_logs.py +4 -4
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/rm_all_records_in_json_db.py +3 -3
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/show_settings.py +1 -1
- arpakitlib/{_arpakit_project_template_v_1/command/start_api_without_reload.py → _arpakit_project_template_v_2/command/start_api_for_not_prod.py} +3 -3
- arpakitlib/_arpakit_project_template_v_2/command/start_api_for_prod.py +19 -0
- arpakitlib/{_arpakit_project_template_v_1/command/start_api_with_reload.py → _arpakit_project_template_v_2/command/start_api_with_reload_for_not_prod.py} +3 -3
- arpakitlib/_arpakit_project_template_v_2/command/start_operation_executor_worker_for_not_prod.py +15 -0
- arpakitlib/{_arpakit_project_template_v_1/command/start_sync_operation_executor_workers.py → _arpakit_project_template_v_2/command/start_operation_executor_workers_for_not_prod.py} +3 -3
- arpakitlib/{_arpakit_project_template_v_1/command/start_sync_scheduled_operation_creator_worker.py → _arpakit_project_template_v_2/command/start_scheduled_operation_creator_worker_for_not_prod.py} +2 -2
- arpakitlib/_arpakit_project_template_v_2/command/start_tg_bot_for_prod.py +11 -0
- arpakitlib/_arpakit_project_template_v_2/project/api/asgi.py +3 -0
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/auth.py +34 -5
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/create_api_app.py +8 -8
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/event.py +8 -8
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/exception.py +2 -2
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/exception_handler.py +7 -7
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/response.py +1 -1
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/router/main_router.py +1 -4
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/router/v1/check_auth.py +2 -2
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/router/v1/clear_log_file.py +6 -7
- arpakitlib/{_arpakit_project_template_v_1/api/router/v1/arpakitlib_project_template.py → _arpakit_project_template_v_2/project/api/router/v1/get_arpakitlib_project_template_info.py} +3 -3
- arpakitlib/_arpakit_project_template_v_2/project/api/router/v1/get_errors_info.py +33 -0
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/router/v1/get_log_file.py +5 -6
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/router/v1/healthcheck.py +2 -2
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/router/v1/main_router.py +14 -23
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/router/v1/now_utc_datetime.py +1 -1
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/router/v1/raise_fake_error.py +5 -6
- arpakitlib/_arpakit_project_template_v_2/project/api/router/v1/reinit_sqlalchemy_db.py +33 -0
- arpakitlib/_arpakit_project_template_v_2/project/api/schema/common/in_.py +5 -0
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/schema/common/out.py +1 -1
- arpakitlib/_arpakit_project_template_v_2/project/api/schema/v1/in_.py +5 -0
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/schema/v1/out.py +2 -2
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/business_service/hello_world.py +2 -2
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/business_service/remove_operations.py +2 -2
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/core/cache_file_storage_in_dir.py +1 -1
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/core/const.py +8 -4
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/core/dump_file_storage_in_dir.py +1 -1
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/core/jinja2_templates.py +1 -1
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/core/media_file_storage_in_dir.py +1 -1
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/core/settings.py +3 -3
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/core/util.py +1 -1
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/json_db/json_db.py +1 -1
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/operation_execution/operation_executor_worker.py +2 -2
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/operation_execution/scheduled_operation_creator_worker.py +3 -3
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/operation_execution/scheduled_operations.py +2 -2
- arpakitlib/_arpakit_project_template_v_2/project/resource/static/helloworld +1 -0
- arpakitlib/_arpakit_project_template_v_2/project/resource/static/openapi-favicon.png +0 -0
- arpakitlib/_arpakit_project_template_v_2/project/site/asgi.py +3 -0
- arpakitlib/_arpakit_project_template_v_2/project/site/create_site_app.py +5 -0
- arpakitlib/_arpakit_project_template_v_2/project/site/event.py +19 -0
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sqladmin_/add_admin_in_app.py +4 -4
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sqladmin_/admin_auth.py +1 -1
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sqladmin_/model_view.py +1 -1
- arpakitlib/_arpakit_project_template_v_2/project/sqlalchemy_db_/const.py +1 -0
- arpakitlib/{_arpakit_project_template_v_1/sqlalchemy_db → _arpakit_project_template_v_2/project/sqlalchemy_db_}/sqlalchemy_db.py +2 -2
- arpakitlib/{_arpakit_project_template_v_1/sqlalchemy_db → _arpakit_project_template_v_2/project/sqlalchemy_db_}/sqlalchemy_model.py +7 -4
- arpakitlib/_arpakit_project_template_v_2/project/tg_bot/blank/blank.py +24 -0
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/tg_bot/const.py +1 -1
- arpakitlib/_arpakit_project_template_v_2/project/tg_bot/event.py +77 -0
- arpakitlib/_arpakit_project_template_v_2/project/tg_bot/filter_.py +69 -0
- arpakitlib/_arpakit_project_template_v_2/project/tg_bot/kb/inline_/callback.py +37 -0
- arpakitlib/_arpakit_project_template_v_2/project/tg_bot/kb/inline_/common.py +15 -0
- arpakitlib/_arpakit_project_template_v_2/project/tg_bot/kb/static_/common.py +14 -0
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/tg_bot/middleware/init_user.py +0 -3
- arpakitlib/_arpakit_project_template_v_2/project/tg_bot/middleware/middleware.py +12 -0
- arpakitlib/_arpakit_project_template_v_2/project/tg_bot/router/arpakitlib_project_template_info.py +14 -0
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/tg_bot/router/error.py +4 -3
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/tg_bot/router/healthcheck.py +3 -2
- arpakitlib/_arpakit_project_template_v_2/project/tg_bot/router/main_router.py +12 -0
- arpakitlib/_arpakit_project_template_v_2/project/tg_bot/start_tg_bot.py +39 -0
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/tg_bot/tg_bot.py +1 -1
- arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/tg_bot/tg_bot_dispatcher.py +5 -4
- arpakitlib/_arpakit_project_template_v_2/project/tg_bot/util.py +1 -0
- arpakitlib/_arpakit_project_template_v_2/project/util/arpakitlib_project_template.py +17 -0
- arpakitlib/ar_aiogram_util.py +3 -123
- {arpakitlib-1.8.4.dist-info → arpakitlib-1.8.6.dist-info}/METADATA +1 -1
- arpakitlib-1.8.6.dist-info/RECORD +260 -0
- arpakitlib/_arpakit_project_template_v_1/api/asgi.py +0 -3
- arpakitlib/_arpakit_project_template_v_1/api/router/v1/get_errors_info.py +0 -24
- arpakitlib/_arpakit_project_template_v_1/api/schema/common/in_.py +0 -5
- arpakitlib/_arpakit_project_template_v_1/api/schema/v1/in_.py +0 -5
- arpakitlib/_arpakit_project_template_v_1/arpakitlib_project_template.json +0 -3
- arpakitlib/_arpakit_project_template_v_1/command/remove_operations.py +0 -13
- arpakitlib/_arpakit_project_template_v_1/command/start_async_operation_executor_worker.py +0 -14
- arpakitlib/_arpakit_project_template_v_1/command/start_async_scheduled_operation_creator_worker.py +0 -14
- arpakitlib/_arpakit_project_template_v_1/command/start_sync_operation_executor_worker.py +0 -15
- arpakitlib/_arpakit_project_template_v_1/operation_execution/const.py +0 -0
- arpakitlib/_arpakit_project_template_v_1/resource/static/openapi-favicon.png +0 -0
- arpakitlib/_arpakit_project_template_v_1/site/asgi.py +0 -0
- arpakitlib/_arpakit_project_template_v_1/site/create_site_app.py +0 -0
- arpakitlib/_arpakit_project_template_v_1/site/event.py +0 -0
- arpakitlib/_arpakit_project_template_v_1/tg_bot/blank/blank.py +0 -5
- arpakitlib/_arpakit_project_template_v_1/tg_bot/blank/util.py +0 -12
- arpakitlib/_arpakit_project_template_v_1/tg_bot/event.py +0 -51
- arpakitlib/_arpakit_project_template_v_1/tg_bot/filter/not_prod_mode.py +0 -8
- arpakitlib/_arpakit_project_template_v_1/tg_bot/filter/prod_mode.py +0 -8
- arpakitlib/_arpakit_project_template_v_1/tg_bot/kb/inline_/callback.py +0 -0
- arpakitlib/_arpakit_project_template_v_1/tg_bot/kb/inline_/common.py +0 -0
- arpakitlib/_arpakit_project_template_v_1/tg_bot/kb/static_/common.py +0 -0
- arpakitlib/_arpakit_project_template_v_1/tg_bot/middleware/middleware.py +0 -12
- arpakitlib/_arpakit_project_template_v_1/tg_bot/router/arpakitlib_.py +0 -10
- arpakitlib/_arpakit_project_template_v_1/tg_bot/router/main_router.py +0 -14
- arpakitlib/_arpakit_project_template_v_1/tg_bot/start_tg_bot.py +0 -34
- arpakitlib/_arpakit_project_template_v_1/tg_bot/transmitted_tg_data.py +0 -58
- arpakitlib/_arpakit_project_template_v_1/tg_bot/util.py +0 -0
- arpakitlib/_arpakit_project_template_v_1/util/__init__.py +0 -0
- arpakitlib/_arpakit_project_template_v_1/util/read_arpakitlib_project_template_file.py +0 -17
- arpakitlib-1.8.4.dist-info/RECORD +0 -262
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/.gitignore +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/.python-version +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/LICENSE +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/README.md +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/alembic/README +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/alembic/script.py.mako +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/alembic.ini +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/additional_model → _arpakit_project_template_v_2/command}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/alembic_history.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/alembic_revision_autogenerate.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/command/alembic_upgrade_head .sh → _arpakit_project_template_v_2/command/alembic_upgrade_head.sh} +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/beautify_json.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/docker_ps_a.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/docker_rm_postgres.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/docker_run_postgres.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/docker_start_postgres.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/docker_stop_postgres.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_commit.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_push_arpakit_company_github_1.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_push_arpakit_company_gitlab_1.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_push_arpakit_github_1.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_push_arpakit_gitlab_1.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_remote_v.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_set_arpakit_company_origin.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_set_arpakit_origin.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_set_divarteam_origin.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/git_status.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/hello_world.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_check.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_clear_cache.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_config.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_install.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_lock.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_remove_and_add_arpakitlib.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_show.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_show_arpakitlib.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_update.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/command/poetry_update_arpakitlib.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2}/example.env +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/api → _arpakit_project_template_v_2/project}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/api/router → _arpakit_project_template_v_2/project/additional_model}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/additional_model/additional_model.py → _arpakit_project_template_v_2/project/additional_model/common.py} +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/api/router/v1 → _arpakit_project_template_v_2/project/api}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/const.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/openapi_ui.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/api/schema → _arpakit_project_template_v_2/project/api/router}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/api/schema/common → _arpakit_project_template_v_2/project/api/router/v1}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/api/schema/v1 → _arpakit_project_template_v_2/project/api/schema}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/schema/base_schema.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/business_service → _arpakit_project_template_v_2/project/api/schema/common}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/celery_ → _arpakit_project_template_v_2/project/api/schema/v1}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/api/util.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/command → _arpakit_project_template_v_2/project/business_service}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/core → _arpakit_project_template_v_2/project/celery_}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/json_db → _arpakit_project_template_v_2/project/core}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/note → _arpakit_project_template_v_2/project/json_db}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/resource/static → _arpakit_project_template_v_2/project/more}/helloworld +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/note/note_1.txt +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/note/note_2.txt +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/note/note_3.txt +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/note/note_4.txt +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/note/note_5.txt +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/operation_execution/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/sqlalchemy_db → _arpakit_project_template_v_2/project/operation_execution}/const.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/operation_execution/util.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/1 +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/healthcheck +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/redoc/redoc.standalone.js +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/favicon-16x16.png +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/favicon-32x32.png +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/index.css +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/index.html +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/oauth2-redirect.html +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-initializer.js +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui-bundle.js +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui-bundle.js.map +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui-es-bundle-core.js +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui-es-bundle-core.js.map +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui-es-bundle.js +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui-es-bundle.js.map +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui-standalone-preset.js +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui-standalone-preset.js.map +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui.css +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui.css.map +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui.js +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/resource/static/swagger-ui/swagger-ui.js.map +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sandbox/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sandbox/sandbox_1.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sandbox/sandbox_2.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sandbox/sandbox_3.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sandbox/sandbox_4.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sandbox/sandbox_5.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sandbox/sandbox_6.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sandbox/sandbox_7.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/site/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/site/consts.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/site/exception_handler.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/site/router/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/site/router/main_router.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/sqladmin_/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/sqlalchemy_db → _arpakit_project_template_v_2/project/sqlalchemy_db_}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/sqlalchemy_db → _arpakit_project_template_v_2/project/sqlalchemy_db_}/util.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/test_data/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/test_data/make_test_data_1.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/test_data/make_test_data_2.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/test_data/make_test_data_3.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/test_data/make_test_data_4.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/test_data/make_test_data_5.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/tg_bot/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/tg_bot/blank/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/tg_bot/filter → _arpakit_project_template_v_2/project/tg_bot/kb}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/tg_bot/kb → _arpakit_project_template_v_2/project/tg_bot/kb/inline_}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/tg_bot/kb/inline_ → _arpakit_project_template_v_2/project/tg_bot/kb/static_}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/tg_bot/kb/static_ → _arpakit_project_template_v_2/project/tg_bot/middleware}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/tg_bot/middleware → _arpakit_project_template_v_2/project/tg_bot/router}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v_1/tg_bot/router → _arpakit_project_template_v_2/project/util}/__init__.py +0 -0
- {arpakitlib-1.8.4.dist-info → arpakitlib-1.8.6.dist-info}/LICENSE +0 -0
- {arpakitlib-1.8.4.dist-info → arpakitlib-1.8.6.dist-info}/WHEEL +0 -0
- {arpakitlib-1.8.4.dist-info → arpakitlib-1.8.6.dist-info}/entry_points.txt +0 -0
@@ -1,68 +1,59 @@
|
|
1
1
|
from fastapi import APIRouter
|
2
2
|
|
3
|
-
from api.router.v1 import healthcheck, get_errors_info, now_utc_datetime, clear_log_file, get_log_file, \
|
4
|
-
|
5
|
-
from api.router.v1 import raise_fake_error, check_auth
|
3
|
+
from project.api.router.v1 import healthcheck, get_errors_info, now_utc_datetime, clear_log_file, get_log_file, \
|
4
|
+
get_arpakitlib_project_template_info, reinit_sqlalchemy_db, check_auth, raise_fake_error
|
6
5
|
|
7
6
|
main_v1_api_router = APIRouter()
|
8
7
|
|
9
|
-
# Healthcheck
|
10
|
-
|
11
8
|
main_v1_api_router.include_router(
|
12
9
|
router=healthcheck.api_router,
|
13
10
|
prefix="/healthcheck",
|
14
11
|
tags=["Healthcheck"]
|
15
12
|
)
|
16
13
|
|
17
|
-
# arpakitlib_
|
18
|
-
|
19
14
|
main_v1_api_router.include_router(
|
20
|
-
router=
|
21
|
-
prefix="/
|
22
|
-
tags=["arpakitlib"]
|
15
|
+
router=get_arpakitlib_project_template_info.api_router,
|
16
|
+
prefix="/get_arpakitlib_project_template_info",
|
17
|
+
tags=["arpakitlib project template info"]
|
23
18
|
)
|
24
19
|
|
25
|
-
# Get errors info
|
26
|
-
|
27
20
|
main_v1_api_router.include_router(
|
28
21
|
router=get_errors_info.api_router,
|
29
22
|
prefix="/get_errors_info",
|
30
23
|
tags=["Errors info"]
|
31
24
|
)
|
32
25
|
|
33
|
-
# Check auth
|
34
|
-
|
35
26
|
main_v1_api_router.include_router(
|
36
27
|
router=check_auth.api_router,
|
37
28
|
prefix="/check_auth",
|
38
29
|
tags=["Check auth"]
|
39
30
|
)
|
40
31
|
|
41
|
-
# Raise fake error
|
42
|
-
|
43
32
|
main_v1_api_router.include_router(
|
44
33
|
router=raise_fake_error.api_router,
|
45
34
|
prefix="/raise_fake_error",
|
46
35
|
tags=["Fake error"]
|
47
36
|
)
|
48
37
|
|
49
|
-
# Now UTC Datetime
|
50
|
-
|
51
38
|
main_v1_api_router.include_router(
|
52
39
|
router=now_utc_datetime.api_router,
|
53
40
|
prefix="/now_utc_datetime",
|
54
41
|
tags=["Now UTC datetime"]
|
55
42
|
)
|
56
43
|
|
57
|
-
|
58
|
-
|
44
|
+
main_v1_api_router.include_router(
|
45
|
+
router=get_log_file.api_router,
|
46
|
+
prefix="/get_log_file",
|
47
|
+
tags=["Log file"]
|
48
|
+
)
|
59
49
|
main_v1_api_router.include_router(
|
60
50
|
router=clear_log_file.api_router,
|
61
51
|
prefix="/clear_log_file",
|
62
52
|
tags=["Log file"]
|
63
53
|
)
|
54
|
+
|
64
55
|
main_v1_api_router.include_router(
|
65
|
-
router=
|
66
|
-
prefix="/
|
67
|
-
tags=["
|
56
|
+
router=reinit_sqlalchemy_db.api_router,
|
57
|
+
prefix="/reinit_sqlalchemy_db",
|
58
|
+
tags=["Reinit SQLAlchemy db"]
|
68
59
|
)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import fastapi
|
2
2
|
from fastapi import APIRouter
|
3
3
|
|
4
|
-
from api.schema.common.out import ErrorCommonSO, DatetimeCommonSO
|
5
4
|
from arpakitlib.ar_datetime_util import now_utc_dt
|
5
|
+
from project.api.schema.common.out import ErrorCommonSO, DatetimeCommonSO
|
6
6
|
|
7
7
|
api_router = APIRouter()
|
8
8
|
|
@@ -2,9 +2,8 @@ import fastapi
|
|
2
2
|
import starlette.exceptions
|
3
3
|
from fastapi import APIRouter, Depends
|
4
4
|
|
5
|
-
from api.auth import APIAuthData, api_auth, correct_api_keys_from_settings__validate_api_key_func
|
6
|
-
|
7
|
-
from api.schema.common.out import ErrorCommonSO
|
5
|
+
from project.api.auth import APIAuthData, api_auth, correct_api_keys_from_settings__validate_api_key_func
|
6
|
+
from project.api.schema.common.out import ErrorCommonSO
|
8
7
|
|
9
8
|
api_router = APIRouter()
|
10
9
|
|
@@ -22,11 +21,11 @@ async def _(
|
|
22
21
|
n: int | None = None,
|
23
22
|
api_auth_data: APIAuthData = Depends(api_auth(
|
24
23
|
require_api_key_string=True,
|
25
|
-
require_token_string=
|
24
|
+
require_token_string=False,
|
26
25
|
validate_api_key_func=correct_api_keys_from_settings__validate_api_key_func(),
|
27
|
-
validate_token_func=
|
26
|
+
validate_token_func=None,
|
28
27
|
require_correct_api_key=True,
|
29
|
-
require_correct_token=
|
28
|
+
require_correct_token=False,
|
30
29
|
))
|
31
30
|
):
|
32
31
|
if n == 1:
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import fastapi
|
2
|
+
from fastapi import APIRouter
|
3
|
+
|
4
|
+
from project.api.auth import APIAuthData, api_auth
|
5
|
+
from project.api.schema.common.out import ErrorCommonSO, RawDataCommonSO
|
6
|
+
from project.core.settings import ModeTypes
|
7
|
+
from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
8
|
+
|
9
|
+
api_router = APIRouter()
|
10
|
+
|
11
|
+
|
12
|
+
@api_router.get(
|
13
|
+
"",
|
14
|
+
name="Reinit SQLAlchemy db",
|
15
|
+
status_code=fastapi.status.HTTP_200_OK,
|
16
|
+
response_model=RawDataCommonSO | ErrorCommonSO,
|
17
|
+
)
|
18
|
+
async def _(
|
19
|
+
*,
|
20
|
+
request: fastapi.requests.Request,
|
21
|
+
response: fastapi.responses.Response,
|
22
|
+
api_auth_data: APIAuthData = fastapi.Depends(api_auth(
|
23
|
+
require_api_key_string=True,
|
24
|
+
require_token_string=False,
|
25
|
+
validate_api_key_func=None,
|
26
|
+
validate_token_func=None,
|
27
|
+
require_correct_api_key=False,
|
28
|
+
require_correct_token=False,
|
29
|
+
require_not_mode_type=ModeTypes.prod
|
30
|
+
))
|
31
|
+
):
|
32
|
+
get_cached_sqlalchemy_db().reinit()
|
33
|
+
return RawDataCommonSO(data={"sqlalchemy_db_was_reinited": True})
|
@@ -3,8 +3,8 @@ from __future__ import annotations
|
|
3
3
|
import datetime as dt
|
4
4
|
from typing import Any
|
5
5
|
|
6
|
-
from api.schema.base_schema import BaseSO
|
7
|
-
from
|
6
|
+
from project.api.schema.base_schema import BaseSO
|
7
|
+
from project.sqlalchemy_db_.sqlalchemy_model import StoryLogDBM, OperationDBM
|
8
8
|
|
9
9
|
|
10
10
|
class BaseV1SO(BaseSO):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import logging
|
2
2
|
|
3
|
-
from core.util import setup_logging
|
3
|
+
from project.core.util import setup_logging
|
4
4
|
|
5
5
|
_logger = logging.getLogger(__name__)
|
6
6
|
|
@@ -10,6 +10,6 @@ def hello_world() -> str:
|
|
10
10
|
return "Hello world"
|
11
11
|
|
12
12
|
|
13
|
-
if __name__ ==
|
13
|
+
if __name__ == "__main__":
|
14
14
|
setup_logging()
|
15
15
|
hello_world()
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import asyncio
|
2
2
|
|
3
3
|
from arpakitlib.ar_type_util import raise_for_type
|
4
|
-
from
|
5
|
-
from
|
4
|
+
from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
5
|
+
from project.sqlalchemy_db_.sqlalchemy_model import OperationDBM
|
6
6
|
|
7
7
|
|
8
8
|
def remove_operations(
|
@@ -1,7 +1,7 @@
|
|
1
1
|
from functools import lru_cache
|
2
2
|
|
3
3
|
from arpakitlib.ar_file_storage_in_dir_util import FileStorageInDir
|
4
|
-
from core.settings import get_cached_settings
|
4
|
+
from project.core.settings import get_cached_settings
|
5
5
|
|
6
6
|
|
7
7
|
def create_cache_file_storage_in_dir() -> FileStorageInDir | None:
|
arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/core/const.py
RENAMED
@@ -7,18 +7,22 @@ from arpakitlib.ar_json_util import safely_transfer_obj_to_json_str
|
|
7
7
|
|
8
8
|
|
9
9
|
class ProjectPaths(Enumeration):
|
10
|
-
base_dirpath: str = str(pathlib.Path(__file__).parent.parent)
|
10
|
+
base_dirpath: str = str(pathlib.Path(__file__).parent.parent.parent)
|
11
11
|
|
12
12
|
env_filepath: str = os.path.join(base_dirpath, ".env")
|
13
13
|
|
14
|
-
|
14
|
+
arpakit_lib_project_template_info_filepath: str = os.path.join(
|
15
|
+
base_dirpath, "arpakitlib_project_template_info.json"
|
16
|
+
)
|
17
|
+
|
18
|
+
project_dirpath: str = str(pathlib.Path(__file__).parent.parent)
|
19
|
+
|
20
|
+
resource_dirpath: str = os.path.join(project_dirpath, "resource")
|
15
21
|
|
16
22
|
static_dirpath: str = os.path.join(resource_dirpath, "static")
|
17
23
|
|
18
24
|
templates_dirpath: str = os.path.join(resource_dirpath, "templates")
|
19
25
|
|
20
|
-
arpakit_lib_project_template_filepath: str = os.path.join(base_dirpath, "arpakitlib_project_template.json")
|
21
|
-
|
22
26
|
|
23
27
|
def __example():
|
24
28
|
print(safely_transfer_obj_to_json_str(ProjectPaths.key_to_value()))
|
@@ -1,7 +1,7 @@
|
|
1
1
|
from functools import lru_cache
|
2
2
|
|
3
3
|
from arpakitlib.ar_file_storage_in_dir_util import FileStorageInDir
|
4
|
-
from core.settings import get_cached_settings
|
4
|
+
from project.core.settings import get_cached_settings
|
5
5
|
|
6
6
|
|
7
7
|
def create_dump_file_storage_in_dir() -> FileStorageInDir | None:
|
@@ -1,7 +1,7 @@
|
|
1
1
|
from functools import lru_cache
|
2
2
|
|
3
3
|
from arpakitlib.ar_file_storage_in_dir_util import FileStorageInDir
|
4
|
-
from core.settings import get_cached_settings
|
4
|
+
from project.core.settings import get_cached_settings
|
5
5
|
|
6
6
|
|
7
7
|
def create_media_file_storage_in_dir() -> FileStorageInDir | None:
|
arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/core/settings.py
RENAMED
@@ -10,7 +10,7 @@ from arpakitlib.ar_enumeration_util import Enumeration
|
|
10
10
|
from arpakitlib.ar_json_util import safely_transfer_obj_to_json_str
|
11
11
|
from arpakitlib.ar_settings_util import SimpleSettings
|
12
12
|
from arpakitlib.ar_sqlalchemy_util import generate_sqlalchemy_url
|
13
|
-
from core.const import ProjectPaths
|
13
|
+
from project.core.const import ProjectPaths
|
14
14
|
|
15
15
|
|
16
16
|
class ModeTypes(Enumeration):
|
@@ -45,7 +45,7 @@ class Settings(SimpleSettings):
|
|
45
45
|
if self.is_mode_type_prod:
|
46
46
|
raise ValueError(f"mode type = {self.mode_type}")
|
47
47
|
|
48
|
-
project_name: str | None =
|
48
|
+
project_name: str | None = "project"
|
49
49
|
|
50
50
|
sqlalchemy_db_user: str | None = project_name
|
51
51
|
|
@@ -99,7 +99,7 @@ class Settings(SimpleSettings):
|
|
99
99
|
|
100
100
|
sqlalchemy_db_echo: bool = False
|
101
101
|
|
102
|
-
api_port: int | None =
|
102
|
+
api_port: int | None = 8080
|
103
103
|
|
104
104
|
api_init_sqlalchemy_db: bool = False
|
105
105
|
|
arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/core/util.py
RENAMED
@@ -4,7 +4,7 @@ from datetime import datetime
|
|
4
4
|
from arpakitlib.ar_datetime_util import now_dt
|
5
5
|
from arpakitlib.ar_logging_util import setup_normal_logging
|
6
6
|
from arpakitlib.ar_type_util import raise_if_none
|
7
|
-
from core.settings import get_cached_settings
|
7
|
+
from project.core.settings import get_cached_settings
|
8
8
|
|
9
9
|
|
10
10
|
def setup_logging():
|
@@ -13,8 +13,8 @@ from arpakitlib.ar_dict_util import combine_dicts
|
|
13
13
|
from arpakitlib.ar_exception_util import exception_to_traceback_str
|
14
14
|
from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDb
|
15
15
|
from arpakitlib.ar_type_util import raise_for_type
|
16
|
-
from
|
17
|
-
from
|
16
|
+
from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
17
|
+
from project.sqlalchemy_db_.sqlalchemy_model import OperationDBM, StoryLogDBM
|
18
18
|
|
19
19
|
|
20
20
|
class OperationExecutorWorker(BaseWorker):
|
@@ -5,9 +5,9 @@ from arpakitlib.ar_base_worker_util import BaseWorker
|
|
5
5
|
from arpakitlib.ar_sleep_util import sync_safe_sleep, async_safe_sleep
|
6
6
|
from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDb
|
7
7
|
from arpakitlib.ar_type_util import raise_for_type
|
8
|
-
from operation_execution.scheduled_operations import ScheduledOperation, get_scheduled_operations
|
9
|
-
from
|
10
|
-
from
|
8
|
+
from project.operation_execution.scheduled_operations import ScheduledOperation, get_scheduled_operations
|
9
|
+
from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
10
|
+
from project.sqlalchemy_db_.sqlalchemy_model import OperationDBM
|
11
11
|
|
12
12
|
|
13
13
|
class ScheduledOperationCreatorWorker(BaseWorker):
|
@@ -4,8 +4,8 @@ from typing import Any, Callable
|
|
4
4
|
from pydantic import ConfigDict
|
5
5
|
from pydantic.v1 import BaseModel
|
6
6
|
|
7
|
-
from operation_execution.util import every_timedelta_is_time_func
|
8
|
-
from
|
7
|
+
from project.operation_execution.util import every_timedelta_is_time_func
|
8
|
+
from project.sqlalchemy_db_.sqlalchemy_model import OperationDBM
|
9
9
|
|
10
10
|
|
11
11
|
class ScheduledOperation(BaseModel):
|
@@ -0,0 +1 @@
|
|
1
|
+
HELLO WORLD
|
Binary file
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import logging
|
2
|
+
|
3
|
+
_logger = logging.getLogger(__name__)
|
4
|
+
|
5
|
+
|
6
|
+
# STARTUP SITE EVENTS
|
7
|
+
|
8
|
+
|
9
|
+
async def async_site_startup_event():
|
10
|
+
_logger.info("start")
|
11
|
+
_logger.info("finish")
|
12
|
+
|
13
|
+
|
14
|
+
# SHUTDOWN SITE EVENTS
|
15
|
+
|
16
|
+
|
17
|
+
async def async_site_shutdown_event():
|
18
|
+
_logger.info("start")
|
19
|
+
_logger.info("finish")
|
@@ -1,10 +1,10 @@
|
|
1
1
|
from fastapi import FastAPI
|
2
2
|
from sqladmin import Admin
|
3
3
|
|
4
|
-
from core.settings import get_cached_settings
|
5
|
-
from sqladmin_.admin_auth import SQLAdminAuth
|
6
|
-
from sqladmin_.model_view import get_simple_mv
|
7
|
-
from
|
4
|
+
from project.core.settings import get_cached_settings
|
5
|
+
from project.sqladmin_.admin_auth import SQLAdminAuth
|
6
|
+
from project.sqladmin_.model_view import get_simple_mv
|
7
|
+
from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
8
8
|
|
9
9
|
|
10
10
|
def add_sqladmin_in_app(*, app: FastAPI, base_url: str = "/sqladmin") -> FastAPI:
|
@@ -1,7 +1,7 @@
|
|
1
1
|
from sqladmin import ModelView
|
2
2
|
|
3
3
|
from arpakitlib.ar_sqladmin_util import get_string_info_from_model_view
|
4
|
-
from
|
4
|
+
from project.sqlalchemy_db_.sqlalchemy_model import StoryLogDBM, OperationDBM
|
5
5
|
|
6
6
|
|
7
7
|
class SimpleMV(ModelView):
|
@@ -0,0 +1 @@
|
|
1
|
+
# ...
|
@@ -1,8 +1,8 @@
|
|
1
1
|
from functools import lru_cache
|
2
2
|
|
3
3
|
from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDb
|
4
|
-
from core.settings import get_cached_settings
|
5
|
-
from
|
4
|
+
from project.core.settings import get_cached_settings
|
5
|
+
from project.sqlalchemy_db_.sqlalchemy_model import get_simple_dbm
|
6
6
|
|
7
7
|
|
8
8
|
def create_sqlalchemy_db() -> SQLAlchemyDb | None:
|
@@ -9,22 +9,25 @@ from sqlalchemy.orm import mapped_column, Mapped
|
|
9
9
|
from arpakitlib.ar_datetime_util import now_utc_dt
|
10
10
|
from arpakitlib.ar_enumeration_util import Enumeration
|
11
11
|
from arpakitlib.ar_sqlalchemy_util import get_string_info_from_declarative_base, BaseDBM
|
12
|
-
from
|
12
|
+
from project.sqlalchemy_db_.util import generate_default_long_id
|
13
13
|
|
14
14
|
|
15
15
|
class SimpleDBM(BaseDBM):
|
16
16
|
__abstract__ = True
|
17
17
|
|
18
18
|
id: Mapped[int] = mapped_column(
|
19
|
-
sqlalchemy.INTEGER, primary_key=True, autoincrement=True, sort_order=-
|
19
|
+
sqlalchemy.INTEGER, primary_key=True, autoincrement=True, sort_order=-13, nullable=False
|
20
20
|
)
|
21
21
|
long_id: Mapped[str] = mapped_column(
|
22
22
|
sqlalchemy.TEXT, insert_default=generate_default_long_id, server_default=func.gen_random_uuid(),
|
23
|
-
unique=True, sort_order=-
|
23
|
+
unique=True, sort_order=-12, nullable=False
|
24
|
+
)
|
25
|
+
slug: Mapped[str | None] = mapped_column(
|
26
|
+
sqlalchemy.TEXT, unique=True, sort_order=-11, nullable=True
|
24
27
|
)
|
25
28
|
creation_dt: Mapped[datetime] = mapped_column(
|
26
29
|
sqlalchemy.TIMESTAMP(timezone=True), insert_default=now_utc_dt, server_default=func.now(),
|
27
|
-
index=True, sort_order=-
|
30
|
+
index=True, sort_order=-10, nullable=False
|
28
31
|
)
|
29
32
|
|
30
33
|
def __repr__(self):
|
@@ -0,0 +1,24 @@
|
|
1
|
+
from functools import lru_cache
|
2
|
+
|
3
|
+
from emoji import emojize
|
4
|
+
|
5
|
+
from arpakitlib.ar_blank_util import BaseBlank
|
6
|
+
|
7
|
+
|
8
|
+
class TgBotBlank(BaseBlank):
|
9
|
+
def hello_world(self) -> str:
|
10
|
+
res = ":smile: Hello world :smile:"
|
11
|
+
return emojize(res.strip())
|
12
|
+
|
13
|
+
def healthcheck(self) -> str:
|
14
|
+
res = "healthcheck"
|
15
|
+
return emojize(res.strip())
|
16
|
+
|
17
|
+
|
18
|
+
def create_tg_bot_blank() -> TgBotBlank:
|
19
|
+
return TgBotBlank()
|
20
|
+
|
21
|
+
|
22
|
+
@lru_cache()
|
23
|
+
def get_cached_tg_bot_blank() -> TgBotBlank:
|
24
|
+
return create_tg_bot_blank()
|
arpakitlib/{_arpakit_project_template_v_1 → _arpakit_project_template_v_2/project}/tg_bot/const.py
RENAMED
@@ -4,7 +4,7 @@ from arpakitlib.ar_enumeration_util import Enumeration
|
|
4
4
|
class TgBotCommands(Enumeration):
|
5
5
|
# public
|
6
6
|
healthcheck = "healthcheck"
|
7
|
-
|
7
|
+
arpakitlib_project_template_info = "arpakitlib_project_template_info"
|
8
8
|
start = "start"
|
9
9
|
about = "about"
|
10
10
|
|
@@ -0,0 +1,77 @@
|
|
1
|
+
import logging
|
2
|
+
from typing import Callable
|
3
|
+
|
4
|
+
from aiogram import Dispatcher
|
5
|
+
|
6
|
+
from arpakitlib.ar_base_worker_util import safe_run_worker_in_background, SafeRunInBackgroundModes
|
7
|
+
from project.core.cache_file_storage_in_dir import get_cached_cache_file_storage_in_dir
|
8
|
+
from project.core.dump_file_storage_in_dir import get_cached_dump_file_storage_in_dir
|
9
|
+
from project.core.media_file_storage_in_dir import get_cached_media_file_storage_in_dir
|
10
|
+
from project.core.settings import get_cached_settings
|
11
|
+
from project.json_db.json_db import get_cached_json_db
|
12
|
+
from project.operation_execution.operation_executor_worker import create_operation_executor_worker
|
13
|
+
from project.operation_execution.scheduled_operation_creator_worker import create_scheduled_operation_creator_worker
|
14
|
+
from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
15
|
+
|
16
|
+
_logger = logging.getLogger(__name__)
|
17
|
+
|
18
|
+
|
19
|
+
async def on_startup():
|
20
|
+
_logger.info("start")
|
21
|
+
|
22
|
+
if get_cached_media_file_storage_in_dir() is not None:
|
23
|
+
get_cached_media_file_storage_in_dir().init()
|
24
|
+
|
25
|
+
if get_cached_cache_file_storage_in_dir() is not None:
|
26
|
+
get_cached_cache_file_storage_in_dir().init()
|
27
|
+
|
28
|
+
if get_cached_dump_file_storage_in_dir() is not None:
|
29
|
+
get_cached_dump_file_storage_in_dir().init()
|
30
|
+
|
31
|
+
if (
|
32
|
+
get_cached_sqlalchemy_db() is not None
|
33
|
+
and get_cached_settings().api_init_sqlalchemy_db
|
34
|
+
):
|
35
|
+
get_cached_sqlalchemy_db().init()
|
36
|
+
|
37
|
+
if (
|
38
|
+
get_cached_json_db() is not None
|
39
|
+
and get_cached_settings().api_init_json_db
|
40
|
+
):
|
41
|
+
get_cached_json_db().init()
|
42
|
+
|
43
|
+
if get_cached_settings().api_start_operation_executor_worker:
|
44
|
+
_ = safe_run_worker_in_background(
|
45
|
+
worker=create_operation_executor_worker(),
|
46
|
+
mode=SafeRunInBackgroundModes.thread
|
47
|
+
)
|
48
|
+
|
49
|
+
if get_cached_settings().api_start_scheduled_operation_creator_worker:
|
50
|
+
_ = safe_run_worker_in_background(
|
51
|
+
worker=create_scheduled_operation_creator_worker(),
|
52
|
+
mode=SafeRunInBackgroundModes.async_task
|
53
|
+
)
|
54
|
+
|
55
|
+
_logger.info("finish")
|
56
|
+
|
57
|
+
|
58
|
+
async def on_shutdown(*args, **kwargs):
|
59
|
+
_logger.info("start")
|
60
|
+
_logger.info("finish")
|
61
|
+
|
62
|
+
|
63
|
+
def get_tg_bot_startup_events() -> list[Callable]:
|
64
|
+
res = [on_startup]
|
65
|
+
return res
|
66
|
+
|
67
|
+
|
68
|
+
def get_tg_bot_shutdown_events() -> list[Callable]:
|
69
|
+
res = [on_shutdown]
|
70
|
+
return res
|
71
|
+
|
72
|
+
|
73
|
+
def add_events_to_tg_bot_dispatcher(*, tg_bot_dispatcher: Dispatcher):
|
74
|
+
for tg_bot_event in get_tg_bot_startup_events():
|
75
|
+
tg_bot_dispatcher.startup.register(tg_bot_event)
|
76
|
+
for tg_bot_event in get_tg_bot_shutdown_events():
|
77
|
+
tg_bot_dispatcher.shutdown.register(tg_bot_event)
|