arpakitlib 1.7.253__tar.gz → 1.7.256__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/PKG-INFO +1 -1
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/alembic/env.py +4 -2
- arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/example.env +32 -0
- arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/manage/docker_run_postgres.sh +5 -0
- arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/api/create_api_app.py +43 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/event.py +4 -6
- arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/api/util.py +44 -0
- arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/json_db/_drop_json_db.py +13 -0
- arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/json_db/_init_json_db.py +11 -0
- arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/json_db/_reinit_json_db.py +13 -0
- arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/json_db/_rm_all_records_in_json_db.py +13 -0
- arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/json_db/json_db.py +11 -0
- arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/json_db/util.py +17 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/operation_execution/_start_operation_executor_worker.py +1 -1
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/operation_execution/_start_scheduled_operation_creator_worker.py +1 -1
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/_check_conn_sqlalchemy_db.py +1 -1
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/_drop_sqlalchemy_db.py +1 -1
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/_init_sqlalchemy_db.py +1 -1
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/_reinit_sqlalchemy_db.py +1 -1
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/_remove_operations.py +1 -1
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/_remove_story_logs.py +1 -1
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/util.py +4 -4
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/event.py +8 -2
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/start_tg_bot.py +1 -2
- arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot/util.py +44 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_aiogram_util.py +5 -17
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_arpakitlib_cli_util.py +5 -3
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_util.py +2 -2
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_json_db_util.py +7 -5
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_operation_execution_util.py +2 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_settings_util.py +68 -51
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_sqlalchemy_util.py +6 -22
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/pyproject.toml +1 -1
- arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/example.env +0 -23
- arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/manage/docker_run_postgres.sh +0 -5
- arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/api/create_api_app.py +0 -68
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/LICENSE +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/README.md +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/.gitignore +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/.python-version +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/ARPAKITLIB +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/LICENSE +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/README.md +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/alembic/README +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/alembic/script.py.mako +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/alembic.ini +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/alembic_upgrade_head .sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/docker_ps.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/docker_ps_a.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/docker_rm_postgres.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/docker_start_postgres.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/docker_stop_postgres.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_branch.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_commit.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_github_1.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_gitlab_1.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_github_1.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_push_arpakit_gitlab_1.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_remote_v.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_set_arpakit_company_origin.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_set_arpakit_origin.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/git_status.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/hello_world.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/json_beautify.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/note/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/note/note_1.txt +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/note/note_2.txt +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/note/note_3.txt +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/note/note_4.txt +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/note/note_5.txt +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_add_plugin_export.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_check.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_clear_cache.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_config.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_config_virtualenvs_in_project_true.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_install.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_lock.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_remove_and_add_arpakitlib.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_self_add_plugin_export.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_show.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_show_arpakitlib.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_update.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/manage/poetry_update_arpakitlib.sh +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/resource/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/resource/static/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/resource/static/healthcheck +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/resource/static/helloworld +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/additional_model/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/additional_model/additional_model.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/admin1/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/admin1/add_admin_in_app.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/admin1/admin_auth.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/admin1/model_view.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/_start_api_with_reload.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/_start_api_without_reload.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/asgi.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/auth.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/const.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/create_handle_exception_.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/router/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/router/main_router.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/router/v1/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/router/v1/get_api_error_info.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/router/v1/main_router.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/schema/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/schema/v1/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/schema/v1/in_.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/schema/v1/out.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/transmitted_api_data.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/business_service/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/business_service/hello_world.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/core/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/core/_check_logging.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/core/_generate_settings_env_example.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/core/_show_settings.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/core/const.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/core/settings.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/core/util.py +0 -0
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/just_script → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/json_db}/__init__.py +0 -0
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/operation_execution → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/just_script}/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/just_script/example.py +0 -0
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sandbox → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/operation_execution}/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/operation_execution/const.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/operation_execution/operation_executor.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/operation_execution/scheduled_operations.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/operation_execution/util.py +0 -0
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sandbox}/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/sandbox/sandbox_1.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/sandbox/sandbox_2.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/sandbox/sandbox_3.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/sandbox/sandbox_4.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/sandbox/sandbox_5.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/sandbox/sandbox_6.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/sandbox/sandbox_7.py +0 -0
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/test_data → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/__init__.py +0 -0
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/const.py +0 -0
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/sql_db → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/sqlalchemy_db}/sqlalchemy_model.py +0 -0
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/tg_bot → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/test_data}/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_1.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_2.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_3.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_4.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/test_data/make_test_data_5.py +0 -0
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/tg_bot/blank → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot}/__init__.py +0 -0
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/tg_bot/filter → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot/blank}/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/blank/blank.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/blank/util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/const.py +0 -0
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/tg_bot/handler → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot/filter}/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/filter/not_prod_mode.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/filter/prod_mode.py +0 -0
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/tg_bot/kb → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot/handler}/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/handler/cmd_arpakitlib.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/handler/cmd_healthcheck.py +0 -0
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/tg_bot/kb/inline_ → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot/kb}/__init__.py +0 -0
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/tg_bot/kb/static_ → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot/kb/inline_}/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/kb/inline_/callback.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/kb/inline_/common.py +0 -0
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/tg_bot/middleware → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot/kb/static_}/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/kb/static_/common.py +0 -0
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/tg_bot/router → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot/middleware}/__init__.py +0 -0
- {arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/util → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/tg_bot/router}/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/router/error.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/router/router.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/transmitted_tg_data.py +0 -0
- arpakitlib-1.7.253/arpakitlib/_arpakit_project_template/src/api/util.py → arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/util/__init__.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_additional_model_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_api_key_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_arpakit_lib_module_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_arpakit_project_template_util.py +1 -1
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_arpakit_schedule_uust_api_client_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_arpakit_schedule_uust_site_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_base64_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_base_worker_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_blank_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_cache_file_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_class_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_cryptomus_api_client_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_datetime_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_dict_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_dream_ai_api_client_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_encrypt_decrypt_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_enumeration_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_exception_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/healthcheck +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/redoc/redoc.standalone.js +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/favicon-16x16.png +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/favicon-32x32.png +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/index.css +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/index.html +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/oauth2-redirect.html +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-initializer.js +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-bundle.js +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-bundle.js.map +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle-core.js +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle-core.js.map +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle.js +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle.js.map +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-standalone-preset.js +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-standalone-preset.js.map +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css.map +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js.map +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_file_storage_in_dir_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_file_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_func_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_hash_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_http_request_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_ip_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_json_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_jwt_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_list_of_dicts_to_xlsx.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_list_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_logging_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_mongodb_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_need_type_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_openai_api_client_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_parse_command.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_postgresql_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_rat_func_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_retry_func_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_run_cmd_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_schedule_uust_api_client_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_sleep_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_sqladmin_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_sqlalchemy_model_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_ssh_runner_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_steam_payment_api_client_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_str_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_type_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_wata_api_client.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_yookassa_api_client_util.py +0 -0
- {arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/ar_zabbix_api_client_util.py +0 -0
{arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/alembic/env.py
RENAMED
@@ -4,14 +4,16 @@ from alembic import context
|
|
4
4
|
from sqlalchemy import engine_from_config
|
5
5
|
from sqlalchemy import pool
|
6
6
|
|
7
|
+
from arpakitlib.ar_type_util import raise_for_type
|
7
8
|
from src.core.settings import get_cached_settings
|
8
|
-
from src.
|
9
|
+
from src.sqlalchemy_db.util import get_base_dbm
|
9
10
|
|
10
11
|
# this is the Alembic Config object, which provides
|
11
12
|
# access to the values within the .ini file in use.
|
12
13
|
config = context.config
|
13
14
|
|
14
|
-
|
15
|
+
raise_for_type(get_cached_settings().sqlalchemy_sync_db_url, str)
|
16
|
+
config.set_section_option("alembic", "sqlalchemy.url", get_cached_settings().sqlalchemy_sync_db_url)
|
15
17
|
|
16
18
|
# Interpret the config file for Python logging.
|
17
19
|
# This line sets up loggers basically.
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# mode_type=
|
2
|
+
# project_name=
|
3
|
+
# sqlalchemy_db_user=
|
4
|
+
# sqlalchemy_db_password=
|
5
|
+
# sqlalchemy_db_host=
|
6
|
+
# sqlalchemy_db_port=
|
7
|
+
# sqlalchemy_db_database=
|
8
|
+
# sqlalchemy_sync_db_url=
|
9
|
+
# sqlalchemy_async_db_url=
|
10
|
+
# sqlalchemy_db_echo=
|
11
|
+
# api_port=
|
12
|
+
# api_init_sqlalchemy_db=
|
13
|
+
# api_init_json_db=
|
14
|
+
# api_logging__api_func_before_in_handle_exception=
|
15
|
+
# api_story_log__api_func_before_in_handle_exception=
|
16
|
+
# api_correct_api_key=
|
17
|
+
# api_correct_token=
|
18
|
+
# api_enable_admin1=
|
19
|
+
# api_start_operation_executor_worker=
|
20
|
+
# api_start_scheduled_operation_creator_worker=
|
21
|
+
# admin1_secret_key=
|
22
|
+
# tg_bot_token=
|
23
|
+
# tg_bot_proxy_url=
|
24
|
+
# tg_bot_init_sqlalchemy_db=
|
25
|
+
# tg_bot_init_json_db=
|
26
|
+
# var_dirpath=
|
27
|
+
# log_filepath=
|
28
|
+
# cache_dirpath=
|
29
|
+
# media_dirpath=
|
30
|
+
# dump_dirpath=
|
31
|
+
# local_timezone=
|
32
|
+
# json_db_dirpath=
|
@@ -0,0 +1,5 @@
|
|
1
|
+
cd ..
|
2
|
+
source .env
|
3
|
+
docker rm ${project_name}_postgres
|
4
|
+
docker run --name ${project_name}_postgres -d -p ${sqlalchemy_db_port}:5432 -e POSTGRES_USER=${sqlalchemy_db_user} -e POSTGRES_PASSWORD=${sqlalchemy_db_password} -e POSTGRES_DB=${sqlalchemy_db_database} postgres:16 -c max_connections=100
|
5
|
+
docker start ${project_name}_postgres
|
@@ -0,0 +1,43 @@
|
|
1
|
+
from fastapi import FastAPI
|
2
|
+
|
3
|
+
from arpakitlib.ar_fastapi_util import create_fastapi_app
|
4
|
+
from src.api.create_handle_exception_ import create_handle_exception_
|
5
|
+
from src.api.event import get_startup_api_events, get_shutdown_api_events
|
6
|
+
from src.api.router.main_router import main_api_router
|
7
|
+
from src.api.util import get_transmitted_api_data
|
8
|
+
from src.core.const import ProjectPaths
|
9
|
+
from src.core.util import setup_logging
|
10
|
+
|
11
|
+
|
12
|
+
def create_api_app() -> FastAPI:
|
13
|
+
setup_logging()
|
14
|
+
|
15
|
+
transmitted_api_data = get_transmitted_api_data()
|
16
|
+
|
17
|
+
handle_exception_ = create_handle_exception_(transmitted_api_data=transmitted_api_data)
|
18
|
+
|
19
|
+
startup_api_events = get_startup_api_events(transmitted_api_data=transmitted_api_data)
|
20
|
+
|
21
|
+
shutdown_api_events = get_shutdown_api_events(transmitted_api_data=transmitted_api_data)
|
22
|
+
|
23
|
+
api_app = create_fastapi_app(
|
24
|
+
title=transmitted_api_data.settings.project_name,
|
25
|
+
description=transmitted_api_data.settings.project_name,
|
26
|
+
handle_exception_=handle_exception_,
|
27
|
+
startup_api_events=startup_api_events,
|
28
|
+
shutdown_api_events=shutdown_api_events,
|
29
|
+
transmitted_api_data=transmitted_api_data,
|
30
|
+
main_api_router=main_api_router,
|
31
|
+
media_dirpath=transmitted_api_data.settings.media_dirpath,
|
32
|
+
static_dirpath=ProjectPaths.static_dirpath
|
33
|
+
)
|
34
|
+
|
35
|
+
if transmitted_api_data.settings.api_enable_admin1:
|
36
|
+
from src.admin1.add_admin_in_app import add_admin1_in_app
|
37
|
+
add_admin1_in_app(app=api_app)
|
38
|
+
|
39
|
+
return api_app
|
40
|
+
|
41
|
+
|
42
|
+
if __name__ == '__main__':
|
43
|
+
create_api_app()
|
{arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/api/event.py
RENAMED
@@ -1,8 +1,6 @@
|
|
1
1
|
from arpakitlib.ar_base_worker_util import safe_run_worker_in_background, SafeRunInBackgroundModes
|
2
2
|
from arpakitlib.ar_fastapi_util import BaseStartupAPIEvent, BaseShutdownAPIEvent
|
3
3
|
from arpakitlib.ar_operation_execution_util import OperationExecutorWorker, ScheduledOperationCreatorWorker
|
4
|
-
from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDb
|
5
|
-
from arpakitlib.ar_type_util import raise_for_type
|
6
4
|
from src.api.transmitted_api_data import TransmittedAPIData
|
7
5
|
from src.operation_execution.operation_executor import OperationExecutor
|
8
6
|
from src.operation_execution.scheduled_operations import SCHEDULED_OPERATIONS
|
@@ -28,12 +26,13 @@ class StartupAPIEvent(BaseStartupAPIEvent):
|
|
28
26
|
if self.transmitted_api_data.dump_file_storage_in_dir is not None:
|
29
27
|
self.transmitted_api_data.dump_file_storage_in_dir.init()
|
30
28
|
|
31
|
-
if self.transmitted_api_data.settings.
|
32
|
-
raise_for_type(self.transmitted_api_data.sqlalchemy_db, SQLAlchemyDb)
|
29
|
+
if self.transmitted_api_data.settings.api_init_sqlalchemy_db:
|
33
30
|
self.transmitted_api_data.sqlalchemy_db.init()
|
34
31
|
|
32
|
+
if self.transmitted_api_data.settings.api_init_json_db:
|
33
|
+
self.transmitted_api_data.json_db.init()
|
34
|
+
|
35
35
|
if self.transmitted_api_data.settings.api_start_operation_executor_worker: # TODO
|
36
|
-
raise_for_type(self.transmitted_api_data.sqlalchemy_db, SQLAlchemyDb)
|
37
36
|
_ = safe_run_worker_in_background(
|
38
37
|
worker=OperationExecutorWorker(
|
39
38
|
sqlalchemy_db=self.transmitted_api_data.sqlalchemy_db,
|
@@ -44,7 +43,6 @@ class StartupAPIEvent(BaseStartupAPIEvent):
|
|
44
43
|
)
|
45
44
|
|
46
45
|
if self.transmitted_api_data.settings.api_start_scheduled_operation_creator_worker: # TODO
|
47
|
-
raise_for_type(self.transmitted_api_data.sqlalchemy_db, SQLAlchemyDb)
|
48
46
|
_ = safe_run_worker_in_background(
|
49
47
|
worker=ScheduledOperationCreatorWorker(
|
50
48
|
sqlalchemy_db=self.transmitted_api_data.sqlalchemy_db,
|
@@ -0,0 +1,44 @@
|
|
1
|
+
from functools import lru_cache
|
2
|
+
|
3
|
+
from src.api.transmitted_api_data import TransmittedAPIData
|
4
|
+
from src.core.settings import get_cached_settings
|
5
|
+
from src.core.util import get_cached_media_file_storage_in_dir, get_cached_cache_file_storage_in_dir, \
|
6
|
+
get_cached_dump_file_storage_in_dir
|
7
|
+
from src.json_db.util import get_json_db
|
8
|
+
from src.sqlalchemy_db.util import get_cached_sqlalchemy_db
|
9
|
+
|
10
|
+
|
11
|
+
def create_transmitted_api_data() -> TransmittedAPIData:
|
12
|
+
settings = get_cached_settings()
|
13
|
+
|
14
|
+
sqlalchemy_db = get_cached_sqlalchemy_db() if settings.sqlalchemy_sync_db_url is not None else None
|
15
|
+
|
16
|
+
json_db = get_json_db() if settings.json_db_dirpath is not None else None
|
17
|
+
|
18
|
+
media_file_storage_in_dir = (
|
19
|
+
get_cached_media_file_storage_in_dir() if settings.media_dirpath is not None else None
|
20
|
+
)
|
21
|
+
|
22
|
+
cache_file_storage_in_dir = (
|
23
|
+
get_cached_cache_file_storage_in_dir() if settings.cache_dirpath is not None else None
|
24
|
+
)
|
25
|
+
|
26
|
+
dump_file_storage_in_dir = (
|
27
|
+
get_cached_dump_file_storage_in_dir() if settings.dump_dirpath is not None else None
|
28
|
+
)
|
29
|
+
|
30
|
+
transmitted_api_data = TransmittedAPIData(
|
31
|
+
sqlalchemy_db=sqlalchemy_db,
|
32
|
+
json_db=json_db,
|
33
|
+
media_file_storage_in_dir=media_file_storage_in_dir,
|
34
|
+
cache_file_storage_in_dir=cache_file_storage_in_dir,
|
35
|
+
dump_file_storage_in_dir=dump_file_storage_in_dir,
|
36
|
+
settings=settings
|
37
|
+
)
|
38
|
+
|
39
|
+
return transmitted_api_data
|
40
|
+
|
41
|
+
|
42
|
+
@lru_cache()
|
43
|
+
def get_transmitted_api_data() -> TransmittedAPIData:
|
44
|
+
return create_transmitted_api_data()
|
@@ -0,0 +1,13 @@
|
|
1
|
+
from src.core.settings import get_cached_settings
|
2
|
+
from src.core.util import setup_logging
|
3
|
+
from src.json_db.util import get_json_db
|
4
|
+
|
5
|
+
|
6
|
+
def _init_json_db():
|
7
|
+
setup_logging()
|
8
|
+
get_cached_settings().raise_if_mode_type_prod()
|
9
|
+
get_json_db().drop()
|
10
|
+
|
11
|
+
|
12
|
+
if __name__ == '__main__':
|
13
|
+
_init_json_db()
|
@@ -0,0 +1,13 @@
|
|
1
|
+
from src.core.settings import get_cached_settings
|
2
|
+
from src.core.util import setup_logging
|
3
|
+
from src.json_db.util import get_json_db
|
4
|
+
|
5
|
+
|
6
|
+
def _init_json_db():
|
7
|
+
setup_logging()
|
8
|
+
get_cached_settings().raise_if_mode_type_prod()
|
9
|
+
get_json_db().reinit()
|
10
|
+
|
11
|
+
|
12
|
+
if __name__ == '__main__':
|
13
|
+
_init_json_db()
|
arpakitlib-1.7.256/arpakitlib/_arpakit_project_template/src/json_db/_rm_all_records_in_json_db.py
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
from src.core.settings import get_cached_settings
|
2
|
+
from src.core.util import setup_logging
|
3
|
+
from src.json_db.util import get_json_db
|
4
|
+
|
5
|
+
|
6
|
+
def _init_json_db():
|
7
|
+
setup_logging()
|
8
|
+
get_cached_settings().raise_if_mode_type_prod()
|
9
|
+
get_json_db().rm_all_records()
|
10
|
+
|
11
|
+
|
12
|
+
if __name__ == '__main__':
|
13
|
+
_init_json_db()
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import os
|
2
|
+
|
3
|
+
from arpakitlib.ar_json_db_util import BaseJSONDb
|
4
|
+
|
5
|
+
|
6
|
+
class JSONDb(BaseJSONDb):
|
7
|
+
def __init__(self, dirpath: str):
|
8
|
+
super().__init__()
|
9
|
+
self.story_log = self.create_json_db_file(
|
10
|
+
filepath=os.path.join(dirpath, "story_log.json"), use_memory=True, beautify_json=False
|
11
|
+
)
|
@@ -0,0 +1,17 @@
|
|
1
|
+
from functools import lru_cache
|
2
|
+
|
3
|
+
from src.core.settings import get_cached_settings
|
4
|
+
from src.json_db.json_db import JSONDb
|
5
|
+
|
6
|
+
|
7
|
+
def create_json_db() -> JSONDb:
|
8
|
+
return JSONDb(
|
9
|
+
dirpath=get_cached_settings().json_db_dirpath
|
10
|
+
)
|
11
|
+
|
12
|
+
|
13
|
+
@lru_cache()
|
14
|
+
def get_json_db() -> JSONDb:
|
15
|
+
return JSONDb(
|
16
|
+
dirpath=get_cached_settings().json_db_dirpath
|
17
|
+
)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
from arpakitlib.ar_operation_execution_util import OperationExecutorWorker
|
2
2
|
from src.core.util import setup_logging
|
3
3
|
from src.operation_execution.operation_executor import OperationExecutor
|
4
|
-
from src.
|
4
|
+
from src.sqlalchemy_db.util import get_cached_sqlalchemy_db
|
5
5
|
|
6
6
|
|
7
7
|
def _start_operation_executor_worker():
|
@@ -1,7 +1,7 @@
|
|
1
1
|
from arpakitlib.ar_operation_execution_util import ScheduledOperationCreatorWorker
|
2
2
|
from src.core.util import setup_logging
|
3
3
|
from src.operation_execution.scheduled_operations import SCHEDULED_OPERATIONS
|
4
|
-
from src.
|
4
|
+
from src.sqlalchemy_db.util import get_cached_sqlalchemy_db
|
5
5
|
|
6
6
|
|
7
7
|
def _start_scheduled_operation_creator_worker():
|
@@ -1,7 +1,7 @@
|
|
1
1
|
from arpakitlib.ar_operation_execution_util import remove_operations
|
2
2
|
from src.core.settings import get_cached_settings
|
3
3
|
from src.core.util import setup_logging
|
4
|
-
from src.
|
4
|
+
from src.sqlalchemy_db.util import get_cached_sqlalchemy_db
|
5
5
|
|
6
6
|
|
7
7
|
def _remove_operations():
|
@@ -1,7 +1,7 @@
|
|
1
1
|
from arpakitlib.ar_sqlalchemy_model_util import StoryLogDBM
|
2
2
|
from src.core.settings import get_cached_settings
|
3
3
|
from src.core.util import setup_logging
|
4
|
-
from src.
|
4
|
+
from src.sqlalchemy_db.util import get_cached_sqlalchemy_db
|
5
5
|
|
6
6
|
|
7
7
|
def _remove_story_logs():
|
@@ -8,16 +8,16 @@ from src.core.settings import get_cached_settings
|
|
8
8
|
def get_base_dbm() -> type[BaseDBM]:
|
9
9
|
from arpakitlib.ar_sqlalchemy_model_util import import_ar_sqlalchemy_models
|
10
10
|
import_ar_sqlalchemy_models()
|
11
|
-
from src.
|
11
|
+
from src.sqlalchemy_db.sqlalchemy_model import import_project_sqlalchemy_models
|
12
12
|
import_project_sqlalchemy_models()
|
13
13
|
return BaseDBM
|
14
14
|
|
15
15
|
|
16
16
|
def create_sqlalchemy_db() -> SQLAlchemyDb:
|
17
17
|
return SQLAlchemyDb(
|
18
|
-
sync_db_url=get_cached_settings().
|
19
|
-
async_db_url=get_cached_settings().
|
20
|
-
db_echo=get_cached_settings().
|
18
|
+
sync_db_url=get_cached_settings().sqlalchemy_sync_db_url,
|
19
|
+
async_db_url=get_cached_settings().sqlalchemy_async_db_url,
|
20
|
+
db_echo=get_cached_settings().sqlalchemy_db_echo,
|
21
21
|
base_dbm=get_base_dbm()
|
22
22
|
)
|
23
23
|
|
{arpakitlib-1.7.253 → arpakitlib-1.7.256}/arpakitlib/_arpakit_project_template/src/tg_bot/event.py
RENAMED
@@ -9,7 +9,7 @@ class StartupTgBotEvent:
|
|
9
9
|
self.transmitted_tg_bot_data = transmitted_tg_bot_data
|
10
10
|
|
11
11
|
async def on_startup(self, *args, **kwargs):
|
12
|
-
self._logger.info("
|
12
|
+
self._logger.info("start")
|
13
13
|
|
14
14
|
if self.transmitted_tg_bot_data.media_file_storage_in_dir is not None:
|
15
15
|
self.transmitted_tg_bot_data.media_file_storage_in_dir.init()
|
@@ -20,7 +20,13 @@ class StartupTgBotEvent:
|
|
20
20
|
if self.transmitted_tg_bot_data.dump_file_storage_in_dir is not None:
|
21
21
|
self.transmitted_tg_bot_data.dump_file_storage_in_dir.init()
|
22
22
|
|
23
|
-
self.
|
23
|
+
if self.transmitted_tg_bot_data.settings.api_init_sqlalchemy_db:
|
24
|
+
self.transmitted_tg_bot_data.sqlalchemy_db.init()
|
25
|
+
|
26
|
+
if self.transmitted_tg_bot_data.settings.api_init_json_db:
|
27
|
+
self.transmitted_tg_bot_data.json_db.init()
|
28
|
+
|
29
|
+
self._logger.info("finish")
|
24
30
|
|
25
31
|
|
26
32
|
class ShutdownTgBotEvent:
|
@@ -0,0 +1,44 @@
|
|
1
|
+
from functools import lru_cache
|
2
|
+
|
3
|
+
from src.core.settings import get_cached_settings
|
4
|
+
from src.core.util import get_cached_media_file_storage_in_dir, get_cached_cache_file_storage_in_dir, \
|
5
|
+
get_cached_dump_file_storage_in_dir
|
6
|
+
from src.json_db.util import get_json_db
|
7
|
+
from src.sqlalchemy_db.util import get_cached_sqlalchemy_db
|
8
|
+
from src.tg_bot.transmitted_tg_data import TransmittedTgData
|
9
|
+
|
10
|
+
|
11
|
+
def create_transmitted_tg_bot_data() -> TransmittedTgData:
|
12
|
+
settings = get_cached_settings()
|
13
|
+
|
14
|
+
sqlalchemy_db = get_cached_sqlalchemy_db() if settings.sqlalchemy_sync_db_url is not None else None
|
15
|
+
|
16
|
+
json_db = get_json_db() if settings.json_db_dirpath is not None else None
|
17
|
+
|
18
|
+
media_file_storage_in_dir = (
|
19
|
+
get_cached_media_file_storage_in_dir() if settings.media_dirpath is not None else None
|
20
|
+
)
|
21
|
+
|
22
|
+
cache_file_storage_in_dir = (
|
23
|
+
get_cached_cache_file_storage_in_dir() if settings.cache_dirpath is not None else None
|
24
|
+
)
|
25
|
+
|
26
|
+
dump_file_storage_in_dir = (
|
27
|
+
get_cached_dump_file_storage_in_dir() if settings.dump_dirpath is not None else None
|
28
|
+
)
|
29
|
+
|
30
|
+
transmitted_api_data = TransmittedTgData(
|
31
|
+
sqlalchemy_db=sqlalchemy_db,
|
32
|
+
json_db=json_db,
|
33
|
+
media_file_storage_in_dir=media_file_storage_in_dir,
|
34
|
+
cache_file_storage_in_dir=cache_file_storage_in_dir,
|
35
|
+
dump_file_storage_in_dir=dump_file_storage_in_dir,
|
36
|
+
settings=settings
|
37
|
+
)
|
38
|
+
|
39
|
+
return transmitted_api_data
|
40
|
+
|
41
|
+
|
42
|
+
@lru_cache()
|
43
|
+
def get_transmitted_tg_bot_data() -> TransmittedTgData:
|
44
|
+
return create_transmitted_tg_bot_data()
|
@@ -4,7 +4,7 @@ import asyncio
|
|
4
4
|
import logging
|
5
5
|
from typing import Optional, Any, Union, Callable, Iterable
|
6
6
|
|
7
|
-
from aiogram import types, Bot
|
7
|
+
from aiogram import types, Bot
|
8
8
|
from aiogram.client.default import DefaultBotProperties
|
9
9
|
from aiogram.client.session.aiohttp import AiohttpSession
|
10
10
|
from aiogram.enums import ChatType, ParseMode
|
@@ -14,10 +14,10 @@ from aiogram.filters.callback_data import CallbackData
|
|
14
14
|
from pydantic import BaseModel, ConfigDict
|
15
15
|
|
16
16
|
from arpakitlib.ar_file_storage_in_dir_util import FileStorageInDir
|
17
|
-
from arpakitlib.ar_json_db_util import
|
17
|
+
from arpakitlib.ar_json_db_util import BaseJSONDb
|
18
18
|
from arpakitlib.ar_need_type_util import parse_need_type, NeedTypes
|
19
19
|
from arpakitlib.ar_parse_command import BadCommandFormat, parse_command
|
20
|
-
from arpakitlib.ar_settings_util import
|
20
|
+
from arpakitlib.ar_settings_util import BaseSettings2
|
21
21
|
from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDb
|
22
22
|
from arpakitlib.ar_type_util import raise_for_types, raise_for_type
|
23
23
|
|
@@ -325,7 +325,7 @@ class SimpleTransmittedTgBotData(BaseTransmittedTgBotData):
|
|
325
325
|
|
326
326
|
class AdvancedTransmittedTgBotData(SimpleTransmittedTgBotData):
|
327
327
|
sqlalchemy_db: SQLAlchemyDb | None = None
|
328
|
-
json_db:
|
328
|
+
json_db: BaseJSONDb | None = None
|
329
329
|
media_file_storage_in_dir: FileStorageInDir | None = None
|
330
330
|
cache_file_storage_in_dir: FileStorageInDir | None = None
|
331
331
|
dump_file_storage_in_dir: FileStorageInDir | None = None
|
@@ -334,7 +334,7 @@ class AdvancedTransmittedTgBotData(SimpleTransmittedTgBotData):
|
|
334
334
|
def create_aiogram_tg_bot(*, token: str, proxy_url_: str | None = None, **kwargs) -> Bot:
|
335
335
|
kwargs["token"] = token
|
336
336
|
|
337
|
-
if proxy_url_:
|
337
|
+
if proxy_url_ is not None:
|
338
338
|
kwargs["session"] = AiohttpSession(proxy=proxy_url_)
|
339
339
|
|
340
340
|
if kwargs.get("default") is None:
|
@@ -349,18 +349,6 @@ def create_aiogram_tg_bot(*, token: str, proxy_url_: str | None = None, **kwargs
|
|
349
349
|
return tg_bot
|
350
350
|
|
351
351
|
|
352
|
-
# def create_tg_bot_dispatcher(
|
353
|
-
# *,
|
354
|
-
# settings:
|
355
|
-
# ):
|
356
|
-
# tg_dp = Dispatcher(
|
357
|
-
# storage=MemoryStorage(),
|
358
|
-
# settings=get_settings(),
|
359
|
-
# db=db,
|
360
|
-
# transmitted_tg_bot_data=transmitted_tg_bot_data
|
361
|
-
# )
|
362
|
-
|
363
|
-
|
364
352
|
def __example():
|
365
353
|
pass
|
366
354
|
|
@@ -27,10 +27,12 @@ def execute_arpakitlib_cli(*, full_command: str | None = None):
|
|
27
27
|
print("Commands:")
|
28
28
|
print()
|
29
29
|
print("-c init_arpakit_project_template")
|
30
|
-
print("-project_dirpath ...")
|
31
30
|
print("-overwrite_if_exists ...")
|
32
31
|
print("-ignore_paths_startswith ...")
|
33
32
|
print("-only_paths_startswith ...")
|
33
|
+
print("-param1 ...")
|
34
|
+
print("-param2 ...")
|
35
|
+
print("-param3 ...")
|
34
36
|
print("\n")
|
35
37
|
|
36
38
|
elif command == "init_arpakit_project_template":
|
@@ -54,9 +56,9 @@ def execute_arpakitlib_cli(*, full_command: str | None = None):
|
|
54
56
|
init_arpakit_project_template(
|
55
57
|
project_dirpath=project_dirpath,
|
56
58
|
overwrite_if_exists=overwrite_if_exists,
|
57
|
-
params=params,
|
58
59
|
ignore_paths_startswith=ignore_paths_startswith,
|
59
|
-
only_paths_startswith=only_paths_startswith
|
60
|
+
only_paths_startswith=only_paths_startswith,
|
61
|
+
params=params,
|
60
62
|
)
|
61
63
|
|
62
64
|
else:
|
@@ -31,7 +31,7 @@ from arpakitlib.ar_enumeration_util import Enumeration
|
|
31
31
|
from arpakitlib.ar_exception_util import exception_to_traceback_str
|
32
32
|
from arpakitlib.ar_file_storage_in_dir_util import FileStorageInDir
|
33
33
|
from arpakitlib.ar_func_util import raise_if_not_async_func, is_async_object
|
34
|
-
from arpakitlib.ar_json_db_util import
|
34
|
+
from arpakitlib.ar_json_db_util import BaseJSONDb
|
35
35
|
from arpakitlib.ar_json_util import safely_transfer_obj_to_json_str_to_json_obj, safely_transfer_obj_to_json_str
|
36
36
|
from arpakitlib.ar_settings_util import BaseSettings2
|
37
37
|
from arpakitlib.ar_sqlalchemy_model_util import StoryLogDBM, OperationDBM
|
@@ -538,7 +538,7 @@ class SimpleTransmittedAPIData(BaseTransmittedAPIData):
|
|
538
538
|
|
539
539
|
class AdvancedTransmittedAPIData(SimpleTransmittedAPIData):
|
540
540
|
sqlalchemy_db: SQLAlchemyDb | None = None
|
541
|
-
json_db:
|
541
|
+
json_db: BaseJSONDb | None = None
|
542
542
|
media_file_storage_in_dir: FileStorageInDir | None = None
|
543
543
|
cache_file_storage_in_dir: FileStorageInDir | None = None
|
544
544
|
dump_file_storage_in_dir: FileStorageInDir | None = None
|
@@ -13,7 +13,7 @@ _ARPAKIT_LIB_MODULE_VERSION = "3.0"
|
|
13
13
|
|
14
14
|
class JSONDbFile:
|
15
15
|
|
16
|
-
def __init__(self, *, filepath: str, use_memory: bool = True, beautify_json: bool = True):
|
16
|
+
def __init__(self, *, filepath: str, use_memory: bool = True, beautify_json: bool = True, **kwargs):
|
17
17
|
self._logger = logging.getLogger(self.__class__.__name__)
|
18
18
|
raise_for_type(filepath, str)
|
19
19
|
filepath = os.path.abspath(filepath.strip())
|
@@ -173,9 +173,9 @@ class JSONDbFile:
|
|
173
173
|
os.remove(self.filepath)
|
174
174
|
|
175
175
|
|
176
|
-
class
|
176
|
+
class BaseJSONDb:
|
177
177
|
|
178
|
-
def __init__(self, json_db_files:
|
178
|
+
def __init__(self, json_db_files: list[JSONDbFile] | None = None, **kwargs):
|
179
179
|
self._logger = logging.getLogger(self.__class__.__name__)
|
180
180
|
if json_db_files is None:
|
181
181
|
json_db_files = []
|
@@ -190,7 +190,9 @@ class JSONDb:
|
|
190
190
|
def __len__(self) -> int:
|
191
191
|
return len(self.json_db_files)
|
192
192
|
|
193
|
-
def create_json_db_file(
|
193
|
+
def create_json_db_file(
|
194
|
+
self, filepath: str, use_memory: bool = False, beautify_json: bool = False, **kwargs
|
195
|
+
) -> JSONDbFile:
|
194
196
|
json_db_file = JSONDbFile(filepath=filepath, use_memory=use_memory, beautify_json=beautify_json)
|
195
197
|
self.json_db_files.append(json_db_file)
|
196
198
|
return json_db_file
|
@@ -215,7 +217,7 @@ class JSONDb:
|
|
215
217
|
json_db_file.rm_all_records()
|
216
218
|
|
217
219
|
def copy_files_to_dir(self, to_dirpath: str) -> Self:
|
218
|
-
json_db =
|
220
|
+
json_db = BaseJSONDb()
|
219
221
|
for json_db_file in self.json_db_files:
|
220
222
|
filepath = os.path.join(to_dirpath, json_db_file.filename)
|
221
223
|
json_db_file.copy(filepath)
|
@@ -322,6 +322,7 @@ class OperationExecutorWorker(BaseWorker):
|
|
322
322
|
timeout_after_err_in_run=timedelta(seconds=0.3),
|
323
323
|
startup_funcs=startup_funcs,
|
324
324
|
)
|
325
|
+
raise_for_type(sqlalchemy_db, SQLAlchemyDb)
|
325
326
|
self.sqlalchemy_db = sqlalchemy_db
|
326
327
|
if operation_executor is None:
|
327
328
|
operation_executor = BaseOperationExecutor(sqlalchemy_db=sqlalchemy_db)
|
@@ -393,6 +394,7 @@ class ScheduledOperationCreatorWorker(BaseWorker):
|
|
393
394
|
timeout_after_err_in_run=timedelta(seconds=0.3),
|
394
395
|
startup_funcs=startup_funcs
|
395
396
|
)
|
397
|
+
raise_for_type(sqlalchemy_db, SQLAlchemyDb)
|
396
398
|
self.sqlalchemy_db = sqlalchemy_db
|
397
399
|
if scheduled_operations is None:
|
398
400
|
scheduled_operations = []
|