zrb 0.6.0__py3-none-any.whl → 0.6.1__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 +24 -20
- zrb/__main__.py +5 -5
- zrb/action/runner.py +22 -30
- zrb/advertisement.py +10 -9
- zrb/builtin/__init__.py +18 -16
- zrb/builtin/base64.py +13 -18
- zrb/builtin/devtool/__init__.py +14 -3
- zrb/builtin/devtool/devtool_install.py +207 -221
- zrb/builtin/env.py +9 -12
- zrb/builtin/eval.py +9 -9
- zrb/builtin/explain.py +73 -74
- zrb/builtin/generator/__init__.py +7 -11
- zrb/builtin/generator/app_generator/add.py +86 -87
- zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/add.py +78 -77
- zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_checker.py +6 -6
- zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_common.py +14 -15
- zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/container.py +32 -32
- zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/deployment.py +29 -30
- zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/image.py +1 -3
- zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/local.py +5 -4
- zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/deployment/__main__.py +24 -32
- zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/add.py +89 -87
- zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_common.py +14 -15
- zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/container.py +42 -54
- zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/deployment.py +34 -32
- zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/image.py +19 -22
- zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/local.py +18 -18
- zrb/builtin/generator/app_generator/template/http-port/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_checker.py +10 -10
- zrb/builtin/generator/app_generator/template/http-port-build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/local.py +19 -19
- zrb/builtin/generator/app_generator/template/use-helm/_automate/generate_snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/deployment/__main__.py +12 -14
- zrb/builtin/generator/cmd_task/add.py +23 -25
- zrb/builtin/generator/cmd_task/template/_automate/snake_zrb_task_name.py +3 -5
- zrb/builtin/generator/common/helper.py +15 -20
- zrb/builtin/generator/common/task_factory.py +29 -26
- zrb/builtin/generator/common/task_input.py +97 -91
- zrb/builtin/generator/docker_compose_task/add.py +38 -39
- zrb/builtin/generator/docker_compose_task/template/_automate/snake_zrb_task_name.py +13 -19
- zrb/builtin/generator/docker_compose_task/template/src/kebab-zrb-task-name/image/main.py +18 -14
- zrb/builtin/generator/fastapp/add.py +94 -90
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_checker.py +28 -27
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_config.py +68 -39
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_env.py +24 -22
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_env_file.py +12 -12
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_get_start_microservices.py +43 -41
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_helper.py +23 -24
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_input.py +21 -20
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-load-test.sh +1 -1
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-start.sh +1 -1
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-test.sh +2 -2
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/container.py +46 -39
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/deployment.py +28 -20
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/frontend.py +21 -27
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/image.py +23 -18
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/load_test.py +35 -36
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/local.py +68 -58
- zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/test.py +24 -38
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/__main__.py +23 -21
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/_common.py +72 -75
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/app_helper.py +70 -75
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_postgresql_helper.py +18 -21
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_rabbitmq_helper.py +11 -19
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_redpanda_helper.py +18 -15
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_signoz_helper.py +17 -21
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/docker-compose.yml +12 -12
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/loadtest/locustfile.py +10 -12
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/Dockerfile +1 -0
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/app.py +35 -30
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/app_lifespan.py +21 -17
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/app_state.py +3 -2
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/db_connection.py +18 -20
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/frontend_index.py +5 -6
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/log.py +7 -15
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/messagebus.py +38 -34
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/rpc.py +19 -18
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/config.py +68 -103
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/error.py +11 -10
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/__init__.py +2 -4
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/kafka/admin.py +38 -35
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/kafka/consumer.py +38 -45
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/kafka/publisher.py +26 -29
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/messagebus.py +8 -14
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/mock.py +12 -8
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/rabbitmq/admin.py +37 -44
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/rabbitmq/consumer.py +42 -67
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/rabbitmq/publisher.py +32 -55
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/model/repo_model.py +11 -10
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/__init__.py +2 -2
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/db_entity_mixin.py +3 -6
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/db_repo.py +76 -83
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/repo.py +5 -5
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/search_filter.py +1 -0
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/__init__.py +1 -1
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/messagebus/caller.py +17 -19
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/messagebus/server.py +14 -18
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/rpc.py +15 -28
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/schema/__init__.py +1 -1
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/schema/base_schema.py +6 -5
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/serializer/__init__.py +1 -3
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/serializer/serializer.py +3 -4
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/helper/async_task.py +3 -5
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/helper/conversion.py +10 -10
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/helper/migration.py +6 -10
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/migrate.py +3 -2
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/api.py +7 -12
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/__init__.py +4 -6
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/access_token_scheme.py +9 -10
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/access_token_util.py +6 -5
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/authorizer.py +4 -4
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/bearer_token_scheme.py +1 -1
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/model/user_model.py +8 -10
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/password_hasher.py +1 -1
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/refresh_token_util.py +7 -6
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/repo/group_repo.py +3 -8
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/repo/permission_repo.py +3 -7
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/repo/user_repo.py +3 -5
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/user.py +12 -7
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/__init__.py +7 -12
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/access_token/scheme.py +7 -12
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/access_token/util.py +20 -30
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/authorizer/authorizer.py +1 -3
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/authorizer/rpc_authorizer.py +5 -12
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/password_hasher/bcrypt_password_hasher.py +3 -8
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/password_hasher/password_hasher.py +0 -1
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/refresh_token/util.py +15 -21
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/api.py +42 -49
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/model.py +3 -7
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/repo.py +18 -16
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/rpc.py +26 -41
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/api.py +46 -51
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/model.py +5 -7
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/repo.py +11 -8
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/rpc.py +28 -45
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/table.py +10 -10
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/api.py +60 -72
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/model.py +32 -61
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/repo.py +33 -36
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/rpc.py +42 -61
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/event.py +2 -4
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/migrate.py +3 -5
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/register_module.py +11 -12
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/register_permission.py +19 -26
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/rpc.py +5 -13
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/group.py +6 -4
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/permission.py +3 -1
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/request.py +1 -0
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/token.py +2 -2
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/user.py +4 -3
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/api.py +4 -5
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/component/model/activity_model.py +3 -9
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/component/repo/activity_repo.py +3 -7
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/core/historical_repo_model.py +13 -13
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/api.py +22 -23
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/event.py +5 -7
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/model.py +2 -6
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/repo.py +8 -8
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/rpc.py +28 -45
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/table.py +3 -3
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/event.py +4 -8
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/migrate.py +2 -4
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/register_module.py +10 -11
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/rpc.py +3 -5
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/schema/activity.py +3 -1
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/requirements.txt +12 -12
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_group_crud.py +76 -106
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_permission_crud.py +73 -103
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_user_crud.py +92 -122
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_user_login.py +107 -134
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/conftest.py +2 -2
- zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/test_liveness_and_readiness.py +8 -15
- zrb/builtin/generator/fastapp_crud/add.py +74 -79
- zrb/builtin/generator/fastapp_crud/helper.py +51 -48
- zrb/builtin/generator/fastapp_crud/task_factory.py +17 -14
- zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/component/model/snake_zrb_entity_name_model.py +2 -2
- zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/component/repo/snake_zrb_entity_name_repo.py +3 -2
- zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/api.py +58 -40
- zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/model.py +7 -3
- zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/repo.py +9 -4
- zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/rpc.py +32 -39
- zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/schema/snake_zrb_entity_name.py +3 -1
- zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/test/snake_zrb_module_name/test_snake_zrb_entity_name.py +68 -98
- zrb/builtin/generator/fastapp_field/add.py +143 -85
- zrb/builtin/generator/fastapp_field/helper.py +184 -125
- zrb/builtin/generator/fastapp_module/add.py +90 -67
- zrb/builtin/generator/fastapp_module/helper.py +141 -155
- zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/api.py +3 -2
- zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/table.py +3 -3
- zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/event.py +3 -5
- zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/migrate.py +2 -4
- zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/register_module.py +10 -11
- zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/rpc.py +3 -5
- zrb/builtin/generator/pip_package/add.py +39 -40
- zrb/builtin/generator/pip_package/template/_automate/snake_zrb_package_name/local.py +30 -30
- zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/__init__.py +1 -0
- zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/__main__.py +1 -0
- zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/util.py +2 -2
- zrb/builtin/generator/plugin/create.py +39 -36
- zrb/builtin/generator/plugin/template/src/snake_zrb_package_name/__init__.py +1 -1
- zrb/builtin/generator/plugin/template/src/snake_zrb_package_name/__main__.py +1 -0
- zrb/builtin/generator/plugin/template/src/snake_zrb_package_name/task/example_task.py +6 -4
- zrb/builtin/generator/plugin/template/zrb_init.py +27 -27
- zrb/builtin/generator/project/create.py +38 -46
- zrb/builtin/generator/project/template/.flake8 +3 -0
- zrb/builtin/generator/project/template/project.sh +19 -10
- zrb/builtin/generator/project_task/task_factory.py +60 -61
- zrb/builtin/generator/project_task/template/_automate/_project/__init__.py +2 -2
- zrb/builtin/generator/project_task/template/_automate/_project/build_project_images.py +4 -4
- zrb/builtin/generator/project_task/template/_automate/_project/deploy_project.py +4 -4
- zrb/builtin/generator/project_task/template/_automate/_project/destroy_project.py +4 -4
- zrb/builtin/generator/project_task/template/_automate/_project/push_project_images.py +4 -4
- zrb/builtin/generator/project_task/template/_automate/_project/remove_project_containers.py +4 -4
- zrb/builtin/generator/project_task/template/_automate/_project/start_project.py +4 -4
- zrb/builtin/generator/project_task/template/_automate/_project/start_project_containers.py +4 -4
- zrb/builtin/generator/project_task/template/_automate/_project/stop_project_containers.py +4 -4
- zrb/builtin/generator/python_task/add.py +25 -33
- zrb/builtin/generator/python_task/template/_automate/snake_zrb_task_name.py +8 -7
- zrb/builtin/generator/simple_python_app/add.py +81 -75
- zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/_common.py +14 -15
- zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/container.py +46 -61
- zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/deployment.py +34 -32
- zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/image.py +19 -22
- zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/local.py +23 -25
- zrb/builtin/generator/simple_python_app/template/src/kebab-zrb-app-name/deployment/__main__.py +24 -32
- zrb/builtin/generator/simple_python_app/template/src/kebab-zrb-app-name/src/main.py +18 -14
- zrb/builtin/git.py +46 -46
- zrb/builtin/group.py +13 -34
- zrb/builtin/helper/reccuring_action.py +26 -29
- zrb/builtin/md5.py +17 -30
- zrb/builtin/process.py +19 -19
- zrb/builtin/project.py +13 -15
- zrb/builtin/say.py +69 -88
- zrb/builtin/schedule.py +15 -19
- zrb/builtin/ubuntu.py +44 -35
- zrb/builtin/update.py +5 -5
- zrb/builtin/version.py +3 -7
- zrb/builtin/watch_changes.py +24 -25
- zrb/config/config.py +19 -18
- zrb/helper/accessories/color.py +18 -6
- zrb/helper/accessories/icon.py +24 -3
- zrb/helper/accessories/name.py +120 -28
- zrb/helper/advertisement.py +9 -13
- zrb/helper/callable.py +2 -4
- zrb/helper/cli.py +27 -31
- zrb/helper/codemod/add_argument_to_function.py +3 -4
- zrb/helper/codemod/add_argument_to_function_call.py +4 -7
- zrb/helper/codemod/add_assert_resource.py +7 -7
- zrb/helper/codemod/add_function_call.py +3 -5
- zrb/helper/codemod/add_import_module.py +15 -26
- zrb/helper/codemod/add_key_value_to_dict.py +7 -10
- zrb/helper/codemod/add_property_to_class.py +10 -8
- zrb/helper/codemod/add_upstream_to_task.py +21 -33
- zrb/helper/codemod/append_code_to_function.py +6 -13
- zrb/helper/codemod/format_code.py +2 -1
- zrb/helper/default_env.py +25 -25
- zrb/helper/docker_compose/fetch_external_env.py +18 -18
- zrb/helper/docker_compose/file.py +5 -4
- zrb/helper/docstring.py +44 -47
- zrb/helper/env_map/fetch.py +7 -12
- zrb/helper/file/copy_tree.py +12 -17
- zrb/helper/file/match.py +6 -7
- zrb/helper/file/text.py +8 -6
- zrb/helper/git/detect_changes.py +9 -8
- zrb/helper/loader/load_module.py +14 -13
- zrb/helper/log.py +4 -3
- zrb/helper/map/conversion.py +4 -5
- zrb/helper/python_task.py +2 -4
- zrb/helper/render_data.py +25 -18
- zrb/helper/string/constant.py +2 -2
- zrb/helper/string/conversion.py +17 -16
- zrb/helper/string/jinja.py +2 -2
- zrb/helper/typecheck.py +6 -4
- zrb/helper/typing.py +10 -2
- zrb/helper/util.py +44 -40
- zrb/task/any_task.py +251 -251
- zrb/task/base_remote_cmd_task.py +76 -59
- zrb/task/base_task/base_task.py +95 -108
- zrb/task/base_task/component/base_task_model.py +73 -71
- zrb/task/base_task/component/common_task_model.py +42 -29
- zrb/task/base_task/component/pid_model.py +3 -5
- zrb/task/base_task/component/renderer.py +26 -36
- zrb/task/base_task/component/trackers.py +6 -9
- zrb/task/checker.py +14 -9
- zrb/task/cmd_task.py +102 -100
- zrb/task/decorator.py +19 -13
- zrb/task/docker_compose_task.py +127 -98
- zrb/task/flow_task.py +16 -19
- zrb/task/http_checker.py +40 -36
- zrb/task/notifier.py +50 -38
- zrb/task/parallel.py +3 -3
- zrb/task/path_checker.py +34 -27
- zrb/task/path_watcher.py +49 -40
- zrb/task/port_checker.py +33 -26
- zrb/task/recurring_task.py +36 -42
- zrb/task/remote_cmd_task.py +31 -28
- zrb/task/resource_maker.py +66 -52
- zrb/task/rsync_task.py +24 -21
- zrb/task/task.py +4 -3
- zrb/task/time_watcher.py +36 -31
- zrb/task_env/constant.py +1 -1
- zrb/task_env/env.py +33 -31
- zrb/task_env/env_file.py +24 -23
- zrb/task_group/group.py +27 -30
- zrb/task_input/any_input.py +18 -16
- zrb/task_input/base_input.py +26 -26
- zrb/task_input/bool_input.py +6 -6
- zrb/task_input/choice_input.py +11 -9
- zrb/task_input/constant.py +1 -1
- zrb/task_input/float_input.py +6 -5
- zrb/task_input/int_input.py +8 -8
- zrb/task_input/password_input.py +9 -9
- zrb/task_input/str_input.py +8 -8
- zrb/task_input/task_input.py +4 -2
- {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/METADATA +3 -1
- {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/RECORD +316 -315
- {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/LICENSE +0 -0
- {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/WHEEL +0 -0
- {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/entry_points.txt +0 -0
@@ -1,28 +1,32 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
import asyncio
|
2
|
+
import os
|
3
|
+
|
4
|
+
from zrb.builtin.generator.common.helper import validate_existing_project_dir
|
5
|
+
from zrb.builtin.generator.common.task_input import (
|
6
|
+
app_name_input,
|
7
|
+
entity_name_input,
|
8
|
+
main_column_name_input,
|
9
|
+
module_name_input,
|
10
|
+
plural_entity_name_input,
|
11
|
+
project_dir_input,
|
4
12
|
)
|
5
13
|
from zrb.builtin.generator.fastapp_crud.helper import (
|
6
|
-
register_api,
|
7
|
-
|
8
|
-
|
9
|
-
project_dir_input, app_name_input, module_name_input, entity_name_input,
|
10
|
-
plural_entity_name_input, main_column_name_input
|
14
|
+
register_api,
|
15
|
+
register_permission,
|
16
|
+
register_rpc,
|
11
17
|
)
|
12
|
-
from zrb.builtin.generator.
|
18
|
+
from zrb.builtin.generator.fastapp_crud.task_factory import create_add_navigation_task
|
13
19
|
from zrb.builtin.group import project_add_group
|
14
|
-
from zrb.
|
15
|
-
from zrb.
|
20
|
+
from zrb.helper import util
|
21
|
+
from zrb.helper.typing import Any
|
22
|
+
from zrb.runner import runner
|
16
23
|
from zrb.task.cmd_task import CmdTask
|
24
|
+
from zrb.task.decorator import python_task
|
17
25
|
from zrb.task.resource_maker import ResourceMaker
|
18
|
-
from zrb.
|
19
|
-
from zrb.helper import util
|
20
|
-
|
21
|
-
import asyncio
|
22
|
-
import os
|
26
|
+
from zrb.task.task import Task
|
23
27
|
|
24
28
|
CURRENT_DIR = os.path.dirname(__file__)
|
25
|
-
CODEMOD_DIR = os.path.join(CURRENT_DIR,
|
29
|
+
CODEMOD_DIR = os.path.join(CURRENT_DIR, "nodejs", "codemod")
|
26
30
|
|
27
31
|
###############################################################################
|
28
32
|
# Task Definitions
|
@@ -30,41 +34,35 @@ CODEMOD_DIR = os.path.join(CURRENT_DIR, 'nodejs', 'codemod')
|
|
30
34
|
|
31
35
|
|
32
36
|
@python_task(
|
33
|
-
name=
|
34
|
-
inputs=[
|
35
|
-
project_dir_input, app_name_input, module_name_input, entity_name_input
|
36
|
-
],
|
37
|
+
name="validate",
|
38
|
+
inputs=[project_dir_input, app_name_input, module_name_input, entity_name_input],
|
37
39
|
)
|
38
40
|
async def validate(*args: Any, **kwargs: Any):
|
39
|
-
project_dir = kwargs.get(
|
41
|
+
project_dir = kwargs.get("project_dir")
|
40
42
|
validate_existing_project_dir(project_dir)
|
41
|
-
app_name = kwargs.get(
|
42
|
-
module_name = kwargs.get(
|
43
|
-
entity_name = kwargs.get(
|
43
|
+
app_name = kwargs.get("app_name")
|
44
|
+
module_name = kwargs.get("module_name")
|
45
|
+
entity_name = kwargs.get("entity_name")
|
44
46
|
snake_module_name = util.to_snake_case(module_name)
|
45
47
|
snake_entity_name = util.to_snake_case(entity_name)
|
46
48
|
automation_dir = os.path.join(
|
47
|
-
project_dir,
|
49
|
+
project_dir, "_automate", util.to_snake_case(app_name)
|
48
50
|
)
|
49
51
|
if not os.path.exists(automation_dir):
|
50
|
-
raise Exception(
|
51
|
-
|
52
|
-
)
|
53
|
-
app_dir = os.path.join(
|
54
|
-
project_dir, 'src', f'{util.to_kebab_case(app_name)}'
|
55
|
-
)
|
52
|
+
raise Exception(f"Automation directory does not exist: {automation_dir}")
|
53
|
+
app_dir = os.path.join(project_dir, "src", f"{util.to_kebab_case(app_name)}")
|
56
54
|
if not os.path.exists(app_dir):
|
57
|
-
raise Exception(f
|
58
|
-
module_path = os.path.join(app_dir,
|
55
|
+
raise Exception(f"App directory does not exist: {app_dir}")
|
56
|
+
module_path = os.path.join(app_dir, "src", "module", snake_module_name)
|
59
57
|
if not os.path.exists(module_path):
|
60
|
-
raise Exception(f
|
61
|
-
entity_path = os.path.join(module_path,
|
58
|
+
raise Exception(f"Module directory does not exist: {module_path}")
|
59
|
+
entity_path = os.path.join(module_path, "entity", snake_entity_name)
|
62
60
|
if os.path.exists(entity_path):
|
63
|
-
raise Exception(f
|
61
|
+
raise Exception(f"Entity directory already exists: {entity_path}")
|
64
62
|
|
65
63
|
|
66
64
|
copy_resource = ResourceMaker(
|
67
|
-
name=
|
65
|
+
name="copy-resource",
|
68
66
|
inputs=[
|
69
67
|
project_dir_input,
|
70
68
|
app_name_input,
|
@@ -75,22 +73,22 @@ copy_resource = ResourceMaker(
|
|
75
73
|
],
|
76
74
|
upstreams=[validate],
|
77
75
|
replacements={
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
76
|
+
"zrbAppName": "{{input.app_name}}",
|
77
|
+
"zrbModuleName": "{{input.module_name}}",
|
78
|
+
"zrbEntityName": "{{input.entity_name}}",
|
79
|
+
"zrbPluralEntityName": "{{input.plural_entity_name}}",
|
80
|
+
"zrbColumnName": "{{input.column_name}}",
|
83
81
|
},
|
84
|
-
template_path=os.path.join(CURRENT_DIR,
|
85
|
-
destination_path=
|
82
|
+
template_path=os.path.join(CURRENT_DIR, "template"),
|
83
|
+
destination_path="{{ input.project_dir }}",
|
86
84
|
excludes=[
|
87
|
-
|
88
|
-
]
|
85
|
+
"*/__pycache__",
|
86
|
+
],
|
89
87
|
)
|
90
88
|
|
91
89
|
|
92
90
|
@python_task(
|
93
|
-
name=
|
91
|
+
name="register-crud",
|
94
92
|
inputs=[
|
95
93
|
project_dir_input,
|
96
94
|
app_name_input,
|
@@ -101,40 +99,40 @@ copy_resource = ResourceMaker(
|
|
101
99
|
],
|
102
100
|
upstreams=[
|
103
101
|
copy_resource,
|
104
|
-
]
|
102
|
+
],
|
105
103
|
)
|
106
104
|
async def register_crud(*args: Any, **kwargs: Any):
|
107
|
-
task: Task = kwargs.get(
|
108
|
-
project_dir = kwargs.get(
|
109
|
-
app_name = kwargs.get(
|
110
|
-
module_name = kwargs.get(
|
111
|
-
entity_name = kwargs.get(
|
105
|
+
task: Task = kwargs.get("_task")
|
106
|
+
project_dir = kwargs.get("project_dir", ".")
|
107
|
+
app_name = kwargs.get("app_name")
|
108
|
+
module_name = kwargs.get("module_name")
|
109
|
+
entity_name = kwargs.get("entity_name")
|
112
110
|
kebab_app_name = util.to_kebab_case(app_name)
|
113
111
|
snake_module_name = util.to_snake_case(module_name)
|
114
112
|
snake_entity_name = util.to_snake_case(entity_name)
|
115
113
|
await asyncio.gather(
|
116
|
-
asyncio.create_task(
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
114
|
+
asyncio.create_task(
|
115
|
+
register_api(
|
116
|
+
task, project_dir, kebab_app_name, snake_module_name, snake_entity_name
|
117
|
+
)
|
118
|
+
),
|
119
|
+
asyncio.create_task(
|
120
|
+
register_rpc(
|
121
|
+
task, project_dir, kebab_app_name, snake_module_name, snake_entity_name
|
122
|
+
)
|
123
|
+
),
|
124
|
+
asyncio.create_task(
|
125
|
+
register_permission(
|
126
|
+
task, project_dir, kebab_app_name, snake_module_name, snake_entity_name
|
127
|
+
)
|
128
|
+
),
|
128
129
|
)
|
129
130
|
|
130
131
|
|
131
132
|
prepare_codemod = CmdTask(
|
132
|
-
name=
|
133
|
+
name="prepare-codemod",
|
133
134
|
cwd=CODEMOD_DIR,
|
134
|
-
cmd=[
|
135
|
-
'npm install --save-dev',
|
136
|
-
'node_modules/.bin/tsc'
|
137
|
-
]
|
135
|
+
cmd=["npm install --save-dev", "node_modules/.bin/tsc"],
|
138
136
|
)
|
139
137
|
|
140
138
|
add_navigation = create_add_navigation_task(
|
@@ -146,14 +144,11 @@ add_navigation = create_add_navigation_task(
|
|
146
144
|
|
147
145
|
|
148
146
|
@python_task(
|
149
|
-
name=
|
147
|
+
name="fastapp-crud",
|
150
148
|
group=project_add_group,
|
151
|
-
upstreams=[
|
152
|
-
|
153
|
-
add_navigation
|
154
|
-
],
|
155
|
-
runner=runner
|
149
|
+
upstreams=[register_crud, add_navigation],
|
150
|
+
runner=runner,
|
156
151
|
)
|
157
152
|
async def add_fastapp_crud(*args: Any, **kwargs: Any):
|
158
|
-
task: Task = kwargs.get(
|
159
|
-
task.print_out(
|
153
|
+
task: Task = kwargs.get("_task")
|
154
|
+
task.print_out("Success")
|
@@ -1,9 +1,10 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
import os
|
2
|
+
|
3
3
|
from zrb.helper.codemod.add_import_module import add_import_module
|
4
4
|
from zrb.helper.codemod.append_code_to_function import append_code_to_function
|
5
5
|
from zrb.helper.file.text import read_text_file_async, write_text_file_async
|
6
|
-
import
|
6
|
+
from zrb.helper.typecheck import typechecked
|
7
|
+
from zrb.task.task import Task
|
7
8
|
|
8
9
|
|
9
10
|
@typechecked
|
@@ -12,35 +13,34 @@ async def register_api(
|
|
12
13
|
project_dir: str,
|
13
14
|
kebab_app_name: str,
|
14
15
|
snake_module_name: str,
|
15
|
-
snake_entity_name: str
|
16
|
+
snake_entity_name: str,
|
16
17
|
):
|
17
18
|
module_api_file_path = os.path.join(
|
18
|
-
project_dir,
|
19
|
-
|
19
|
+
project_dir, "src", kebab_app_name, "src", "module", snake_module_name, "api.py"
|
20
|
+
)
|
21
|
+
register_function_path = ".".join(
|
22
|
+
["module", snake_module_name, "entity", snake_entity_name, "api"]
|
20
23
|
)
|
21
|
-
|
22
|
-
|
23
|
-
])
|
24
|
-
register_function = f'register_{snake_entity_name}_api'
|
25
|
-
task.print_out(f'Read code from: {module_api_file_path}')
|
24
|
+
register_function = f"register_{snake_entity_name}_api"
|
25
|
+
task.print_out(f"Read code from: {module_api_file_path}")
|
26
26
|
code = await read_text_file_async(module_api_file_path)
|
27
27
|
task.print_out(
|
28
|
-
f'Add import "register_api" as "{register_function}" '
|
29
|
-
f'from "{register_function_path}" to the code'
|
28
|
+
f'Add import "register_api" as "{register_function}" '
|
29
|
+
+ f'from "{register_function_path}" to the code'
|
30
30
|
)
|
31
31
|
code = add_import_module(
|
32
32
|
code=code,
|
33
33
|
module_path=register_function_path,
|
34
|
-
resource=
|
35
|
-
alias=register_function
|
34
|
+
resource="register_api",
|
35
|
+
alias=register_function,
|
36
36
|
)
|
37
37
|
task.print_out(f'Add "{register_function}" call to the code')
|
38
38
|
code = append_code_to_function(
|
39
39
|
code=code,
|
40
|
-
function_name=
|
41
|
-
new_code=f
|
40
|
+
function_name="register_api",
|
41
|
+
new_code=f"{register_function}(logger, app, authorizer, rpc_caller, publisher)", # noqa
|
42
42
|
)
|
43
|
-
task.print_out(f
|
43
|
+
task.print_out(f"Write modified code to: {module_api_file_path}")
|
44
44
|
await write_text_file_async(module_api_file_path, code)
|
45
45
|
|
46
46
|
|
@@ -50,35 +50,34 @@ async def register_rpc(
|
|
50
50
|
project_dir: str,
|
51
51
|
kebab_app_name: str,
|
52
52
|
snake_module_name: str,
|
53
|
-
snake_entity_name: str
|
53
|
+
snake_entity_name: str,
|
54
54
|
):
|
55
55
|
module_rpc_file_path = os.path.join(
|
56
|
-
project_dir,
|
57
|
-
|
56
|
+
project_dir, "src", kebab_app_name, "src", "module", snake_module_name, "rpc.py"
|
57
|
+
)
|
58
|
+
register_function_path = ".".join(
|
59
|
+
["module", snake_module_name, "entity", snake_entity_name, "rpc"]
|
58
60
|
)
|
59
|
-
|
60
|
-
|
61
|
-
])
|
62
|
-
register_function = f'register_{snake_entity_name}_rpc'
|
63
|
-
task.print_out(f'Read code from: {module_rpc_file_path}')
|
61
|
+
register_function = f"register_{snake_entity_name}_rpc"
|
62
|
+
task.print_out(f"Read code from: {module_rpc_file_path}")
|
64
63
|
code = await read_text_file_async(module_rpc_file_path)
|
65
64
|
task.print_out(
|
66
|
-
f'Add import "register_rpc" as "{register_function}" '
|
67
|
-
f'from "{register_function_path}" to the code'
|
65
|
+
f'Add import "register_rpc" as "{register_function}" '
|
66
|
+
+ f'from "{register_function_path}" to the code'
|
68
67
|
)
|
69
68
|
code = add_import_module(
|
70
69
|
code=code,
|
71
70
|
module_path=register_function_path,
|
72
|
-
resource=
|
73
|
-
alias=register_function
|
71
|
+
resource="register_rpc",
|
72
|
+
alias=register_function,
|
74
73
|
)
|
75
74
|
task.print_out(f'Add "{register_function}" call to the code')
|
76
75
|
code = append_code_to_function(
|
77
76
|
code=code,
|
78
|
-
function_name=
|
79
|
-
new_code=f
|
77
|
+
function_name="register_rpc",
|
78
|
+
new_code=f"{register_function}(logger, rpc_server, rpc_caller, publisher)", # noqa
|
80
79
|
)
|
81
|
-
task.print_out(f
|
80
|
+
task.print_out(f"Write modified code to: {module_rpc_file_path}")
|
82
81
|
await write_text_file_async(module_rpc_file_path, code)
|
83
82
|
|
84
83
|
|
@@ -88,28 +87,32 @@ async def register_permission(
|
|
88
87
|
project_dir: str,
|
89
88
|
kebab_app_name: str,
|
90
89
|
snake_module_name: str,
|
91
|
-
snake_entity_name: str
|
90
|
+
snake_entity_name: str,
|
92
91
|
):
|
93
92
|
module_register_permission_file_path = os.path.join(
|
94
|
-
project_dir,
|
95
|
-
|
93
|
+
project_dir,
|
94
|
+
"src",
|
95
|
+
kebab_app_name,
|
96
|
+
"src",
|
97
|
+
"module",
|
98
|
+
"auth",
|
99
|
+
"register_permission.py",
|
96
100
|
)
|
97
|
-
task.print_out(f
|
101
|
+
task.print_out(f"Read code from: {module_register_permission_file_path}")
|
98
102
|
code = await read_text_file_async(module_register_permission_file_path)
|
99
103
|
code = append_code_to_function(
|
100
104
|
code=code,
|
101
|
-
function_name=
|
102
|
-
new_code=
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
f'Add "ensure_entity_permission" call for {snake_entity_name} ' +
|
110
|
-
'to the code'
|
105
|
+
function_name="register_permission",
|
106
|
+
new_code="\n".join(
|
107
|
+
[
|
108
|
+
"await ensure_entity_permission(",
|
109
|
+
f" module_name='{snake_module_name}', entity_name='{snake_entity_name}'", # noqa
|
110
|
+
")",
|
111
|
+
]
|
112
|
+
),
|
111
113
|
)
|
112
114
|
task.print_out(
|
113
|
-
f'
|
115
|
+
f'Add "ensure_entity_permission" call for {snake_entity_name} ' + "to the code"
|
114
116
|
)
|
117
|
+
task.print_out(f"Write modified code to: {module_register_permission_file_path}")
|
115
118
|
await write_text_file_async(module_register_permission_file_path, code)
|
@@ -1,27 +1,30 @@
|
|
1
|
-
|
1
|
+
import os
|
2
|
+
|
3
|
+
from zrb.builtin.generator.common.task_input import (
|
4
|
+
app_name_input,
|
5
|
+
entity_name_input,
|
6
|
+
module_name_input,
|
7
|
+
project_dir_input,
|
8
|
+
)
|
2
9
|
from zrb.helper.typecheck import typechecked
|
10
|
+
from zrb.helper.typing import List
|
3
11
|
from zrb.task.any_task import AnyTask
|
4
12
|
from zrb.task.cmd_task import CmdTask
|
5
|
-
from zrb.builtin.generator.common.task_input import (
|
6
|
-
project_dir_input, app_name_input, module_name_input, entity_name_input,
|
7
|
-
)
|
8
|
-
|
9
|
-
import os
|
10
13
|
|
11
14
|
CURRENT_DIR = os.path.dirname(__file__)
|
12
|
-
CODEMOD_DIR = os.path.join(CURRENT_DIR,
|
15
|
+
CODEMOD_DIR = os.path.join(CURRENT_DIR, "nodejs", "codemod")
|
13
16
|
|
14
|
-
NAV_CONFIG_FILE_PATH =
|
15
|
-
ENV_VAR_NAME =
|
16
|
-
NAV_TITLE =
|
17
|
-
NAV_URL =
|
18
|
-
NAV_PERMISSION =
|
17
|
+
NAV_CONFIG_FILE_PATH = "{{input.project_dir}}/src/{{util.to_kebab_case(input.app_name)}}/src/frontend/src/lib/config/navData.ts" # noqa
|
18
|
+
ENV_VAR_NAME = "navData"
|
19
|
+
NAV_TITLE = "{{util.to_pascal_case(input.entity_name)}}"
|
20
|
+
NAV_URL = "/{{util.to_kebab_case(input.module_name)}}/{{util.to_kebab_case(input.entity_name)}}" # noqa
|
21
|
+
NAV_PERMISSION = "{{util.to_snake_case(input.module_name)}}:{{util.to_snake_case(input.entity_name)}}:get" # noqa
|
19
22
|
|
20
23
|
|
21
24
|
@typechecked
|
22
25
|
def create_add_navigation_task(upstreams: List[AnyTask]) -> AnyTask:
|
23
26
|
return CmdTask(
|
24
|
-
name=
|
27
|
+
name="add-navigation",
|
25
28
|
inputs=[
|
26
29
|
project_dir_input,
|
27
30
|
app_name_input,
|
@@ -30,5 +33,5 @@ def create_add_navigation_task(upstreams: List[AnyTask]) -> AnyTask:
|
|
30
33
|
],
|
31
34
|
upstreams=upstreams,
|
32
35
|
retry=0,
|
33
|
-
cmd=f'node {CODEMOD_DIR}/dist/addNav.js "{NAV_CONFIG_FILE_PATH}" "{ENV_VAR_NAME}" "{NAV_TITLE}" "{NAV_URL}" "{NAV_PERMISSION}"'
|
36
|
+
cmd=f'node {CODEMOD_DIR}/dist/addNav.js "{NAV_CONFIG_FILE_PATH}" "{ENV_VAR_NAME}" "{NAV_TITLE}" "{NAV_URL}" "{NAV_PERMISSION}"', # noqa
|
34
37
|
)
|
@@ -1,9 +1,9 @@
|
|
1
1
|
from component.messagebus import publisher
|
2
2
|
from module.snake_zrb_module_name.component.repo.snake_zrb_entity_name_repo import (
|
3
|
-
snake_zrb_entity_name_repo
|
3
|
+
snake_zrb_entity_name_repo,
|
4
4
|
)
|
5
5
|
from module.snake_zrb_module_name.entity.snake_zrb_entity_name.model import (
|
6
|
-
PascalZrbEntityNameModel
|
6
|
+
PascalZrbEntityNameModel,
|
7
7
|
)
|
8
8
|
|
9
9
|
snake_zrb_entity_name_model: PascalZrbEntityNameModel = PascalZrbEntityNameModel(
|
@@ -1,7 +1,8 @@
|
|
1
|
-
from component.log import logger
|
2
1
|
from component.db_connection import engine
|
2
|
+
from component.log import logger
|
3
3
|
from module.snake_zrb_module_name.entity.snake_zrb_entity_name.repo import (
|
4
|
-
|
4
|
+
PascalZrbEntityNameDBRepo,
|
5
|
+
PascalZrbEntityNameRepo,
|
5
6
|
)
|
6
7
|
|
7
8
|
snake_zrb_entity_name_repo: PascalZrbEntityNameRepo = PascalZrbEntityNameDBRepo(
|
@@ -1,14 +1,17 @@
|
|
1
|
-
from fastapi import FastAPI, Depends
|
2
1
|
from logging import Logger
|
2
|
+
|
3
|
+
from core.error import HTTPAPIException
|
3
4
|
from core.messagebus import Publisher
|
4
5
|
from core.rpc import Caller
|
5
|
-
from
|
6
|
+
from fastapi import Depends, FastAPI
|
7
|
+
from module.auth.component import access_token_scheme
|
6
8
|
from module.auth.core import Authorizer
|
9
|
+
from module.auth.schema.token import AccessTokenData
|
7
10
|
from module.snake_zrb_module_name.schema.snake_zrb_entity_name import (
|
8
|
-
PascalZrbEntityName,
|
11
|
+
PascalZrbEntityName,
|
12
|
+
PascalZrbEntityNameData,
|
13
|
+
PascalZrbEntityNameResult,
|
9
14
|
)
|
10
|
-
from module.auth.schema.token import AccessTokenData
|
11
|
-
from module.auth.component import access_token_scheme
|
12
15
|
|
13
16
|
|
14
17
|
def register_api(
|
@@ -16,109 +19,124 @@ def register_api(
|
|
16
19
|
app: FastAPI,
|
17
20
|
authorizer: Authorizer,
|
18
21
|
rpc_caller: Caller,
|
19
|
-
publisher: Publisher
|
22
|
+
publisher: Publisher,
|
20
23
|
):
|
21
24
|
logger.info('🥪 Register API for "snake_zrb_module_name.snake_zrb_entity_name"')
|
22
25
|
|
23
26
|
@app.get(
|
24
|
-
|
27
|
+
"/api/v1/kebab-zrb-module-name/kebab-zrb-plural-entity-name",
|
28
|
+
response_model=PascalZrbEntityNameResult,
|
25
29
|
)
|
26
30
|
async def get_snake_zrb_entity_names(
|
27
|
-
keyword: str =
|
28
|
-
|
31
|
+
keyword: str = "",
|
32
|
+
limit: int = 100,
|
33
|
+
offset: int = 0,
|
34
|
+
user_token_data: AccessTokenData = Depends(access_token_scheme),
|
29
35
|
):
|
30
36
|
if not await authorizer.is_having_permission(
|
31
|
-
user_token_data.user_id,
|
37
|
+
user_token_data.user_id, "snake_zrb_module_name:snake_zrb_entity_name:get"
|
32
38
|
):
|
33
|
-
raise HTTPAPIException(403,
|
39
|
+
raise HTTPAPIException(403, "Unauthorized")
|
34
40
|
try:
|
35
41
|
result_dict = await rpc_caller.call(
|
36
|
-
|
42
|
+
"snake_zrb_module_name_get_snake_zrb_entity_name",
|
37
43
|
keyword=keyword,
|
38
44
|
criterion={},
|
39
45
|
limit=limit,
|
40
46
|
offset=offset,
|
41
|
-
user_token_data=user_token_data.
|
47
|
+
user_token_data=user_token_data.model_dump(),
|
42
48
|
)
|
43
49
|
return PascalZrbEntityNameResult(**result_dict)
|
44
50
|
except Exception as e:
|
45
51
|
raise HTTPAPIException(error=e)
|
46
52
|
|
47
53
|
@app.get(
|
48
|
-
|
54
|
+
"/api/v1/kebab-zrb-module-name/kebab-zrb-plural-entity-name/{id}",
|
55
|
+
response_model=PascalZrbEntityName,
|
49
56
|
)
|
50
57
|
async def get_snake_zrb_entity_name_by_id(
|
51
|
-
id: str,
|
52
|
-
user_token_data: AccessTokenData = Depends(access_token_scheme)
|
58
|
+
id: str, user_token_data: AccessTokenData = Depends(access_token_scheme)
|
53
59
|
):
|
54
60
|
if not await authorizer.is_having_permission(
|
55
|
-
user_token_data.user_id,
|
61
|
+
user_token_data.user_id,
|
62
|
+
"snake_zrb_module_name:snake_zrb_entity_name:get_by_id",
|
56
63
|
):
|
57
|
-
raise HTTPAPIException(403,
|
64
|
+
raise HTTPAPIException(403, "Unauthorized")
|
58
65
|
try:
|
59
66
|
result_dict = await rpc_caller.call(
|
60
|
-
|
61
|
-
id=id,
|
67
|
+
"snake_zrb_module_name_get_snake_zrb_entity_name_by_id",
|
68
|
+
id=id,
|
69
|
+
user_token_data=user_token_data.model_dump(),
|
62
70
|
)
|
63
71
|
return PascalZrbEntityName(**result_dict)
|
64
72
|
except Exception as e:
|
65
73
|
raise HTTPAPIException(error=e)
|
66
74
|
|
67
75
|
@app.post(
|
68
|
-
|
76
|
+
"/api/v1/kebab-zrb-module-name/kebab-zrb-plural-entity-name",
|
77
|
+
response_model=PascalZrbEntityName,
|
69
78
|
)
|
70
79
|
async def insert_snake_zrb_entity_name(
|
71
80
|
data: PascalZrbEntityNameData,
|
72
|
-
user_token_data: AccessTokenData = Depends(access_token_scheme)
|
81
|
+
user_token_data: AccessTokenData = Depends(access_token_scheme),
|
73
82
|
):
|
74
83
|
if not await authorizer.is_having_permission(
|
75
|
-
user_token_data.user_id,
|
84
|
+
user_token_data.user_id,
|
85
|
+
"snake_zrb_module_name:snake_zrb_entity_name:insert",
|
76
86
|
):
|
77
|
-
raise HTTPAPIException(403,
|
87
|
+
raise HTTPAPIException(403, "Unauthorized")
|
78
88
|
try:
|
79
89
|
result_dict = await rpc_caller.call(
|
80
|
-
|
81
|
-
data=data.
|
90
|
+
"snake_zrb_module_name_insert_snake_zrb_entity_name",
|
91
|
+
data=data.model_dump(),
|
92
|
+
user_token_data=user_token_data.model_dump(),
|
82
93
|
)
|
83
94
|
return PascalZrbEntityName(**result_dict)
|
84
95
|
except Exception as e:
|
85
96
|
raise HTTPAPIException(error=e)
|
86
97
|
|
87
98
|
@app.put(
|
88
|
-
|
99
|
+
"/api/v1/kebab-zrb-module-name/kebab-zrb-plural-entity-name/{id}",
|
100
|
+
response_model=PascalZrbEntityName,
|
89
101
|
)
|
90
102
|
async def update_snake_zrb_entity_name(
|
91
|
-
id: str,
|
92
|
-
|
103
|
+
id: str,
|
104
|
+
data: PascalZrbEntityNameData,
|
105
|
+
user_token_data: AccessTokenData = Depends(access_token_scheme),
|
93
106
|
):
|
94
107
|
if not await authorizer.is_having_permission(
|
95
|
-
user_token_data.user_id,
|
108
|
+
user_token_data.user_id,
|
109
|
+
"snake_zrb_module_name:snake_zrb_entity_name:update",
|
96
110
|
):
|
97
|
-
raise HTTPAPIException(403,
|
111
|
+
raise HTTPAPIException(403, "Unauthorized")
|
98
112
|
try:
|
99
113
|
result_dict = await rpc_caller.call(
|
100
|
-
|
101
|
-
id=id,
|
114
|
+
"snake_zrb_module_name_update_snake_zrb_entity_name",
|
115
|
+
id=id,
|
116
|
+
data=data.model_dump(),
|
117
|
+
user_token_data=user_token_data.model_dump(),
|
102
118
|
)
|
103
119
|
return PascalZrbEntityName(**result_dict)
|
104
120
|
except Exception as e:
|
105
121
|
raise HTTPAPIException(error=e)
|
106
122
|
|
107
123
|
@app.delete(
|
108
|
-
|
124
|
+
"/api/v1/kebab-zrb-module-name/kebab-zrb-plural-entity-name/{id}",
|
125
|
+
response_model=PascalZrbEntityName,
|
109
126
|
)
|
110
127
|
async def delete_snake_zrb_entity_name(
|
111
|
-
id: str,
|
112
|
-
user_token_data: AccessTokenData = Depends(access_token_scheme)
|
128
|
+
id: str, user_token_data: AccessTokenData = Depends(access_token_scheme)
|
113
129
|
):
|
114
130
|
if not await authorizer.is_having_permission(
|
115
|
-
user_token_data.user_id,
|
131
|
+
user_token_data.user_id,
|
132
|
+
"snake_zrb_module_name:snake_zrb_entity_name:delete",
|
116
133
|
):
|
117
|
-
raise HTTPAPIException(403,
|
134
|
+
raise HTTPAPIException(403, "Unauthorized")
|
118
135
|
try:
|
119
136
|
result_dict = await rpc_caller.call(
|
120
|
-
|
121
|
-
id=id,
|
137
|
+
"snake_zrb_module_name_delete_snake_zrb_entity_name",
|
138
|
+
id=id,
|
139
|
+
user_token_data=user_token_data.model_dump(),
|
122
140
|
)
|
123
141
|
return PascalZrbEntityName(**result_dict)
|
124
142
|
except Exception as e:
|