arpakitlib 1.8.0__py3-none-any.whl → 1.8.2__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_v1 → _arpakit_project_template_v_1}/api/auth.py +17 -26
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/create_api_app.py +22 -23
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/event.py +20 -15
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/exception.py +1 -2
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/exception_handler.py +47 -36
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/response.py +7 -3
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/router/main_router.py +1 -1
- arpakitlib/_arpakit_project_template_v_1/api/router/v1/arpakit_project_template.py +22 -0
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/router/v1/check_auth.py +7 -7
- arpakitlib/_arpakit_project_template_v_1/api/router/v1/clear_log_file.py +25 -0
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/router/v1/get_errors_info.py +2 -2
- arpakitlib/_arpakit_project_template_v_1/api/router/v1/get_log_file.py +23 -0
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/router/v1/healthcheck.py +2 -2
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/router/v1/main_router.py +16 -3
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/router/v1/now_utc_datetime.py +2 -2
- arpakitlib/_arpakit_project_template_v_1/api/router/v1/raise_fake_error.py +35 -0
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/schema/v1/out.py +0 -6
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/drop_json_db.py +2 -2
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/init_json_db.py +2 -2
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/reinit_json_db.py +2 -2
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/rm_all_records_in_json_db.py +2 -2
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/core/cache_file_storage_in_dir.py +4 -2
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/core/const.py +5 -6
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/core/dump_file_storage_in_dir.py +4 -2
- arpakitlib/_arpakit_project_template_v_1/core/jinja2_templates.py +14 -0
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/core/media_file_storage_in_dir.py +4 -2
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/core/settings.py +7 -5
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/example.env +3 -2
- arpakitlib/_arpakit_project_template_v_1/json_db/json_db.py +28 -0
- arpakitlib/_arpakit_project_template_v_1/resource/static/healthcheck +1 -0
- arpakitlib/_arpakit_project_template_v_1/site/router/main_router.py +3 -0
- arpakitlib/_arpakit_project_template_v_1/sqladmin_/add_admin_in_app.py +24 -0
- arpakitlib/_arpakit_project_template_v_1/sqladmin_/admin_auth.py +54 -0
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/sqlalchemy_db/sqlalchemy_db.py +5 -2
- arpakitlib/_arpakit_project_template_v_1/tg_bot/kb/inline_/common.py +0 -0
- arpakitlib/_arpakit_project_template_v_1/tg_bot/kb/static_/__init__.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/__init__.py +0 -0
- arpakitlib/_arpakit_project_template_v_1/tg_bot/router/__init__.py +0 -0
- arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/tg_bot/transmitted_tg_data.py +2 -2
- arpakitlib/_arpakit_project_template_v_1/tg_bot/util.py +0 -0
- arpakitlib/_arpakit_project_template_v_1/util/__init__.py +0 -0
- arpakitlib/ar_arpakit_project_template_util.py +3 -1
- arpakitlib/ar_arpakitlib_cli_util.py +0 -3
- {arpakitlib-1.8.0.dist-info → arpakitlib-1.8.2.dist-info}/METADATA +1 -1
- arpakitlib-1.8.2.dist-info/RECORD +261 -0
- arpakitlib/_arpakit_project_template_v1/admin1/add_admin_in_app.py +0 -26
- arpakitlib/_arpakit_project_template_v1/admin1/admin_auth.py +0 -25
- arpakitlib/_arpakit_project_template_v1/api/router/v1/arpakitlib_.py +0 -27
- arpakitlib/_arpakit_project_template_v1/api/router/v1/raise_fake_error.py +0 -21
- arpakitlib/_arpakit_project_template_v1/api/transmitted_api_data.py +0 -66
- arpakitlib/_arpakit_project_template_v1/json_db/json_db.py +0 -11
- arpakitlib/_arpakit_project_template_v1/json_db/util.py +0 -17
- arpakitlib-1.8.0.dist-info/RECORD +0 -251
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/.gitignore +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/.python-version +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/LICENSE +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/README.md +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/additional_model/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/additional_model/additional_model.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/alembic/README +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/alembic/env.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/alembic/script.py.mako +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/alembic.ini +0 -0
- /arpakitlib/{_arpakit_project_template_v1/admin1 → _arpakit_project_template_v_1/api}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/asgi.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/const.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/openapi_ui.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1/api → _arpakit_project_template_v_1/api/router}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1/api/router → _arpakit_project_template_v_1/api/router/v1}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1/api/router/v1 → _arpakit_project_template_v_1/api/schema}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/schema/base_schema.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1/api/schema → _arpakit_project_template_v_1/api/schema/common}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/schema/common/in_.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/schema/common/out.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1/api/schema/common → _arpakit_project_template_v_1/api/schema/v1}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/schema/v1/in_.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/util.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/arpakitlib_project_template.json +0 -0
- /arpakitlib/{_arpakit_project_template_v1/api/schema/v1 → _arpakit_project_template_v_1/business_service}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/business_service/hello_world.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/business_service/remove_operations.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1/business_service → _arpakit_project_template_v_1/celery_}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/alembic_history.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/alembic_revision_autogenerate.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/alembic_upgrade_head .sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/beautify_json.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/check_logging.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/check_sqlalchemy_db.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/docker_ps_a.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/docker_rm_postgres.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/docker_run_postgres.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/docker_start_postgres.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/docker_stop_postgres.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/drop_sqlalchemy_db.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/generate_settings_env_example.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/git_commit.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/git_push_arpakit_company_github_1.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/git_push_arpakit_company_gitlab_1.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/git_push_arpakit_github_1.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/git_push_arpakit_gitlab_1.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/git_remote.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/git_set_arpakit_company_origin.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/git_set_arpakit_origin.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/git_status.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/hello_world.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/init_sqlalchemy_db.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/poetry_check.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/poetry_clear_cache.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/poetry_config.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/poetry_install.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/poetry_lock.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/poetry_remove_and_add_arpakitlib.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/poetry_show.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/poetry_show_arpakitlib.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/poetry_update.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/poetry_update_arpakitlib.sh +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/reinit_sqlalchemy_db.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/remove_operations.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/remove_story_logs.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/show_settings.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/start_api_with_reload.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/start_api_without_reload.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/start_async_operation_executor_worker.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/start_async_scheduled_operation_creator_worker.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/start_sync_operation_executor_worker.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/start_sync_operation_executor_workers.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/start_sync_scheduled_operation_creator_worker.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/core/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/core/util.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/json_db/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/note/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/note/note_1.txt +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/note/note_2.txt +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/note/note_3.txt +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/note/note_4.txt +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/note/note_5.txt +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/operation_execution/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/operation_execution/const.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/operation_execution/operation_executor_worker.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/operation_execution/scheduled_operation_creator_worker.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/operation_execution/scheduled_operations.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/operation_execution/util.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1/resource/static/healthcheck → _arpakit_project_template_v_1/resource/static/1} +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/helloworld +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/openapi-favicon.png +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/redoc/redoc.standalone.js +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/swagger-ui/favicon-16x16.png +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/swagger-ui/favicon-32x32.png +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/swagger-ui/index.css +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/swagger-ui/index.html +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/swagger-ui/oauth2-redirect.html +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/swagger-ui/swagger-initializer.js +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/swagger-ui/swagger-ui-bundle.js +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/swagger-ui/swagger-ui-bundle.js.map +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/swagger-ui/swagger-ui-es-bundle-core.js +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/swagger-ui/swagger-ui-es-bundle-core.js.map +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/swagger-ui/swagger-ui-es-bundle.js +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/swagger-ui/swagger-ui-es-bundle.js.map +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/swagger-ui/swagger-ui-standalone-preset.js +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/swagger-ui/swagger-ui-standalone-preset.js.map +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/swagger-ui/swagger-ui.css +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/swagger-ui/swagger-ui.css.map +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/swagger-ui/swagger-ui.js +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/resource/static/swagger-ui/swagger-ui.js.map +0 -0
- /arpakitlib/{_arpakit_project_template_v1/resource/static → _arpakit_project_template_v_1/sandbox}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/sandbox/sandbox_1.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/sandbox/sandbox_2.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/sandbox/sandbox_3.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/sandbox/sandbox_4.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/sandbox/sandbox_5.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/sandbox/sandbox_6.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/sandbox/sandbox_7.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1/sandbox → _arpakit_project_template_v_1/site}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1/sqlalchemy_db/__init__.py → _arpakit_project_template_v_1/site/asgi.py} +0 -0
- /arpakitlib/{_arpakit_project_template_v1/test_data/__init__.py → _arpakit_project_template_v_1/site/consts.py} +0 -0
- /arpakitlib/{_arpakit_project_template_v1/tg_bot/__init__.py → _arpakit_project_template_v_1/site/create_site_app.py} +0 -0
- /arpakitlib/{_arpakit_project_template_v1/tg_bot/blank/__init__.py → _arpakit_project_template_v_1/site/event.py} +0 -0
- /arpakitlib/{_arpakit_project_template_v1/tg_bot/filter/__init__.py → _arpakit_project_template_v_1/site/exception_handler.py} +0 -0
- /arpakitlib/{_arpakit_project_template_v1/tg_bot/kb → _arpakit_project_template_v_1/site/router}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1/tg_bot/kb/inline_ → _arpakit_project_template_v_1/sqladmin_}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1/admin1 → _arpakit_project_template_v_1/sqladmin_}/model_view.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1/tg_bot/kb/static_ → _arpakit_project_template_v_1/sqlalchemy_db}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/sqlalchemy_db/const.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/sqlalchemy_db/sqlalchemy_model.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/sqlalchemy_db/util.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1/tg_bot/middleware → _arpakit_project_template_v_1/test_data}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/test_data/make_test_data_1.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/test_data/make_test_data_2.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/test_data/make_test_data_3.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/test_data/make_test_data_4.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/test_data/make_test_data_5.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1/tg_bot/router → _arpakit_project_template_v_1/tg_bot}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1/util → _arpakit_project_template_v_1/tg_bot/blank}/__init__.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/tg_bot/blank/blank.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/tg_bot/blank/util.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/tg_bot/const.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/tg_bot/event.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1/tg_bot/kb/inline_/callback.py → _arpakit_project_template_v_1/tg_bot/filter/__init__.py} +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/tg_bot/filter/not_prod_mode.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/tg_bot/filter/prod_mode.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1/tg_bot/kb/inline_/common.py → _arpakit_project_template_v_1/tg_bot/kb/__init__.py} +0 -0
- /arpakitlib/{_arpakit_project_template_v1/tg_bot/kb/static_/common.py → _arpakit_project_template_v_1/tg_bot/kb/inline_/__init__.py} +0 -0
- /arpakitlib/{_arpakit_project_template_v1/tg_bot/util.py → _arpakit_project_template_v_1/tg_bot/kb/inline_/callback.py} +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/tg_bot/middleware/init_user.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/tg_bot/middleware/middleware.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/tg_bot/router/arpakitlib_.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/tg_bot/router/error.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/tg_bot/router/healthcheck.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/tg_bot/router/main_router.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/tg_bot/start_tg_bot.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/tg_bot/tg_bot.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/tg_bot/tg_bot_dispatcher.py +0 -0
- /arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/util/read_arpakitlib_project_template_file.py +0 -0
- {arpakitlib-1.8.0.dist-info → arpakitlib-1.8.2.dist-info}/LICENSE +0 -0
- {arpakitlib-1.8.0.dist-info → arpakitlib-1.8.2.dist-info}/WHEEL +0 -0
- {arpakitlib-1.8.0.dist-info → arpakitlib-1.8.2.dist-info}/entry_points.txt +0 -0
@@ -1,7 +1,7 @@
|
|
1
1
|
from fastapi import APIRouter
|
2
2
|
|
3
|
-
from api.router.v1 import healthcheck, get_errors_info, now_utc_datetime
|
4
|
-
from api.router.v1 import raise_fake_error, check_auth
|
3
|
+
from api.router.v1 import healthcheck, get_errors_info, now_utc_datetime, clear_log_file, get_log_file
|
4
|
+
from api.router.v1 import raise_fake_error, check_auth
|
5
5
|
|
6
6
|
main_v1_api_router = APIRouter()
|
7
7
|
|
@@ -45,10 +45,23 @@ main_v1_api_router.include_router(
|
|
45
45
|
tags=["Fake error"]
|
46
46
|
)
|
47
47
|
|
48
|
-
#
|
48
|
+
# Now UTC Datetime
|
49
49
|
|
50
50
|
main_v1_api_router.include_router(
|
51
51
|
router=now_utc_datetime.api_router,
|
52
52
|
prefix="/now_utc_datetime",
|
53
53
|
tags=["Now UTC datetime"]
|
54
54
|
)
|
55
|
+
|
56
|
+
# Log file
|
57
|
+
|
58
|
+
main_v1_api_router.include_router(
|
59
|
+
router=clear_log_file.api_router,
|
60
|
+
prefix="/clear_log_file",
|
61
|
+
tags=["Log file"]
|
62
|
+
)
|
63
|
+
main_v1_api_router.include_router(
|
64
|
+
router=get_log_file.api_router,
|
65
|
+
prefix="/get_log_file",
|
66
|
+
tags=["Log file"]
|
67
|
+
)
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import fastapi
|
2
|
-
import starlette.status
|
3
2
|
from fastapi import APIRouter
|
4
3
|
|
5
4
|
from api.schema.common.out import ErrorCommonSO, DatetimeCommonSO
|
@@ -10,8 +9,9 @@ api_router = APIRouter()
|
|
10
9
|
|
11
10
|
@api_router.get(
|
12
11
|
"",
|
12
|
+
name="Now UTC datetime",
|
13
|
+
status_code=fastapi.status.HTTP_200_OK,
|
13
14
|
response_model=DatetimeCommonSO | ErrorCommonSO,
|
14
|
-
status_code=starlette.status.HTTP_200_OK
|
15
15
|
)
|
16
16
|
async def _(
|
17
17
|
*,
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import fastapi
|
2
|
+
import starlette.exceptions
|
3
|
+
from fastapi import APIRouter
|
4
|
+
|
5
|
+
from api.schema.common.out import ErrorCommonSO
|
6
|
+
|
7
|
+
api_router = APIRouter()
|
8
|
+
|
9
|
+
|
10
|
+
@api_router.get(
|
11
|
+
"",
|
12
|
+
name="Raise fake error",
|
13
|
+
response_model=ErrorCommonSO,
|
14
|
+
status_code=fastapi.status.HTTP_500_INTERNAL_SERVER_ERROR
|
15
|
+
)
|
16
|
+
async def _(
|
17
|
+
*,
|
18
|
+
request: fastapi.requests.Request,
|
19
|
+
response: fastapi.responses.Response,
|
20
|
+
n: int | None = None
|
21
|
+
):
|
22
|
+
if n == 1:
|
23
|
+
raise fastapi.HTTPException(
|
24
|
+
detail={"n": n},
|
25
|
+
status_code=fastapi.status.HTTP_500_INTERNAL_SERVER_ERROR
|
26
|
+
)
|
27
|
+
elif n == 2:
|
28
|
+
raise starlette.exceptions.HTTPException(
|
29
|
+
detail=f"fake_error, n={n}",
|
30
|
+
status_code=fastapi.status.HTTP_500_INTERNAL_SERVER_ERROR
|
31
|
+
)
|
32
|
+
elif n == 3:
|
33
|
+
raise ValueError(f"fake error n={n}")
|
34
|
+
else:
|
35
|
+
raise Exception(f"fake error, n={n}")
|
arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/api/schema/v1/out.py
RENAMED
@@ -15,12 +15,6 @@ class HealthcheckV1SO(BaseV1SO):
|
|
15
15
|
is_ok: bool = True
|
16
16
|
|
17
17
|
|
18
|
-
class ARPAKITLIBInfoV1SO(BaseV1SO):
|
19
|
-
arpakitlib: bool = True
|
20
|
-
arpakitlib_project_template_version: str
|
21
|
-
data: dict[str, Any] = {}
|
22
|
-
|
23
|
-
|
24
18
|
class _SimpleDBMV1SO(BaseV1SO):
|
25
19
|
id: int
|
26
20
|
long_id: str
|
arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/drop_json_db.py
RENAMED
@@ -1,12 +1,12 @@
|
|
1
1
|
from core.settings import get_cached_settings
|
2
2
|
from core.util import setup_logging
|
3
|
-
from json_db.
|
3
|
+
from json_db.json_db import get_cached_json_db
|
4
4
|
|
5
5
|
|
6
6
|
def __command():
|
7
7
|
setup_logging()
|
8
8
|
get_cached_settings().raise_if_mode_type_prod()
|
9
|
-
|
9
|
+
get_cached_json_db().drop()
|
10
10
|
|
11
11
|
|
12
12
|
if __name__ == '__main__':
|
arpakitlib/{_arpakit_project_template_v1 → _arpakit_project_template_v_1}/command/reinit_json_db.py
RENAMED
@@ -1,12 +1,12 @@
|
|
1
1
|
from core.settings import get_cached_settings
|
2
2
|
from core.util import setup_logging
|
3
|
-
from json_db.
|
3
|
+
from json_db.json_db import get_cached_json_db
|
4
4
|
|
5
5
|
|
6
6
|
def __command():
|
7
7
|
setup_logging()
|
8
8
|
get_cached_settings().raise_if_mode_type_prod()
|
9
|
-
|
9
|
+
get_cached_json_db().reinit()
|
10
10
|
|
11
11
|
|
12
12
|
if __name__ == '__main__':
|
@@ -1,12 +1,12 @@
|
|
1
1
|
from core.settings import get_cached_settings
|
2
2
|
from core.util import setup_logging
|
3
|
-
from json_db.
|
3
|
+
from json_db.json_db import get_cached_json_db
|
4
4
|
|
5
5
|
|
6
6
|
def __command():
|
7
7
|
setup_logging()
|
8
8
|
get_cached_settings().raise_if_mode_type_prod()
|
9
|
-
|
9
|
+
get_cached_json_db().rm_all_records()
|
10
10
|
|
11
11
|
|
12
12
|
if __name__ == '__main__':
|
@@ -4,12 +4,14 @@ from arpakitlib.ar_file_storage_in_dir_util import FileStorageInDir
|
|
4
4
|
from core.settings import get_cached_settings
|
5
5
|
|
6
6
|
|
7
|
-
def create_cache_file_storage_in_dir() -> FileStorageInDir:
|
7
|
+
def create_cache_file_storage_in_dir() -> FileStorageInDir | None:
|
8
|
+
if get_cached_settings().cache_dirpath is None:
|
9
|
+
return None
|
8
10
|
return FileStorageInDir(dirpath=get_cached_settings().cache_dirpath)
|
9
11
|
|
10
12
|
|
11
13
|
@lru_cache()
|
12
|
-
def get_cached_cache_file_storage_in_dir() -> FileStorageInDir:
|
14
|
+
def get_cached_cache_file_storage_in_dir() -> FileStorageInDir | None:
|
13
15
|
return create_cache_file_storage_in_dir()
|
14
16
|
|
15
17
|
|
@@ -9,14 +9,13 @@ from arpakitlib.ar_json_util import safely_transfer_obj_to_json_str
|
|
9
9
|
class ProjectPaths(Enumeration):
|
10
10
|
base_dirpath: str = str(pathlib.Path(__file__).parent.parent)
|
11
11
|
|
12
|
-
|
13
|
-
env_filepath: str = os.path.join(base_dirpath, env_filename)
|
12
|
+
env_filepath: str = os.path.join(base_dirpath, ".env")
|
14
13
|
|
15
|
-
|
16
|
-
resource_dirpath: str = os.path.join(base_dirpath, resource_dirname)
|
14
|
+
resource_dirpath: str = os.path.join(base_dirpath, "resource")
|
17
15
|
|
18
|
-
|
19
|
-
|
16
|
+
static_dirpath: str = os.path.join(resource_dirpath, "static")
|
17
|
+
|
18
|
+
templates_dirpath: str = os.path.join(resource_dirpath, "templates")
|
20
19
|
|
21
20
|
arpakit_lib_project_template_filepath: str = os.path.join(base_dirpath, "arpakitlib_project_template.json")
|
22
21
|
|
@@ -4,12 +4,14 @@ from arpakitlib.ar_file_storage_in_dir_util import FileStorageInDir
|
|
4
4
|
from core.settings import get_cached_settings
|
5
5
|
|
6
6
|
|
7
|
-
def create_dump_file_storage_in_dir() -> FileStorageInDir:
|
7
|
+
def create_dump_file_storage_in_dir() -> FileStorageInDir | None:
|
8
|
+
if get_cached_settings().dump_dirpath is None:
|
9
|
+
return None
|
8
10
|
return FileStorageInDir(dirpath=get_cached_settings().dump_dirpath)
|
9
11
|
|
10
12
|
|
11
13
|
@lru_cache()
|
12
|
-
def get_cached_dump_file_storage_in_dir() -> FileStorageInDir:
|
14
|
+
def get_cached_dump_file_storage_in_dir() -> FileStorageInDir | None:
|
13
15
|
return create_dump_file_storage_in_dir()
|
14
16
|
|
15
17
|
|
@@ -0,0 +1,14 @@
|
|
1
|
+
from functools import lru_cache
|
2
|
+
|
3
|
+
from fastapi.templating import Jinja2Templates
|
4
|
+
|
5
|
+
from core.const import ProjectPaths
|
6
|
+
|
7
|
+
|
8
|
+
def create_jinja2_templates() -> Jinja2Templates:
|
9
|
+
return Jinja2Templates(directory=ProjectPaths.templates_dirpath)
|
10
|
+
|
11
|
+
|
12
|
+
@lru_cache()
|
13
|
+
def get_cached_jinja2_templates() -> Jinja2Templates:
|
14
|
+
return create_jinja2_templates()
|
@@ -4,12 +4,14 @@ from arpakitlib.ar_file_storage_in_dir_util import FileStorageInDir
|
|
4
4
|
from core.settings import get_cached_settings
|
5
5
|
|
6
6
|
|
7
|
-
def create_media_file_storage_in_dir() -> FileStorageInDir:
|
7
|
+
def create_media_file_storage_in_dir() -> FileStorageInDir | None:
|
8
|
+
if get_cached_settings().media_dirpath is None:
|
9
|
+
return None
|
8
10
|
return FileStorageInDir(dirpath=get_cached_settings().media_dirpath)
|
9
11
|
|
10
12
|
|
11
13
|
@lru_cache()
|
12
|
-
def get_cached_media_file_storage_in_dir() -> FileStorageInDir:
|
14
|
+
def get_cached_media_file_storage_in_dir() -> FileStorageInDir | None:
|
13
15
|
return create_media_file_storage_in_dir()
|
14
16
|
|
15
17
|
|
@@ -105,7 +105,7 @@ class Settings(SimpleSettings):
|
|
105
105
|
|
106
106
|
api_init_json_db: bool = False
|
107
107
|
|
108
|
-
api_correct_api_keys: list[str] | None = "1"
|
108
|
+
api_correct_api_keys: list[str] | None = ["1"]
|
109
109
|
|
110
110
|
@field_validator("api_correct_api_keys", mode="before")
|
111
111
|
def validate_api_correct_api_keys(cls, v: Any, validation_info: ValidationInfo, **kwargs) -> list[str] | None:
|
@@ -119,7 +119,7 @@ class Settings(SimpleSettings):
|
|
119
119
|
v[i] = str(v_)
|
120
120
|
return v
|
121
121
|
|
122
|
-
api_correct_tokens: list[str] | None = "1"
|
122
|
+
api_correct_tokens: list[str] | None = ["1"]
|
123
123
|
|
124
124
|
@field_validator("api_correct_tokens", mode="before")
|
125
125
|
def validate_api_correct_tokens(cls, v: Any, validation_info: ValidationInfo, **kwargs) -> list[str] | None:
|
@@ -133,15 +133,17 @@ class Settings(SimpleSettings):
|
|
133
133
|
v[i] = str(v_)
|
134
134
|
return v
|
135
135
|
|
136
|
-
|
136
|
+
api_enable_sqladmin: bool = True
|
137
137
|
|
138
138
|
api_start_operation_executor_worker: bool = False
|
139
139
|
|
140
140
|
api_start_scheduled_operation_creator_worker: bool = False
|
141
141
|
|
142
|
-
api_story_log__api_func_before_in_exception_handler: bool =
|
142
|
+
api_story_log__api_func_before_in_exception_handler: bool = False
|
143
143
|
|
144
|
-
|
144
|
+
sqladmin_secret_key: str | None = "85a9583cb91c4de7a78d7eb1e5306a04418c9c43014c447ea8ec8dd5deb4cf71"
|
145
|
+
|
146
|
+
sqladmin_correct_passwords: list[str] | None = ["1"]
|
145
147
|
|
146
148
|
tg_bot_token: str | None = None
|
147
149
|
|
@@ -13,11 +13,12 @@
|
|
13
13
|
# api_init_json_db=
|
14
14
|
# api_correct_api_keys=
|
15
15
|
# api_correct_tokens=
|
16
|
-
#
|
16
|
+
# api_enable_sqladmin=
|
17
17
|
# api_start_operation_executor_worker=
|
18
18
|
# api_start_scheduled_operation_creator_worker=
|
19
19
|
# api_story_log__api_func_before_in_exception_handler=
|
20
|
-
#
|
20
|
+
# sqladmin_secret_key=
|
21
|
+
# sqladmin_correct_passwords=
|
21
22
|
# tg_bot_token=
|
22
23
|
# tg_bot_proxy_url=
|
23
24
|
# tg_bot_init_sqlalchemy_db=
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import os
|
2
|
+
from functools import lru_cache
|
3
|
+
|
4
|
+
from arpakitlib.ar_json_db_util import BaseJSONDb
|
5
|
+
from core.settings import get_cached_settings
|
6
|
+
|
7
|
+
|
8
|
+
class JSONDb(BaseJSONDb):
|
9
|
+
def __init__(self, dirpath: str):
|
10
|
+
super().__init__()
|
11
|
+
self.story_log = self.create_json_db_file(
|
12
|
+
filepath=os.path.join(dirpath, "story_log.json"), use_memory=True, beautify_json=False
|
13
|
+
)
|
14
|
+
|
15
|
+
|
16
|
+
def create_json_db() -> JSONDb | None:
|
17
|
+
if get_cached_settings().json_db_dirpath is None:
|
18
|
+
return None
|
19
|
+
return JSONDb(
|
20
|
+
dirpath=get_cached_settings().json_db_dirpath
|
21
|
+
)
|
22
|
+
|
23
|
+
|
24
|
+
@lru_cache()
|
25
|
+
def get_cached_json_db() -> JSONDb:
|
26
|
+
return JSONDb(
|
27
|
+
dirpath=get_cached_settings().json_db_dirpath
|
28
|
+
)
|
@@ -0,0 +1 @@
|
|
1
|
+
Healthcheck
|
@@ -0,0 +1,24 @@
|
|
1
|
+
from fastapi import FastAPI
|
2
|
+
from sqladmin import Admin
|
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 sqlalchemy_db.sqlalchemy_db import get_cached_sqlalchemy_db
|
8
|
+
|
9
|
+
|
10
|
+
def add_sqladmin_in_app(*, app: FastAPI, base_url: str = "sqladmin") -> FastAPI:
|
11
|
+
authentication_backend = SQLAdminAuth()
|
12
|
+
|
13
|
+
admin = Admin(
|
14
|
+
app=app,
|
15
|
+
engine=get_cached_sqlalchemy_db().engine,
|
16
|
+
base_url=base_url,
|
17
|
+
authentication_backend=authentication_backend,
|
18
|
+
title=get_cached_settings().project_name
|
19
|
+
)
|
20
|
+
|
21
|
+
for model_view in get_simple_mv().__subclasses__():
|
22
|
+
admin.add_model_view(model_view)
|
23
|
+
|
24
|
+
return app
|
@@ -0,0 +1,54 @@
|
|
1
|
+
import logging
|
2
|
+
|
3
|
+
import fastapi
|
4
|
+
from sqladmin.authentication import AuthenticationBackend
|
5
|
+
|
6
|
+
from core.settings import get_cached_settings
|
7
|
+
|
8
|
+
|
9
|
+
class SQLAdminAuth(AuthenticationBackend):
|
10
|
+
def __init__(self):
|
11
|
+
self._logger = logging.getLogger(self.__class__.__name__)
|
12
|
+
super().__init__(secret_key=get_cached_settings().sqladmin_secret_key)
|
13
|
+
|
14
|
+
async def login(self, request: fastapi.Request) -> bool:
|
15
|
+
form = await request.form()
|
16
|
+
username, password = form.get("username"), form.get("password")
|
17
|
+
if username:
|
18
|
+
username = username.strip()
|
19
|
+
if password:
|
20
|
+
password = password.strip()
|
21
|
+
|
22
|
+
if get_cached_settings().sqladmin_correct_passwords is None:
|
23
|
+
return False
|
24
|
+
if (
|
25
|
+
(username is not None and username in get_cached_settings().sqladmin_correct_passwords)
|
26
|
+
or
|
27
|
+
(password is not None and password in get_cached_settings().sqladmin_correct_passwords)
|
28
|
+
):
|
29
|
+
return True
|
30
|
+
|
31
|
+
return False
|
32
|
+
|
33
|
+
async def logout(self, request: fastapi.Request) -> bool:
|
34
|
+
request.session.clear()
|
35
|
+
return True
|
36
|
+
|
37
|
+
async def authenticate(self, request: fastapi.Request) -> bool:
|
38
|
+
form = await request.form()
|
39
|
+
username, password = form.get("username"), form.get("password")
|
40
|
+
if username:
|
41
|
+
username = username.strip()
|
42
|
+
if password:
|
43
|
+
password = password.strip()
|
44
|
+
|
45
|
+
if get_cached_settings().sqladmin_correct_passwords is None:
|
46
|
+
return False
|
47
|
+
if (
|
48
|
+
(username is not None and username in get_cached_settings().sqladmin_correct_passwords)
|
49
|
+
or
|
50
|
+
(password is not None and password in get_cached_settings().sqladmin_correct_passwords)
|
51
|
+
):
|
52
|
+
return True
|
53
|
+
|
54
|
+
return False
|
@@ -5,7 +5,10 @@ from core.settings import get_cached_settings
|
|
5
5
|
from sqlalchemy_db.sqlalchemy_model import get_simple_dbm
|
6
6
|
|
7
7
|
|
8
|
-
def create_sqlalchemy_db() -> SQLAlchemyDb:
|
8
|
+
def create_sqlalchemy_db() -> SQLAlchemyDb | None:
|
9
|
+
if not get_cached_settings().sqlalchemy_sync_db_url or not get_cached_settings().sqlalchemy_async_db_url:
|
10
|
+
return None
|
11
|
+
|
9
12
|
return SQLAlchemyDb(
|
10
13
|
sync_db_url=get_cached_settings().sqlalchemy_sync_db_url,
|
11
14
|
async_db_url=get_cached_settings().sqlalchemy_async_db_url,
|
@@ -15,5 +18,5 @@ def create_sqlalchemy_db() -> SQLAlchemyDb:
|
|
15
18
|
|
16
19
|
|
17
20
|
@lru_cache()
|
18
|
-
def get_cached_sqlalchemy_db() -> SQLAlchemyDb:
|
21
|
+
def get_cached_sqlalchemy_db() -> SQLAlchemyDb | None:
|
19
22
|
return create_sqlalchemy_db()
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -9,7 +9,7 @@ from core.cache_file_storage_in_dir import get_cached_cache_file_storage_in_dir
|
|
9
9
|
from core.dump_file_storage_in_dir import get_cached_dump_file_storage_in_dir
|
10
10
|
from core.media_file_storage_in_dir import get_cached_media_file_storage_in_dir
|
11
11
|
from core.settings import Settings, get_cached_settings
|
12
|
-
from json_db.
|
12
|
+
from json_db.json_db import get_cached_json_db
|
13
13
|
from sqlalchemy_db.sqlalchemy_db import get_cached_sqlalchemy_db
|
14
14
|
|
15
15
|
|
@@ -27,7 +27,7 @@ def create_transmitted_tg_bot_data() -> TransmittedTgBotData:
|
|
27
27
|
|
28
28
|
sqlalchemy_db = get_cached_sqlalchemy_db() if settings.sqlalchemy_sync_db_url is not None else None
|
29
29
|
|
30
|
-
json_db =
|
30
|
+
json_db = get_cached_json_db() if settings.json_db_dirpath is not None else None
|
31
31
|
|
32
32
|
media_file_storage_in_dir = (
|
33
33
|
get_cached_media_file_storage_in_dir() if settings.media_dirpath is not None else None
|
File without changes
|
File without changes
|
@@ -38,8 +38,10 @@ def init_arpakit_project_template(
|
|
38
38
|
|
39
39
|
def _generate_filepath_to_content() -> dict[str, bytes]:
|
40
40
|
arpakit_project_template_dirpath = os.path.join(
|
41
|
-
os.path.dirname(os.path.abspath(__file__)), f"
|
41
|
+
os.path.dirname(os.path.abspath(__file__)), f"_arpakit_project_template_v_{version}"
|
42
42
|
)
|
43
|
+
if not os.path.exists(arpakit_project_template_dirpath):
|
44
|
+
raise Exception(f"not os.path.exists({arpakit_project_template_dirpath})")
|
43
45
|
res = {}
|
44
46
|
for root, dirs, files in os.walk(arpakit_project_template_dirpath):
|
45
47
|
dirs[:] = [d for d in dirs if d != '__pycache__']
|
@@ -31,9 +31,6 @@ def execute_arpakitlib_cli(*, full_command: str | None = None):
|
|
31
31
|
print("-overwrite_if_exists ...")
|
32
32
|
print("-ignore_paths_startswith ...")
|
33
33
|
print("-only_paths_startswith ...")
|
34
|
-
print("-param1 ...")
|
35
|
-
print("-param2 ...")
|
36
|
-
print("-param3 ...")
|
37
34
|
print("\n")
|
38
35
|
|
39
36
|
elif command == "init_arpakit_project_template":
|