zrb 0.23.4__py3-none-any.whl → 0.26.0__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.
- zrb/__init__.py +2 -0
- zrb/action/runner.py +8 -5
- zrb/advertisement.py +1 -2
- zrb/builtin/__init__.py +4 -0
- zrb/builtin/base64/decode.py +1 -1
- zrb/builtin/base64/encode.py +1 -1
- zrb/builtin/devtool/install/_helper.py +2 -1
- zrb/builtin/devtool/install/_input.py +2 -2
- zrb/builtin/docker/prune.py +11 -3
- zrb/builtin/env/get.py +3 -2
- zrb/builtin/eval.py +2 -1
- zrb/builtin/git/get_file_changes.py +2 -1
- zrb/builtin/md5/hash.py +1 -1
- zrb/builtin/md5/sum.py +1 -1
- zrb/builtin/monorepo/__init__.py +7 -0
- zrb/builtin/monorepo/_config.py +11 -0
- zrb/builtin/monorepo/_group.py +3 -0
- zrb/builtin/monorepo/_task.py +99 -0
- zrb/builtin/monorepo/add.py +40 -0
- zrb/builtin/monorepo/pull.py +23 -0
- zrb/builtin/monorepo/push.py +35 -0
- zrb/builtin/project/_helper.py +3 -3
- zrb/builtin/project/_input.py +2 -2
- zrb/builtin/project/add/app/generator/generator.py +1 -1
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/snake_zrb_generator_name.py +1 -1
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/remove.py +1 -1
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/start.py +6 -7
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/stop.py +1 -1
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/src/kebab-zrb-app-name/docker-compose.yml +0 -2
- zrb/builtin/project/add/app/python/python.py +1 -1
- zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/remove.py +1 -1
- zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/start.py +6 -7
- zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/stop.py +1 -1
- zrb/builtin/project/add/app/python/template/src/kebab-zrb-app-name/docker-compose.yml +0 -2
- zrb/builtin/project/add/fastapp/app/app.py +3 -1
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_helper.py +2 -53
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_service_config.py +1 -1
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/_helper.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/start.py +5 -6
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/_helper.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/start.py +5 -6
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/stop.py +2 -0
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/_helper.py +5 -3
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/start.py +4 -6
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/frontend/build-once.sh +1 -1
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/frontend/build.sh +1 -1
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/_helper.py +3 -5
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/start.py +3 -3
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/{start_microservices.py → start_services.py} +2 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/.generator-version +1 -0
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/deployment/_common.py +5 -5
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/deployment/app_helper.py +5 -5
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/docker-compose.yml +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/loadtest/locustfile.py +1 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/loadtest/template.env +1 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/error.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/kafka/admin.py +4 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/kafka/consumer.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/messagebus.py +4 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/mock.py +4 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/rabbitmq/admin.py +4 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/rabbitmq/consumer.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/model/repo_model.py +3 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/repo/db_repo.py +7 -6
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/repo/repo.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/repo/search_filter.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/rpc/messagebus/caller.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/rpc/messagebus/server.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/rpc/rpc.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/serializer/serializer.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/config.py +59 -62
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/frontend/package-lock.json +4443 -0
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/helper/async_task.py +1 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app.py +28 -28
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app_lifespan.py +15 -15
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app_state.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/db_connection.py +14 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/frontend_index.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/log.py +6 -6
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/messagebus.py +33 -33
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/rpc.py +9 -9
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/component/access_token/scheme.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/component/access_token/util.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/group/repo.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/group/rpc.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/rpc.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/api.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/model.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/repo.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/rpc.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/access_token_scheme.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/access_token_util.py +7 -7
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/model/user_model.py +6 -6
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/refresh_token_util.py +7 -7
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/user.py +18 -18
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/migrate.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/register_module.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/register_permission.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/group.py +3 -5
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/permission.py +1 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/request.py +1 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/user.py +5 -7
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/entity/activity/event.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/entity/activity/rpc.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/migrate.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/register_module.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/schema/activity.py +1 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/template.env +5 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_group_crud.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_permission_crud.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_user_crud.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_user_login.py +15 -15
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/test_liveness_and_readiness.py +4 -4
- zrb/builtin/project/add/fastapp/crud/_helper/__init__.py +7 -0
- zrb/builtin/project/add/fastapp/crud/_helper/_common.py +8 -0
- zrb/builtin/project/add/fastapp/crud/_helper/register_api.py +45 -0
- zrb/builtin/project/add/fastapp/crud/_helper/register_permission.py +40 -0
- zrb/builtin/project/add/fastapp/crud/_helper/register_rpc.py +45 -0
- zrb/builtin/project/add/fastapp/crud/_task_factory.py +1 -2
- zrb/builtin/project/add/fastapp/crud/crud.py +4 -25
- zrb/builtin/project/add/fastapp/crud/nodejs/codemod/package-lock.json +3 -3
- zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/repo.py +12 -1
- zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/rpc.py +2 -1
- zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/schema/snake_zrb_entity_name.py +3 -2
- zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/test/snake_zrb_module_name/test_snake_zrb_entity_name.py +9 -8
- zrb/builtin/project/add/fastapp/field/_helper/__init__.py +17 -0
- zrb/builtin/project/add/fastapp/field/_helper/_common.py +102 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_delete_page.py +49 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_detail_page.py +49 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_insert_page.py +62 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_list_page.py +47 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_repo.py +47 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_schema.py +45 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_test.py +49 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_update_page.py +50 -0
- zrb/builtin/project/add/fastapp/field/_input.py +14 -2
- zrb/builtin/project/add/fastapp/field/field.py +52 -70
- zrb/builtin/project/add/fastapp/module/_helper/__init__.py +17 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_all_disabled_env.py +22 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_all_enabled_env.py +22 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_deployment_template_env.py +25 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_src_template_env.py +25 -0
- zrb/builtin/project/add/fastapp/module/_helper/create_app_config.py +29 -0
- zrb/builtin/project/add/fastapp/module/_helper/create_microservice_config.py +157 -0
- zrb/builtin/project/add/fastapp/module/_helper/register_migration.py +35 -0
- zrb/builtin/project/add/fastapp/module/_helper/register_module.py +33 -0
- zrb/builtin/project/add/fastapp/module/module.py +9 -38
- zrb/builtin/project/add/fastapp/module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/migrate.py +2 -2
- zrb/builtin/project/add/fastapp/module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/register_module.py +8 -8
- zrb/builtin/project/add/plugin/plugin.py +3 -3
- zrb/builtin/project/add/project_task/add.py +1 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/build.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/container/remove.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/container/start.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/container/stop.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/deploy.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/destroy.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/get_env.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/image/build.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/image/push.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/publish.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/start.py +2 -1
- zrb/builtin/project/add/task/cmd/add.py +1 -1
- zrb/builtin/project/add/task/docker_compose/add.py +1 -1
- zrb/builtin/project/add/task/docker_compose/template/src/kebab-zrb-task-name/docker-compose.yml +0 -2
- zrb/builtin/project/add/task/python/add.py +1 -1
- zrb/builtin/project/add/task/python/template/_automate/snake_zrb_task_name.py +1 -1
- zrb/builtin/project/create/_helper.py +1 -1
- zrb/builtin/project/create/create.py +3 -3
- zrb/builtin/say.py +3 -3
- zrb/builtin/version.py +5 -4
- zrb/config/config.py +24 -14
- zrb/helper/accessories/color.py +2 -1
- zrb/helper/advertisement.py +2 -1
- zrb/helper/asyncio_task.py +23 -0
- zrb/helper/callable.py +4 -1
- zrb/helper/cli.py +20 -6
- zrb/helper/codemod/add_import_module.py +3 -2
- zrb/helper/codemod/add_property_to_class.py +2 -1
- zrb/helper/default_env.py +2 -1
- zrb/helper/docker_compose/fetch_external_env.py +4 -2
- zrb/helper/docker_compose/file.py +3 -1
- zrb/helper/env_map/fetch.py +3 -2
- zrb/helper/file/copy_tree.py +2 -1
- zrb/helper/file/match.py +2 -2
- zrb/helper/git/detect_changes.py +1 -1
- zrb/helper/loader/load_module.py +7 -46
- zrb/helper/loader/load_script.py +57 -0
- zrb/helper/log.py +3 -3
- zrb/helper/map/conversion.py +3 -1
- zrb/helper/string/jinja.py +2 -1
- zrb/helper/string/parse_replacement.py +1 -1
- zrb/helper/typecheck.py +2 -2
- zrb/helper/typing.py +5 -27
- zrb/helper/util.py +13 -1
- zrb/runner.py +2 -2
- zrb/task/any_task.py +9 -17
- zrb/task/any_task_event_handler.py +3 -1
- zrb/task/base_remote_cmd_task.py +3 -10
- zrb/task/base_task/base_task.py +15 -11
- zrb/task/base_task/component/base_task_model.py +15 -22
- zrb/task/base_task/component/common_task_model.py +15 -22
- zrb/task/base_task/component/renderer.py +3 -1
- zrb/task/base_task/component/trackers.py +1 -1
- zrb/task/checker.py +2 -1
- zrb/task/cmd_task.py +10 -22
- zrb/task/decorator.py +3 -1
- zrb/task/docker_compose_start_task.py +146 -0
- zrb/task/docker_compose_task.py +43 -34
- zrb/task/flow_task.py +19 -17
- zrb/task/http_checker.py +3 -9
- zrb/task/looper.py +4 -2
- zrb/task/notifier.py +3 -1
- zrb/task/parallel.py +4 -4
- zrb/task/path_checker.py +6 -12
- zrb/task/path_watcher.py +5 -13
- zrb/task/port_checker.py +3 -9
- zrb/task/recurring_task.py +5 -4
- zrb/task/remote_cmd_task.py +2 -1
- zrb/task/resource_maker.py +6 -13
- zrb/task/rsync_task.py +3 -1
- zrb/task/server.py +13 -12
- zrb/task/time_watcher.py +3 -10
- zrb/task/watcher.py +2 -1
- zrb/task/wiki_task.py +4 -3
- zrb/task_env/env.py +2 -1
- zrb/task_env/env_file.py +7 -6
- zrb/task_group/group.py +8 -7
- zrb/task_input/any_input.py +4 -3
- zrb/task_input/base_input.py +7 -5
- zrb/task_input/bool_input.py +2 -1
- zrb/task_input/choice_input.py +3 -1
- zrb/task_input/float_input.py +2 -1
- zrb/task_input/int_input.py +2 -1
- zrb/task_input/multiline_input.py +5 -3
- zrb/task_input/password_input.py +2 -1
- zrb/task_input/str_input.py +2 -1
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/METADATA +2 -2
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/RECORD +242 -214
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/init.py +0 -34
- zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/init.py +0 -34
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/init.py +0 -36
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/init.py +0 -36
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/init.py +0 -26
- zrb/builtin/project/add/fastapp/crud/_helper.py +0 -118
- zrb/builtin/project/add/fastapp/field/_helper.py +0 -328
- zrb/builtin/project/add/fastapp/module/_helper.py +0 -313
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/LICENSE +0 -0
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/WHEEL +0 -0
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/entry_points.txt +0 -0
zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/repo/db_repo.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
import logging
|
2
|
-
from
|
2
|
+
from collections.abc import Mapping
|
3
|
+
from typing import Any, Optional, Type, TypeVar
|
3
4
|
|
4
5
|
from component.repo.repo import Repo
|
5
6
|
from component.repo.search_filter import SearchFilter
|
@@ -28,8 +29,8 @@ class DBRepo(Repo[Schema, SchemaData]):
|
|
28
29
|
):
|
29
30
|
self.logger = logger
|
30
31
|
self.engine = engine
|
31
|
-
self.db_entity_attribute_names:
|
32
|
-
self._keyword_fields: Optional[
|
32
|
+
self.db_entity_attribute_names: list[str] = dir(self.db_entity_cls)
|
33
|
+
self._keyword_fields: Optional[list[InstrumentedAttribute]] = None
|
33
34
|
|
34
35
|
async def get_by_id(self, id: str) -> Schema:
|
35
36
|
"""
|
@@ -48,7 +49,7 @@ class DBRepo(Repo[Schema, SchemaData]):
|
|
48
49
|
search_filter: Optional[SearchFilter] = None,
|
49
50
|
limit: int = 100,
|
50
51
|
offset: int = 0,
|
51
|
-
) ->
|
52
|
+
) -> list[Schema]:
|
52
53
|
"""
|
53
54
|
Find multiple records by keyword with limit and offset.
|
54
55
|
"""
|
@@ -164,7 +165,7 @@ class DBRepo(Repo[Schema, SchemaData]):
|
|
164
165
|
criterion: _ColumnExpressionArgument[bool],
|
165
166
|
limit: int = 100,
|
166
167
|
offset: int = 0,
|
167
|
-
) ->
|
168
|
+
) -> list[DBEntity]:
|
168
169
|
try:
|
169
170
|
db_query = db.query(self.db_entity_cls).filter(criterion)
|
170
171
|
if "created_at" in self.db_entity_attribute_names:
|
@@ -245,7 +246,7 @@ class DBRepo(Repo[Schema, SchemaData]):
|
|
245
246
|
]
|
246
247
|
return or_(*keyword_criterion)
|
247
248
|
|
248
|
-
def _get_keyword_fields(self) ->
|
249
|
+
def _get_keyword_fields(self) -> list[InstrumentedAttribute]:
|
249
250
|
"""
|
250
251
|
Return list of fields for keyword filtering
|
251
252
|
"""
|
zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/repo/repo.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
from abc import ABC, abstractmethod
|
2
|
-
from typing import Generic,
|
2
|
+
from typing import Generic, Optional, TypeVar
|
3
3
|
|
4
4
|
from component.repo.search_filter import SearchFilter
|
5
5
|
from pydantic import BaseModel
|
@@ -16,7 +16,7 @@ class Repo(Generic[Schema, SchemaData], ABC):
|
|
16
16
|
@abstractmethod
|
17
17
|
async def get(
|
18
18
|
self, search_filter: Optional[SearchFilter], limit: int, offset: int
|
19
|
-
) ->
|
19
|
+
) -> list[Schema]:
|
20
20
|
pass
|
21
21
|
|
22
22
|
@abstractmethod
|
zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/rpc/rpc.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
from abc import ABC, abstractmethod
|
2
|
-
from
|
2
|
+
from collections.abc import Callable, Mapping
|
3
|
+
from typing import Any, TypeVar
|
3
4
|
|
4
5
|
TRPCHandler = Callable[..., Any]
|
5
6
|
TMessage = TypeVar("TMessage", bound="Message")
|
@@ -27,7 +28,7 @@ class Server(ABC):
|
|
27
28
|
|
28
29
|
|
29
30
|
class Message:
|
30
|
-
def __init__(self, reply_event: str, args:
|
31
|
+
def __init__(self, reply_event: str, args: list[Any], kwargs: Mapping[str, Any]):
|
31
32
|
self.reply_event = reply_event
|
32
33
|
self.args = args
|
33
34
|
self.kwargs = kwargs
|
@@ -1,103 +1,100 @@
|
|
1
1
|
import json
|
2
2
|
import os
|
3
|
-
from typing import List
|
4
3
|
|
5
4
|
from helper.conversion import str_to_boolean, str_to_logging_level
|
6
5
|
|
7
|
-
|
6
|
+
APP_SRC_DIR = os.path.dirname(__file__)
|
8
7
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
app_port = int(os.getenv("APP_PORT", "8080"))
|
13
|
-
app_reload = str_to_boolean(os.getenv("APP_RELOAD", "true"))
|
14
|
-
app_max_not_ready = int(os.getenv("APP_MAX_NOT_READY", "10"))
|
8
|
+
APP_NAME = os.getenv("APP_NAME", "app")
|
9
|
+
APP_BRAND = os.getenv("PUBLIC_BRAND", "PascalZrbAppName")
|
10
|
+
APP_TITLE = os.getenv("PUBLIC_TITLE", "PascalZrbAppName")
|
15
11
|
|
16
|
-
|
17
|
-
|
12
|
+
APP_LOGGING_LEVEL = str_to_logging_level(os.getenv("APP_LOGGING_LEVEL", "INFO"))
|
13
|
+
APP_HOST = os.getenv("APP_HOST", "0.0.0.0")
|
14
|
+
APP_PORT = int(os.getenv("APP_PORT", "8080"))
|
15
|
+
APP_RELOAD = str_to_boolean(os.getenv("APP_RELOAD", "true"))
|
16
|
+
APP_MAX_NOT_READY = int(os.getenv("APP_MAX_NOT_READY", "10"))
|
17
|
+
|
18
|
+
APP_ENABLE_OTEL = str_to_boolean(os.getenv("APP_ENABLE_OTEL", "false"))
|
19
|
+
APP_OTEL_EXPORTER_OTLP_ENDPOINT = os.getenv(
|
18
20
|
"APP_OTEL_EXPORTER_OTLP_ENDPOINT", "http://localhost:4317"
|
19
21
|
)
|
20
22
|
|
21
|
-
|
22
|
-
"
|
23
|
+
APP_AUTH_ACCESS_TOKEN_COOKIE_KEY = os.getenv(
|
24
|
+
"APP_AUTH_ACCESS_TOKEN_COOKIE_KEY", "access_token"
|
23
25
|
)
|
24
|
-
|
25
|
-
"
|
26
|
+
APP_AUTH_REFRESH_TOKEN_COOKIE_KEY = os.getenv(
|
27
|
+
"APP_AUTH_REFRESH_TOKEN_COOKIE_KEY", "refresh_token"
|
26
28
|
)
|
27
29
|
|
28
|
-
|
29
|
-
|
30
|
+
APP_AUTH_ACCESS_TOKEN_TYPE = os.getenv("APP_AUTH_ACCESS_TOKEN_TYPE", "jwt")
|
31
|
+
APP_AUTH_ACCESS_TOKEN_EXPIRE_SECONDS = int(
|
30
32
|
os.getenv("APP_AUTH_ACCESS_TOKEN_EXPIRE_SECONDS", "300")
|
31
33
|
)
|
32
|
-
|
33
|
-
|
34
|
+
APP_AUTH_REFRESH_TOKEN_TYPE = os.getenv("APP_AUTH_REFRESH_TOKEN_TYPE", "jwt")
|
35
|
+
APP_AUTH_REFRESH_TOKEN_EXPIRE_SECONDS = int(
|
34
36
|
os.getenv("APP_AUTH_REFRESH_TOKEN_EXPIRE_SECONDS", "86400")
|
35
37
|
)
|
36
|
-
|
37
|
-
|
38
|
+
APP_AUTH_JWT_TOKEN_SECRET_KEY = os.getenv("APP_AUTH_JWT_TOKEN_SECRET_KEY", "secret")
|
39
|
+
APP_AUTH_JWT_TOKEN_ALGORITHM = os.getenv("APP_AUTH_JWT_TOKEN_ALGORITHM", "HS256")
|
40
|
+
|
41
|
+
APP_AUTH_ADMIN_ACTIVE = str_to_boolean(os.getenv("APP_AUTH_ADMIN_ACTIVE", "true"))
|
42
|
+
APP_AUTH_ADMIN_USER_ID = os.getenv("APP_AUTH_ADMIN_USER_ID", "root")
|
43
|
+
APP_AUTH_ADMIN_USERNAME = os.getenv("APP_AUTH_ADMIN_USERNAME", "admin")
|
44
|
+
APP_AUTH_ADMIN_PASSWORD = os.getenv("APP_AUTH_ADMIN_PASSWORD", "admin")
|
45
|
+
APP_AUTH_ADMIN_EMAIL = os.getenv("APP_AUTH_ADMIN_EMAIL", "")
|
46
|
+
APP_AUTH_ADMIN_PHONE = os.getenv("APP_AUTH_ADMIN_PHONE", "")
|
47
|
+
APP_AUTH_GUEST_USER_ID = os.getenv("APP_AUTH_GUEST_USER_ID", "guest")
|
48
|
+
APP_AUTH_GUEST_USERNAME = os.getenv("APP_AUTH_GUEST_USERNAME", "guest")
|
49
|
+
APP_AUTH_GUEST_EMAIL = os.getenv("APP_AUTH_GUEST_EMAIL", "")
|
50
|
+
APP_AUTH_GUEST_PHONE = os.getenv("APP_AUTH_GUEST_PHONE", "")
|
38
51
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
app_auth_guest_user_id = os.getenv("APP_AUTH_GUEST_USER_ID", "guest")
|
46
|
-
app_auth_guest_username = os.getenv("APP_AUTH_GUEST_USERNAME", "guest")
|
47
|
-
app_auth_guest_email = os.getenv("APP_AUTH_GUEST_EMAIL", "")
|
48
|
-
app_auth_guest_phone = os.getenv("APP_AUTH_GUEST_PHONE", "")
|
52
|
+
APP_DB_CONNECTION = os.getenv("APP_DB_CONNECTION", "sqlite://")
|
53
|
+
APP_DB_ENGINE_SHOW_LOG = str_to_boolean(os.getenv("APP_DB_ENGINE_SHOW_LOG", "false"))
|
54
|
+
APP_DB_AUTO_MIGRATE = str_to_boolean(os.getenv("APP_DB_AUTO_MIGRATE", "true"))
|
55
|
+
APP_DB_POOL_PRE_PING = str_to_boolean(os.getenv("APP_DB_POOL_PRE_PING", "true"))
|
56
|
+
APP_DB_POOL_SIZE = int(os.getenv("APP_DB_POOL_SIZE", "20"))
|
57
|
+
APP_DB_POOL_MAX_OVERFLOW = int(os.getenv("APP_DB_POOL_MAX_OVERFLOW", "0"))
|
49
58
|
|
50
|
-
app_db_connection = os.getenv("APP_DB_CONNECTION", "sqlite://")
|
51
|
-
app_db_engine_show_log = str_to_boolean(os.getenv("APP_DB_ENGINE_SHOW_LOG", "false"))
|
52
|
-
app_db_auto_migrate = str_to_boolean(os.getenv("APP_DB_AUTO_MIGRATE", "true"))
|
53
59
|
|
54
|
-
|
60
|
+
APP_BROKER_TYPE = os.getenv("APP_BROKER_TYPE", "mock")
|
55
61
|
|
56
|
-
|
62
|
+
APP_ENABLE_RPC_SERVER: bool = str_to_boolean(os.getenv("APP_ENABLE_RPC_SERVER", "true"))
|
57
63
|
|
58
|
-
|
64
|
+
APP_ENABLE_EVENT_HANDLER: bool = str_to_boolean(
|
59
65
|
os.getenv("APP_ENABLE_EVENT_HANDLER", "true")
|
60
66
|
)
|
61
67
|
|
62
|
-
|
68
|
+
APP_ENABLE_FRONTEND: bool = str_to_boolean(os.getenv("APP_ENABLE_FRONTEND", "true"))
|
63
69
|
|
64
|
-
|
70
|
+
APP_ENABLE_API: bool = str_to_boolean(os.getenv("APP_ENABLE_API", "true"))
|
65
71
|
|
66
|
-
|
72
|
+
APP_RMQ_CONNECTION_STRING = os.getenv(
|
67
73
|
"APP_RMQ_CONNECTION", "amqp://guest:guest@localhost/"
|
68
74
|
)
|
69
75
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
76
|
+
APP_KAFKA_BOOTSTRAP_SERVERS = os.getenv("APP_KAFKA_BOOTSTRAP_SERVERS", "localhost:9092")
|
77
|
+
APP_KAFKA_SECURITY_PROTOCOL = os.getenv("APP_KAFKA_SECURITY_PROTOCOL", "PLAINTEXT")
|
78
|
+
APP_KAFKA_SASL_MECHANISM = os.getenv("APP_KAFKA_SASL_MECHANISM", "SCRAM-SHA-512")
|
79
|
+
APP_KAFKA_SASL_USER = os.getenv("APP_KAFKA_SASL_USER", "admin")
|
80
|
+
APP_KAFKA_SASL_PASS = os.getenv("APP_KAFKA_SASL_PASS", "admin")
|
75
81
|
|
76
|
-
|
82
|
+
APP_CORS_ALLOW_ORIGINS: list[str] = json.loads(
|
77
83
|
os.getenv("APP_CORS_ALLOW_ORIGINS", '["*"]')
|
78
84
|
)
|
79
|
-
|
80
|
-
|
85
|
+
APP_CORS_ALLOW_ORIGIN_REGEX: str = os.getenv("APP_CORS_ALLOW_ORIGIN_REGEX", "")
|
86
|
+
APP_CORS_ALLOW_METHODS: list[str] = json.loads(
|
81
87
|
os.getenv("APP_CORS_ALLOW_METHODS", '["*"]')
|
82
88
|
)
|
83
|
-
|
89
|
+
APP_CORS_ALLOW_HEADERS: list[str] = json.loads(
|
84
90
|
os.getenv("APP_CORS_ALLOW_HEADERS", '["*"]')
|
85
91
|
)
|
86
|
-
|
92
|
+
APP_CORS_ALLOW_CREDENTIALS: bool = str_to_boolean(
|
87
93
|
os.getenv("APP_CORS_ALLOW_CREDENTIALS", "false")
|
88
94
|
)
|
89
|
-
|
95
|
+
APP_CORS_EXPOSE_HEADERS: bool = str_to_boolean(
|
90
96
|
os.getenv("APP_CORS_EXPOSE_HEADERS", "false")
|
91
97
|
)
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
public_brand = os.getenv("PUBLIC_BRAND", "PascalZrbAppName")
|
97
|
-
public_title = os.getenv("PUBLIC_TITLE", "PascalZrbAppName")
|
98
|
-
public_auth_access_token_cookie_key = os.getenv(
|
99
|
-
"PUBLIC_AUTH_ACCESS_TOKEN_COOKIE_KEY", "access_token"
|
100
|
-
)
|
101
|
-
public_auth_refresh_token_cookie_key = os.getenv(
|
102
|
-
"PUBLIC_AUTH_REFRESH_TOKEN_COOKIE_KEY", "refresh_token"
|
103
|
-
)
|
98
|
+
APP_CORS_MAX_AGE: int = int(os.getenv("APP_CORS_MAX_AGE", "600"))
|
99
|
+
APP_ENABLE_AUTH_MODULE = str_to_boolean(os.getenv("APP_ENABLE_AUTH_MODULE", "true"))
|
100
|
+
APP_ENABLE_LOG_MODULE = str_to_boolean(os.getenv("APP_ENABLE_LOG_MODULE", "true"))
|