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
@@ -1,4 +1,5 @@
|
|
1
1
|
import os
|
2
|
+
from typing import Any
|
2
3
|
|
3
4
|
from zrb.builtin.project._helper import (
|
4
5
|
create_register_module,
|
@@ -16,8 +17,8 @@ from zrb.builtin.project.add.fastapp.app._input import (
|
|
16
17
|
env_prefix_input,
|
17
18
|
http_port_input,
|
18
19
|
)
|
20
|
+
from zrb.config.config import VERSION
|
19
21
|
from zrb.helper.accessories.color import colored
|
20
|
-
from zrb.helper.typing import Any
|
21
22
|
from zrb.helper.util import to_kebab_case
|
22
23
|
from zrb.runner import runner
|
23
24
|
from zrb.task.decorator import python_task
|
@@ -70,6 +71,7 @@ copy_resource = ResourceMaker(
|
|
70
71
|
"zrb-app-image-name": "{{input.app_image_name}}",
|
71
72
|
"zrbAppHttpAuthPort": '{{util.coalesce(input.http_port, "3001") + 1}}',
|
72
73
|
"zrbAppHttpLogPort": '{{util.coalesce(input.http_port, "3001") + 2}}',
|
74
|
+
"zrbVersion": VERSION,
|
73
75
|
},
|
74
76
|
template_path=os.path.join(_CURRENT_DIR, "template"),
|
75
77
|
destination_path="{{ input.project_dir }}",
|
zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_helper.py
CHANGED
@@ -1,59 +1,8 @@
|
|
1
|
-
from typing import Any
|
2
|
-
|
3
|
-
from zrb import Task
|
4
|
-
|
5
|
-
|
6
|
-
def get_support_container_compose_profiles(*args: Any, **kwargs: Any) -> List[str]:
|
7
|
-
task: Task = kwargs.get("_task")
|
8
|
-
env_map = task.get_env_map()
|
9
|
-
compose_profiles: List[str] = []
|
10
|
-
broker_type = env_map.get("APP_BROKER_TYPE", "rabbitmq")
|
11
|
-
if broker_type in ["rabbitmq", "kafka"]:
|
12
|
-
compose_profiles.append(broker_type)
|
13
|
-
if kwargs.get("enable_snake_zrb_app_name_monitoring", False):
|
14
|
-
compose_profiles.append("monitoring")
|
15
|
-
return compose_profiles
|
16
|
-
|
17
|
-
|
18
|
-
def get_container_compose_profiles(*args: Any, **kwargs: Any) -> str:
|
19
|
-
compose_profiles = get_support_container_compose_profiles(*args, **kwargs)
|
20
|
-
compose_profiles.append(
|
21
|
-
kwargs.get("snake_zrb_app_name_run_mode", "monolith"),
|
22
|
-
)
|
23
|
-
return compose_profiles
|
24
|
-
|
25
|
-
|
26
|
-
def activate_support_compose_profile(*args: Any, **kwargs: Any) -> str:
|
27
|
-
compose_profiles = get_support_container_compose_profiles(*args, **kwargs)
|
28
|
-
compose_profile_str = ",".join(compose_profiles)
|
29
|
-
return f"export COMPOSE_PROFILES={compose_profile_str}"
|
30
|
-
|
31
|
-
|
32
|
-
def should_start_support_container(*args: Any, **kwargs: Any) -> bool:
|
33
|
-
if not kwargs.get("local_snake_zrb_app_name", True):
|
34
|
-
return False
|
35
|
-
compose_profiles = get_support_container_compose_profiles(*args, **kwargs)
|
36
|
-
return len(compose_profiles) > 0
|
37
|
-
|
38
|
-
|
39
|
-
def should_start_local_monolith(*args: Any, **kwargs: Any) -> bool:
|
40
|
-
if not kwargs.get("local_snake_zrb_app_name", True):
|
41
|
-
return False
|
42
|
-
return kwargs.get("snake_zrb_app_name_run_mode", "monolith") == "monolith"
|
43
|
-
|
44
|
-
|
45
|
-
def activate_selected_compose_profile(*args: Any, **kwargs: Any) -> str:
|
46
|
-
compose_profiles = get_container_compose_profiles(*args, **kwargs)
|
47
|
-
compose_profile_str = ",".join(compose_profiles)
|
48
|
-
return f"export COMPOSE_PROFILES={compose_profile_str}"
|
1
|
+
from typing import Any
|
49
2
|
|
50
3
|
|
51
4
|
def activate_all_compose_profile(*args: Any, **kwargs: Any) -> str:
|
52
5
|
compose_profile_str = ",".join(
|
53
|
-
["monitoring", "monolith", "microservices", "kafka", "rabbitmq"]
|
6
|
+
["monitoring", "monolith", "microservices", "kafka", "postgres", "rabbitmq"]
|
54
7
|
)
|
55
8
|
return f"export COMPOSE_PROFILES={compose_profile_str}"
|
56
|
-
|
57
|
-
|
58
|
-
def should_start_container(*args: Any, **kwargs: Any) -> bool:
|
59
|
-
return kwargs.get("local_snake_zrb_app_name", True)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from typing import Any
|
1
|
+
from typing import Any
|
2
2
|
|
3
3
|
from ..support._helper import get_support_container_compose_profiles
|
4
4
|
|
@@ -18,7 +18,7 @@ def should_start_microservices_container(*args: Any, **kwargs: Any) -> bool:
|
|
18
18
|
|
19
19
|
def _get_microservices_container_compose_profiles(
|
20
20
|
*args: Any, **kwargs: Any
|
21
|
-
) ->
|
21
|
+
) -> list[str]:
|
22
22
|
compose_profiles = get_support_container_compose_profiles(*args, **kwargs)
|
23
23
|
compose_profiles.append("microservices")
|
24
24
|
return compose_profiles
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from zrb import
|
1
|
+
from zrb import DockerComposeStartTask, runner
|
2
2
|
|
3
3
|
from ...._project import start_project_containers
|
4
4
|
from ..._checker import (
|
@@ -13,16 +13,17 @@ from ..._checker import (
|
|
13
13
|
)
|
14
14
|
from ..._constant import PREFER_MICROSERVICES, RESOURCE_DIR
|
15
15
|
from ..._input import host_input, https_input, local_input
|
16
|
+
from ...image import build_snake_zrb_app_name_image
|
16
17
|
from ...image._env import image_env
|
17
18
|
from ...image._input import image_input
|
18
19
|
from .._env import compose_env_file, host_port_env
|
19
20
|
from .._input import enable_monitoring_input
|
20
21
|
from .._service_config import snake_zrb_app_name_service_configs
|
22
|
+
from ..remove import remove_snake_zrb_app_name_container
|
21
23
|
from ._group import snake_zrb_app_name_microservices_container_group
|
22
24
|
from ._helper import activate_microservices_compose_profile
|
23
|
-
from .init import init_snake_zrb_app_name_microservices_container
|
24
25
|
|
25
|
-
start_snake_zrb_app_name_microservices_container =
|
26
|
+
start_snake_zrb_app_name_microservices_container = DockerComposeStartTask(
|
26
27
|
icon="🐳",
|
27
28
|
name="start",
|
28
29
|
description="Start human readable zrb app name container",
|
@@ -35,11 +36,9 @@ start_snake_zrb_app_name_microservices_container = DockerComposeTask(
|
|
35
36
|
image_input,
|
36
37
|
],
|
37
38
|
should_execute="{{ input.local_snake_zrb_app_name}}",
|
38
|
-
upstreams=[
|
39
|
+
upstreams=[build_snake_zrb_app_name_image, remove_snake_zrb_app_name_container],
|
39
40
|
cwd=RESOURCE_DIR,
|
40
41
|
setup_cmd=activate_microservices_compose_profile,
|
41
|
-
compose_cmd="logs",
|
42
|
-
compose_flags=["-f"],
|
43
42
|
compose_env_prefix="CONTAINER_ZRB_ENV_PREFIX",
|
44
43
|
compose_service_configs=snake_zrb_app_name_service_configs,
|
45
44
|
env_files=[compose_env_file],
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from typing import Any
|
1
|
+
from typing import Any
|
2
2
|
|
3
3
|
from ..support._helper import get_support_container_compose_profiles
|
4
4
|
|
@@ -16,7 +16,7 @@ def should_start_monolith_container(*args: Any, **kwargs: Any) -> bool:
|
|
16
16
|
return len(compose_profiles) > 0
|
17
17
|
|
18
18
|
|
19
|
-
def _get_monolith_container_compose_profiles(*args: Any, **kwargs: Any) ->
|
19
|
+
def _get_monolith_container_compose_profiles(*args: Any, **kwargs: Any) -> list[str]:
|
20
20
|
compose_profiles = get_support_container_compose_profiles(*args, **kwargs)
|
21
21
|
compose_profiles.append("monolith")
|
22
22
|
return compose_profiles
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from zrb import
|
1
|
+
from zrb import DockerComposeStartTask, runner
|
2
2
|
|
3
3
|
from ...._project import start_project_containers
|
4
4
|
from ..._checker import (
|
@@ -13,16 +13,17 @@ from ..._checker import (
|
|
13
13
|
)
|
14
14
|
from ..._constant import PREFER_MICROSERVICES, RESOURCE_DIR
|
15
15
|
from ..._input import host_input, https_input, local_input
|
16
|
+
from ...image import build_snake_zrb_app_name_image
|
16
17
|
from ...image._env import image_env
|
17
18
|
from ...image._input import image_input
|
18
19
|
from .._env import compose_env_file, host_port_env
|
19
20
|
from .._input import enable_monitoring_input
|
20
21
|
from .._service_config import snake_zrb_app_name_service_configs
|
22
|
+
from ..remove import remove_snake_zrb_app_name_container
|
21
23
|
from ._group import snake_zrb_app_name_monolith_container_group
|
22
24
|
from ._helper import activate_monolith_compose_profile
|
23
|
-
from .init import init_snake_zrb_app_name_monolith_container
|
24
25
|
|
25
|
-
start_snake_zrb_app_name_monolith_container =
|
26
|
+
start_snake_zrb_app_name_monolith_container = DockerComposeStartTask(
|
26
27
|
icon="🐳",
|
27
28
|
name="start",
|
28
29
|
description="Start human readable zrb app name container",
|
@@ -35,11 +36,9 @@ start_snake_zrb_app_name_monolith_container = DockerComposeTask(
|
|
35
36
|
image_input,
|
36
37
|
],
|
37
38
|
should_execute="{{ input.local_snake_zrb_app_name}}",
|
38
|
-
upstreams=[
|
39
|
+
upstreams=[build_snake_zrb_app_name_image, remove_snake_zrb_app_name_container],
|
39
40
|
cwd=RESOURCE_DIR,
|
40
41
|
setup_cmd=activate_monolith_compose_profile,
|
41
|
-
compose_cmd="logs",
|
42
|
-
compose_flags=["-f"],
|
43
42
|
compose_env_prefix="CONTAINER_ZRB_ENV_PREFIX",
|
44
43
|
compose_service_configs=snake_zrb_app_name_service_configs,
|
45
44
|
env_files=[compose_env_file],
|
@@ -5,6 +5,7 @@ from .._constant import RESOURCE_DIR
|
|
5
5
|
from ..image._env import image_env
|
6
6
|
from ._env import compose_env_file, host_port_env
|
7
7
|
from ._group import snake_zrb_app_name_container_group
|
8
|
+
from ._helper import activate_all_compose_profile
|
8
9
|
from ._service_config import snake_zrb_app_name_service_configs
|
9
10
|
|
10
11
|
stop_snake_zrb_app_name_container = DockerComposeTask(
|
@@ -13,6 +14,7 @@ stop_snake_zrb_app_name_container = DockerComposeTask(
|
|
13
14
|
description="Stop human readable zrb app name container",
|
14
15
|
group=snake_zrb_app_name_container_group,
|
15
16
|
cwd=RESOURCE_DIR,
|
17
|
+
setup_cmd=activate_all_compose_profile,
|
16
18
|
compose_cmd="stop",
|
17
19
|
compose_env_prefix="CONTAINER_ZRB_ENV_PREFIX",
|
18
20
|
compose_service_configs=snake_zrb_app_name_service_configs,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from typing import Any
|
1
|
+
from typing import Any
|
2
2
|
|
3
3
|
from zrb import Task
|
4
4
|
|
@@ -16,10 +16,12 @@ def should_start_support_container(*args: Any, **kwargs: Any) -> bool:
|
|
16
16
|
return len(compose_profiles) > 0
|
17
17
|
|
18
18
|
|
19
|
-
def get_support_container_compose_profiles(*args: Any, **kwargs: Any) ->
|
19
|
+
def get_support_container_compose_profiles(*args: Any, **kwargs: Any) -> list[str]:
|
20
20
|
task: Task = kwargs.get("_task")
|
21
21
|
env_map = task.get_env_map()
|
22
|
-
compose_profiles:
|
22
|
+
compose_profiles: list[str] = []
|
23
|
+
if env_map.get("APP_DB_CONNECTION", "").startswith("postgresql"):
|
24
|
+
compose_profiles.append("postgres")
|
23
25
|
broker_type = env_map.get("APP_BROKER_TYPE", "rabbitmq")
|
24
26
|
if broker_type in ["rabbitmq", "kafka"]:
|
25
27
|
compose_profiles.append(broker_type)
|
zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/start.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
from zrb import
|
1
|
+
from zrb import DockerComposeStartTask, runner
|
2
2
|
|
3
3
|
from ..._checker import (
|
4
4
|
kafka_outside_checker,
|
@@ -15,11 +15,11 @@ from ...image._input import image_input
|
|
15
15
|
from .._env import compose_env_file
|
16
16
|
from .._input import enable_monitoring_input
|
17
17
|
from .._service_config import snake_zrb_app_name_service_configs
|
18
|
+
from ..remove import remove_snake_zrb_app_name_container
|
18
19
|
from ._group import snake_zrb_app_name_support_container_group
|
19
20
|
from ._helper import activate_support_compose_profile, should_start_support_container
|
20
|
-
from .init import init_snake_zrb_app_name_support_container
|
21
21
|
|
22
|
-
start_snake_zrb_app_name_support_container =
|
22
|
+
start_snake_zrb_app_name_support_container = DockerComposeStartTask(
|
23
23
|
icon="🐳",
|
24
24
|
name="start",
|
25
25
|
description="Start human readable zrb app name container",
|
@@ -32,11 +32,9 @@ start_snake_zrb_app_name_support_container = DockerComposeTask(
|
|
32
32
|
image_input,
|
33
33
|
],
|
34
34
|
should_execute=should_start_support_container,
|
35
|
-
upstreams=[
|
35
|
+
upstreams=[remove_snake_zrb_app_name_container],
|
36
36
|
cwd=RESOURCE_DIR,
|
37
37
|
setup_cmd=activate_support_compose_profile,
|
38
|
-
compose_cmd="logs",
|
39
|
-
compose_flags=["-f"],
|
40
38
|
compose_env_prefix="CONTAINER_ZRB_ENV_PREFIX",
|
41
39
|
compose_service_configs=snake_zrb_app_name_service_configs,
|
42
40
|
env_files=[compose_env_file],
|
zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/_helper.py
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
from typing import List
|
2
|
-
|
3
1
|
from zrb import Env, EnvFile
|
4
2
|
from zrb.helper.util import to_kebab_case, to_snake_case
|
5
3
|
|
@@ -7,7 +5,7 @@ from .._constant import APP_TEMPLATE_ENV_FILE_NAME, MODULES
|
|
7
5
|
from .._env import app_enable_otel_env
|
8
6
|
|
9
7
|
|
10
|
-
def get_service_envs(base_port: int, module_index: int, module_name: str) ->
|
8
|
+
def get_service_envs(base_port: int, module_index: int, module_name: str) -> list[Env]:
|
11
9
|
kebab_module_name = to_kebab_case(module_name)
|
12
10
|
snake_module_name = to_snake_case(module_name)
|
13
11
|
upper_snake_module_name = snake_module_name.upper()
|
@@ -48,8 +46,8 @@ def get_service_env_file(module_name: str) -> EnvFile:
|
|
48
46
|
)
|
49
47
|
|
50
48
|
|
51
|
-
def get_disable_all_module_envs() ->
|
52
|
-
disable_all_module_envs:
|
49
|
+
def get_disable_all_module_envs() -> list[Env]:
|
50
|
+
disable_all_module_envs: list[Env] = []
|
53
51
|
for module in MODULES:
|
54
52
|
snake_module_name = to_snake_case(module)
|
55
53
|
upper_snake_module_name = snake_module_name.upper()
|
zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/start.py
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
import os
|
2
|
+
from typing import Any
|
2
3
|
|
3
4
|
from zrb import Task, python_task, runner
|
4
5
|
from zrb.helper.accessories.color import colored
|
5
|
-
from zrb.helper.typing import Any
|
6
6
|
|
7
7
|
from ..._project import start_project
|
8
8
|
from .._constant import PREFER_MICROSERVICES
|
@@ -10,7 +10,7 @@ from .._input import host_input, https_input, local_input
|
|
10
10
|
from ..container._input import enable_monitoring_input
|
11
11
|
from ._group import snake_zrb_app_name_microservices_group
|
12
12
|
from .start_gateway import start_snake_zrb_app_name_gateway
|
13
|
-
from .
|
13
|
+
from .start_services import start_snake_zrb_app_name_services
|
14
14
|
|
15
15
|
_CURRENT_DIR = os.path.dirname(__file__)
|
16
16
|
|
@@ -28,7 +28,7 @@ _CURRENT_DIR = os.path.dirname(__file__)
|
|
28
28
|
],
|
29
29
|
upstreams=[
|
30
30
|
start_snake_zrb_app_name_gateway,
|
31
|
-
*
|
31
|
+
*start_snake_zrb_app_name_services,
|
32
32
|
],
|
33
33
|
)
|
34
34
|
def start_snake_zrb_app_name_microservices(*args: Any, **kwargs: Any):
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import os
|
2
|
-
from typing import List
|
3
2
|
|
4
3
|
from zrb import CmdTask, HTTPChecker, Task
|
5
4
|
from zrb.helper.util import to_kebab_case
|
@@ -16,7 +15,7 @@ _CURRENT_DIR = os.path.dirname(__file__)
|
|
16
15
|
|
17
16
|
|
18
17
|
_disable_all_module_envs = get_disable_all_module_envs()
|
19
|
-
|
18
|
+
start_snake_zrb_app_name_services: list[Task] = []
|
20
19
|
for _module_index, _module_name in enumerate(MODULES):
|
21
20
|
_service_env_file = get_service_env_file(_module_name)
|
22
21
|
_service_envs = get_service_envs(zrbAppHttpPort, _module_index, _module_name)
|
@@ -52,4 +51,4 @@ for _module_index, _module_name in enumerate(MODULES):
|
|
52
51
|
)
|
53
52
|
],
|
54
53
|
)
|
55
|
-
|
54
|
+
start_snake_zrb_app_name_services.append(_start_service)
|
@@ -0,0 +1 @@
|
|
1
|
+
zrbVersion
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import copy
|
2
2
|
import os
|
3
3
|
import re
|
4
|
-
from
|
4
|
+
from collections.abc import Mapping
|
5
5
|
|
6
6
|
import jsons
|
7
7
|
from dotenv import dotenv_values
|
@@ -22,7 +22,7 @@ ENABLE_MONITORING: bool = os.getenv("ENABLE_MONITORING", "0") in [
|
|
22
22
|
]
|
23
23
|
|
24
24
|
MODULE_JSON_STR: str = os.getenv("MODULES", "[]")
|
25
|
-
MODULES:
|
25
|
+
MODULES: list[str] = jsons.loads(MODULE_JSON_STR)
|
26
26
|
|
27
27
|
APP_DIR: str = os.path.abspath(os.path.join(CURRENT_DIR, "..", "src"))
|
28
28
|
TEMPLATE_ENV_FILE_NAME: str = os.path.join(APP_DIR, "template.env")
|
@@ -56,7 +56,7 @@ SIGNOZ_CLICKHOUSE_PASSWORD: str = os.getenv("SIGNOZ_CLICKHOUSE_PASSWORD", "toor"
|
|
56
56
|
|
57
57
|
|
58
58
|
def get_app_monolith_env_map(
|
59
|
-
template_env_map: Mapping[str, str], modules:
|
59
|
+
template_env_map: Mapping[str, str], modules: list[str]
|
60
60
|
) -> Mapping[str, str]:
|
61
61
|
env_map = copy.deepcopy(template_env_map)
|
62
62
|
env_map["APP_RMQ_CONNECTION"] = (
|
@@ -84,7 +84,7 @@ def get_app_monolith_env_map(
|
|
84
84
|
|
85
85
|
|
86
86
|
def get_app_gateway_env_map(
|
87
|
-
template_env_map: Mapping[str, str], modules:
|
87
|
+
template_env_map: Mapping[str, str], modules: list[str]
|
88
88
|
) -> Mapping[str, str]:
|
89
89
|
env_map = get_app_monolith_env_map(template_env_map, modules)
|
90
90
|
for module_name in modules:
|
@@ -99,7 +99,7 @@ def get_app_gateway_env_map(
|
|
99
99
|
|
100
100
|
|
101
101
|
def get_app_service_env_map(
|
102
|
-
template_env_map: Mapping[str, str], modules:
|
102
|
+
template_env_map: Mapping[str, str], modules: list[str], current_module: str
|
103
103
|
) -> Mapping[str, str]:
|
104
104
|
env_map = get_app_monolith_env_map(template_env_map, modules)
|
105
105
|
for module_name in modules:
|
zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/deployment/app_helper.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import os
|
2
|
-
from
|
2
|
+
from collections.abc import Mapping
|
3
3
|
|
4
4
|
import pulumi_kubernetes as k8s
|
5
5
|
from _common import (
|
@@ -24,8 +24,8 @@ app_port = int(os.getenv("APP_PORT", app_monolith_env_map.get("APP_PORT", "8080"
|
|
24
24
|
app_gateway_env_map = get_app_gateway_env_map(TEMPLATE_ENV_MAP, MODULES)
|
25
25
|
|
26
26
|
|
27
|
-
def create_app_microservices_deployments() ->
|
28
|
-
deployments:
|
27
|
+
def create_app_microservices_deployments() -> list[k8s.apps.v1.Deployment]:
|
28
|
+
deployments: list[k8s.apps.v1.Deployment] = []
|
29
29
|
deployments.append(
|
30
30
|
_create_app_deployment(
|
31
31
|
resource_name="kebab-zrb-app-name-gateway",
|
@@ -58,8 +58,8 @@ def create_app_microservices_deployments() -> List[k8s.apps.v1.Deployment]:
|
|
58
58
|
return deployments
|
59
59
|
|
60
60
|
|
61
|
-
def create_app_microservices_services() ->
|
62
|
-
services:
|
61
|
+
def create_app_microservices_services() -> list[k8s.core.v1.Service]:
|
62
|
+
services: list[k8s.core.v1.Service] = []
|
63
63
|
services.append(
|
64
64
|
_create_app_service(
|
65
65
|
resource_name="kebab-zrb-app-name-gateway",
|
@@ -1,5 +1,3 @@
|
|
1
|
-
version: '3'
|
2
|
-
|
3
1
|
x-logging: &default-logging
|
4
2
|
options:
|
5
3
|
max-size: "100m"
|
@@ -112,6 +110,8 @@ services:
|
|
112
110
|
container_name: ${CONTAINER_PREFIX:-my}-kebab-zrb-app-name-postgresql
|
113
111
|
hostname: postgresql
|
114
112
|
restart: unless-stopped
|
113
|
+
profiles:
|
114
|
+
- postgres
|
115
115
|
environment:
|
116
116
|
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
117
117
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-admin}
|
@@ -2,9 +2,7 @@ import os
|
|
2
2
|
|
3
3
|
from locust import HttpUser, between, task
|
4
4
|
|
5
|
-
access_token_cookie_key = os.getenv(
|
6
|
-
"PUBLIC_AUTH_ACCESS_TOKEN_COOKIE_KEY", "access_token"
|
7
|
-
)
|
5
|
+
access_token_cookie_key = os.getenv("APP_AUTH_ACCESS_TOKEN_COOKIE_KEY", "access_token")
|
8
6
|
admin_username = os.getenv("APP_AUTH_ADMIN_USERNAME", "root")
|
9
7
|
admin_password = os.getenv("APP_AUTH_ADMIN_PASSWORD", "toor")
|
10
8
|
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import asyncio
|
2
2
|
import logging
|
3
|
-
from
|
3
|
+
from collections.abc import Mapping
|
4
|
+
from typing import Optional
|
4
5
|
|
5
6
|
from aiokafka import __version__
|
6
7
|
from aiokafka.admin import AIOKafkaAdminClient, NewTopic
|
@@ -44,7 +45,7 @@ class KafkaAdmin(Admin):
|
|
44
45
|
self.sasl_oauth_token_provider = sasl_oauth_token_provider
|
45
46
|
self._existing_events: Mapping[str, bool] = {}
|
46
47
|
|
47
|
-
async def create_events(self, event_names:
|
48
|
+
async def create_events(self, event_names: list[str]):
|
48
49
|
# Only handle non-existing events
|
49
50
|
event_names = [
|
50
51
|
event_name
|
@@ -72,7 +73,7 @@ class KafkaAdmin(Admin):
|
|
72
73
|
for event_name in event_names:
|
73
74
|
self._existing_events[event_name] = True
|
74
75
|
|
75
|
-
async def delete_events(self, event_names:
|
76
|
+
async def delete_events(self, event_names: list[str]):
|
76
77
|
# Only handle existing events
|
77
78
|
event_names = [
|
78
79
|
event_name
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import asyncio
|
2
2
|
import inspect
|
3
3
|
import logging
|
4
|
-
from
|
4
|
+
from collections.abc import Callable, Mapping
|
5
|
+
from typing import Any, Optional
|
5
6
|
|
6
7
|
from aiokafka import AIOKafkaConsumer, __version__
|
7
8
|
from aiokafka.consumer.consumer import RoundRobinPartitionAssignor
|
@@ -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, Optional
|
3
4
|
|
4
5
|
from component.serializer.serializer import JsonSerializer, Serializer
|
5
6
|
|
@@ -8,11 +9,11 @@ TEventHandler = Callable[[Any], Any]
|
|
8
9
|
|
9
10
|
class Admin(ABC):
|
10
11
|
@abstractmethod
|
11
|
-
async def create_events(self, event_names:
|
12
|
+
async def create_events(self, event_names: list[str]):
|
12
13
|
pass
|
13
14
|
|
14
15
|
@abstractmethod
|
15
|
-
async def delete_events(self, event_names:
|
16
|
+
async def delete_events(self, event_names: list[str]):
|
16
17
|
pass
|
17
18
|
|
18
19
|
|
zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/mock.py
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
import asyncio
|
2
2
|
import inspect
|
3
3
|
import logging
|
4
|
-
from
|
4
|
+
from collections.abc import Callable, Mapping
|
5
|
+
from typing import Any
|
5
6
|
|
6
7
|
from component.messagebus.messagebus import (
|
7
8
|
Admin,
|
@@ -59,8 +60,8 @@ class MockPublisher(Publisher):
|
|
59
60
|
|
60
61
|
|
61
62
|
class MockAdmin(Admin):
|
62
|
-
async def create_events(self, event_names:
|
63
|
+
async def create_events(self, event_names: list[str]):
|
63
64
|
return
|
64
65
|
|
65
|
-
async def delete_events(self, event_names:
|
66
|
+
async def delete_events(self, event_names: list[str]):
|
66
67
|
return
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import asyncio
|
2
2
|
import logging
|
3
|
-
from
|
3
|
+
from collections.abc import Mapping
|
4
|
+
from typing import Any, Optional
|
4
5
|
|
5
6
|
import aiormq
|
6
7
|
from component.messagebus.messagebus import Admin
|
@@ -28,7 +29,7 @@ class RMQAdmin(Admin):
|
|
28
29
|
self.configs = configs
|
29
30
|
self._existing_events: Mapping[str, bool] = {}
|
30
31
|
|
31
|
-
async def create_events(self, event_names:
|
32
|
+
async def create_events(self, event_names: list[str]):
|
32
33
|
# Only handle non-existing events
|
33
34
|
event_names = [
|
34
35
|
event_name
|
@@ -60,7 +61,7 @@ class RMQAdmin(Admin):
|
|
60
61
|
exc_info=True,
|
61
62
|
)
|
62
63
|
|
63
|
-
async def delete_events(self, event_names:
|
64
|
+
async def delete_events(self, event_names: list[str]):
|
64
65
|
# Only handle existing events
|
65
66
|
event_names = [
|
66
67
|
event_name
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import asyncio
|
2
2
|
import inspect
|
3
3
|
import logging
|
4
|
-
from
|
4
|
+
from collections.abc import Callable, Mapping
|
5
|
+
from typing import Any, Optional
|
5
6
|
|
6
7
|
import aiormq
|
7
8
|
from component.messagebus.messagebus import (
|
@@ -68,7 +69,7 @@ class RMQConsumer(Consumer):
|
|
68
69
|
await self._connect()
|
69
70
|
event_names = list(self._handlers.keys())
|
70
71
|
await self.rmq_admin.create_events(event_names)
|
71
|
-
f'🐰 [{self.identifier}]
|
72
|
+
f'🐰 [{self.identifier}] listening from "{event_names}"'
|
72
73
|
for event_name in event_names:
|
73
74
|
queue_name = self.rmq_admin.get_queue_name(event_name)
|
74
75
|
on_message = self._create_consumer_callback(self.channel, event_name)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from typing import Generic,
|
1
|
+
from typing import Generic, Optional, Type, TypeVar
|
2
2
|
|
3
3
|
from component.repo.repo import Repo
|
4
4
|
from component.repo.search_filter import SearchFilter
|
@@ -18,10 +18,10 @@ class RepoModel(Generic[Schema, SchemaData, SchemaResult]):
|
|
18
18
|
async def get_by_id(self, id: str) -> Schema:
|
19
19
|
return await self.repo.get_by_id(id)
|
20
20
|
|
21
|
-
async def get_all(self) ->
|
21
|
+
async def get_all(self) -> list[Schema]:
|
22
22
|
count = await self.repo.count()
|
23
23
|
limit = 1000
|
24
|
-
schema_list:
|
24
|
+
schema_list: list[Schema] = []
|
25
25
|
for offset in range(0, count, limit):
|
26
26
|
partial_schema_list = await self.repo.get(limit=limit, offset=offset)
|
27
27
|
schema_list += partial_schema_list
|