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,18 +1,17 @@
|
|
1
1
|
from zrb import DockerComposeTask, Env, StrInput, runner
|
2
2
|
from zrb.builtin.group import project_group
|
3
|
-
|
4
|
-
|
5
|
-
)
|
3
|
+
|
4
|
+
from ._common import RESOURCE_DIR, local_input
|
6
5
|
|
7
6
|
###############################################################################
|
8
7
|
# 🔤 Input Definitions
|
9
8
|
###############################################################################
|
10
9
|
|
11
10
|
image_input = StrInput(
|
12
|
-
name=
|
11
|
+
name="kebab-zrb-app-name-image",
|
13
12
|
description='Image name of "kebab-zrb-app-name"',
|
14
13
|
prompt='Image name of "kebab-zrb-app-name"',
|
15
|
-
default=
|
14
|
+
default="zrb-app-image-name:latest",
|
16
15
|
)
|
17
16
|
|
18
17
|
|
@@ -21,9 +20,9 @@ image_input = StrInput(
|
|
21
20
|
###############################################################################
|
22
21
|
|
23
22
|
image_env = Env(
|
24
|
-
name=
|
25
|
-
os_name=
|
26
|
-
default=
|
23
|
+
name="IMAGE",
|
24
|
+
os_name="CONTAINER_ZRB_ENV_PREFIX_IMAGE",
|
25
|
+
default="{{input.snake_zrb_app_name_image}}",
|
27
26
|
)
|
28
27
|
|
29
28
|
###############################################################################
|
@@ -31,22 +30,20 @@ image_env = Env(
|
|
31
30
|
###############################################################################
|
32
31
|
|
33
32
|
build_snake_zrb_app_name_image = DockerComposeTask(
|
34
|
-
icon=
|
35
|
-
name=
|
36
|
-
description=
|
33
|
+
icon="🏭",
|
34
|
+
name="build-kebab-zrb-app-name-image",
|
35
|
+
description="Build human readable zrb app name image",
|
37
36
|
group=project_group,
|
38
37
|
inputs=[
|
39
38
|
local_input,
|
40
39
|
image_input,
|
41
40
|
],
|
42
41
|
envs=[image_env],
|
43
|
-
should_execute=
|
42
|
+
should_execute="{{ input.local_snake_zrb_app_name}}",
|
44
43
|
cwd=RESOURCE_DIR,
|
45
|
-
compose_cmd=
|
46
|
-
compose_flags=[
|
47
|
-
|
48
|
-
],
|
49
|
-
compose_env_prefix='CONTAINER_ZRB_ENV_PREFIX',
|
44
|
+
compose_cmd="build",
|
45
|
+
compose_flags=["--no-cache"],
|
46
|
+
compose_env_prefix="CONTAINER_ZRB_ENV_PREFIX",
|
50
47
|
)
|
51
48
|
runner.register(build_snake_zrb_app_name_image)
|
52
49
|
|
@@ -55,9 +52,9 @@ runner.register(build_snake_zrb_app_name_image)
|
|
55
52
|
###############################################################################
|
56
53
|
|
57
54
|
push_snake_zrb_app_name_image = DockerComposeTask(
|
58
|
-
icon=
|
59
|
-
name=
|
60
|
-
description=
|
55
|
+
icon="📰",
|
56
|
+
name="push-kebab-zrb-app-name-image",
|
57
|
+
description="Push human readable zrb app name image",
|
61
58
|
group=project_group,
|
62
59
|
inputs=[
|
63
60
|
local_input,
|
@@ -66,7 +63,7 @@ push_snake_zrb_app_name_image = DockerComposeTask(
|
|
66
63
|
envs=[image_env],
|
67
64
|
upstreams=[build_snake_zrb_app_name_image],
|
68
65
|
cwd=RESOURCE_DIR,
|
69
|
-
compose_cmd=
|
70
|
-
compose_env_prefix=
|
66
|
+
compose_cmd="push",
|
67
|
+
compose_env_prefix="CONTAINER_ZRB_ENV_PREFIX",
|
71
68
|
)
|
72
69
|
runner.register(push_snake_zrb_app_name_image)
|
@@ -1,48 +1,46 @@
|
|
1
|
+
import os
|
2
|
+
|
1
3
|
from zrb import CmdTask, Env, EnvFile, HTTPChecker, runner
|
2
4
|
from zrb.builtin.group import project_group
|
5
|
+
|
3
6
|
from ._common import (
|
4
|
-
|
5
|
-
|
7
|
+
APP_DIR,
|
8
|
+
APP_TEMPLATE_ENV_FILE_NAME,
|
9
|
+
CURRENT_DIR,
|
10
|
+
host_input,
|
11
|
+
https_input,
|
12
|
+
local_input,
|
6
13
|
)
|
7
|
-
import os
|
8
14
|
|
9
15
|
###############################################################################
|
10
16
|
# ⚙️ kebab-zrb-task-name
|
11
17
|
###############################################################################
|
12
18
|
|
13
19
|
start_snake_zrb_app_name = CmdTask(
|
14
|
-
icon=
|
15
|
-
name=
|
16
|
-
description=
|
20
|
+
icon="🚤",
|
21
|
+
name="start-kebab-zrb-app-name",
|
22
|
+
description="Start human readable zrb app name",
|
17
23
|
group=project_group,
|
18
|
-
inputs=[
|
19
|
-
|
20
|
-
host_input,
|
21
|
-
https_input
|
22
|
-
],
|
23
|
-
should_execute='{{ input.local_snake_zrb_app_name}}',
|
24
|
+
inputs=[local_input, host_input, https_input],
|
25
|
+
should_execute="{{ input.local_snake_zrb_app_name}}",
|
24
26
|
cwd=APP_DIR,
|
25
|
-
env_files=[
|
26
|
-
EnvFile(path=APP_TEMPLATE_ENV_FILE_NAME, prefix='ZRB_ENV_PREFIX')
|
27
|
-
],
|
27
|
+
env_files=[EnvFile(path=APP_TEMPLATE_ENV_FILE_NAME, prefix="ZRB_ENV_PREFIX")],
|
28
28
|
envs=[
|
29
29
|
Env(
|
30
|
-
name=
|
31
|
-
os_name='ZRB_ENV_PREFIX_APP_PORT',
|
32
|
-
default='zrbAppHttpPort'
|
30
|
+
name="APP_PORT", os_name="ZRB_ENV_PREFIX_APP_PORT", default="zrbAppHttpPort"
|
33
31
|
)
|
34
32
|
],
|
35
33
|
cmd_path=[
|
36
|
-
os.path.join(CURRENT_DIR,
|
37
|
-
os.path.join(CURRENT_DIR,
|
34
|
+
os.path.join(CURRENT_DIR, "cmd", "app-activate-venv.sh"),
|
35
|
+
os.path.join(CURRENT_DIR, "cmd", "app-start.sh"),
|
38
36
|
],
|
39
37
|
checkers=[
|
40
38
|
HTTPChecker(
|
41
|
-
name=
|
42
|
-
host=
|
43
|
-
port=
|
44
|
-
is_https=
|
39
|
+
name="check-kebab-zrb-app-name",
|
40
|
+
host="{{input.snake_zrb_app_name_host}}",
|
41
|
+
port="{{env.APP_PORT}}",
|
42
|
+
is_https="{{input.snake_zrb_app_name_https}}",
|
45
43
|
)
|
46
|
-
]
|
44
|
+
],
|
47
45
|
)
|
48
46
|
runner.register(start_snake_zrb_app_name)
|
zrb/builtin/generator/simple_python_app/template/src/kebab-zrb-app-name/deployment/__main__.py
CHANGED
@@ -1,24 +1,25 @@
|
|
1
|
-
|
1
|
+
"""A Kubernetes Python Pulumi program to deploy kebab-zrb-app-name"""
|
2
|
+
|
3
|
+
import os
|
2
4
|
|
3
|
-
from dotenv import dotenv_values
|
4
5
|
import pulumi
|
5
6
|
import pulumi_kubernetes as k8s
|
6
|
-
import
|
7
|
+
from dotenv import dotenv_values
|
7
8
|
|
8
9
|
CURRENT_DIR = os.path.dirname(__file__)
|
9
|
-
APP_DIR = os.path.abspath(os.path.join(CURRENT_DIR,
|
10
|
-
TEMPLATE_ENV_FILE_NAME = os.path.join(APP_DIR,
|
10
|
+
APP_DIR = os.path.abspath(os.path.join(CURRENT_DIR, "..", "src"))
|
11
|
+
TEMPLATE_ENV_FILE_NAME = os.path.join(APP_DIR, "template.env")
|
11
12
|
|
12
|
-
image = os.getenv(
|
13
|
-
replica = int(os.getenv(
|
14
|
-
app_labels = {
|
13
|
+
image = os.getenv("IMAGE", "kebab-zrb-app-name:latest")
|
14
|
+
replica = int(os.getenv("REPLICA", "1"))
|
15
|
+
app_labels = {"app": "kebab-zrb-app-name"}
|
15
16
|
env_map = dotenv_values(TEMPLATE_ENV_FILE_NAME)
|
16
|
-
app_port = int(os.getenv(
|
17
|
+
app_port = int(os.getenv("APP_PORT", env_map.get("APP_PORT", "8080")))
|
17
18
|
|
18
19
|
# Pulumi deployment docs:
|
19
20
|
# https://www.pulumi.com/registry/packages/kubernetes/api-docs/apps/v1/deployment/
|
20
21
|
deployment = k8s.apps.v1.Deployment(
|
21
|
-
resource_name=
|
22
|
+
resource_name="kebab-zrb-app-name",
|
22
23
|
spec=k8s.apps.v1.DeploymentSpecArgs(
|
23
24
|
selector=k8s.meta.v1.LabelSelectorArgs(match_labels=app_labels),
|
24
25
|
replicas=replica,
|
@@ -27,41 +28,32 @@ deployment = k8s.apps.v1.Deployment(
|
|
27
28
|
spec=k8s.core.v1.PodSpecArgs(
|
28
29
|
containers=[
|
29
30
|
k8s.core.v1.ContainerArgs(
|
30
|
-
name=
|
31
|
+
name="kebab-zrb-app-name",
|
31
32
|
image=image,
|
32
33
|
env=[
|
33
34
|
k8s.core.v1.EnvVarArgs(
|
34
|
-
name=env_name,
|
35
|
-
value=os.getenv(env_name, default_value)
|
35
|
+
name=env_name, value=os.getenv(env_name, default_value)
|
36
36
|
)
|
37
37
|
for env_name, default_value in env_map.items()
|
38
38
|
],
|
39
|
-
ports=[
|
40
|
-
k8s.core.v1.ContainerPortArgs(
|
41
|
-
container_port=app_port
|
42
|
-
)
|
43
|
-
],
|
39
|
+
ports=[k8s.core.v1.ContainerPortArgs(container_port=app_port)],
|
44
40
|
liveness_probe=k8s.core.v1.ProbeArgs(
|
45
|
-
http_get=k8s.core.v1.HTTPGetActionArgs(
|
46
|
-
port=app_port
|
47
|
-
)
|
41
|
+
http_get=k8s.core.v1.HTTPGetActionArgs(port=app_port)
|
48
42
|
),
|
49
43
|
readiness_probe=k8s.core.v1.ProbeArgs(
|
50
|
-
http_get=k8s.core.v1.HTTPGetActionArgs(
|
51
|
-
port=app_port
|
52
|
-
)
|
44
|
+
http_get=k8s.core.v1.HTTPGetActionArgs(port=app_port)
|
53
45
|
),
|
54
46
|
)
|
55
47
|
]
|
56
|
-
)
|
57
|
-
)
|
58
|
-
)
|
48
|
+
),
|
49
|
+
),
|
50
|
+
),
|
59
51
|
)
|
60
52
|
|
61
53
|
# Pulumi services docs:
|
62
54
|
# https://www.pulumi.com/registry/packages/kubernetes/api-docs/core/v1/service/
|
63
55
|
service = k8s.core.v1.Service(
|
64
|
-
resource_name=
|
56
|
+
resource_name="kebab-zrb-app-name",
|
65
57
|
spec=k8s.core.v1.ServiceSpecArgs(
|
66
58
|
selector=app_labels,
|
67
59
|
ports=[
|
@@ -71,9 +63,9 @@ service = k8s.core.v1.Service(
|
|
71
63
|
target_port=app_port,
|
72
64
|
)
|
73
65
|
],
|
74
|
-
type=
|
75
|
-
)
|
66
|
+
type="LoadBalancer",
|
67
|
+
),
|
76
68
|
)
|
77
69
|
|
78
|
-
pulumi.export(
|
79
|
-
pulumi.export(
|
70
|
+
pulumi.export("deployment-name", deployment.metadata["name"])
|
71
|
+
pulumi.export("service-name", service.metadata["name"])
|
@@ -1,20 +1,24 @@
|
|
1
1
|
import os
|
2
2
|
|
3
|
-
MESSAGE = os.getenv(
|
4
|
-
PORT = int(os.getenv(
|
3
|
+
MESSAGE = os.getenv("APP_MESSAGE", "Hello, world!")
|
4
|
+
PORT = int(os.getenv("APP_PORT", "8000"))
|
5
5
|
|
6
6
|
|
7
7
|
async def app(scope, receive, send):
|
8
|
-
assert scope[
|
8
|
+
assert scope["type"] == "http"
|
9
9
|
|
10
|
-
await send(
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
[
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
10
|
+
await send(
|
11
|
+
{
|
12
|
+
"type": "http.response.start",
|
13
|
+
"status": 200,
|
14
|
+
"headers": [
|
15
|
+
[b"content-type", b"text/plain"],
|
16
|
+
],
|
17
|
+
}
|
18
|
+
)
|
19
|
+
await send(
|
20
|
+
{
|
21
|
+
"type": "http.response.body",
|
22
|
+
"body": bytes(MESSAGE, "utf-8"),
|
23
|
+
}
|
24
|
+
)
|
zrb/builtin/git.py
CHANGED
@@ -1,89 +1,89 @@
|
|
1
|
-
from zrb.helper.typing import Any
|
2
1
|
from zrb.builtin.group import git_group
|
3
|
-
from zrb.task.decorator import python_task
|
4
|
-
from zrb.task.cmd_task import CmdTask
|
5
|
-
from zrb.task_input.str_input import StrInput
|
6
|
-
from zrb.task_input.bool_input import BoolInput
|
7
|
-
from zrb.runner import runner
|
8
|
-
from zrb.helper.git.detect_changes import get_modified_file_states
|
9
2
|
from zrb.helper.accessories.color import colored
|
3
|
+
from zrb.helper.git.detect_changes import get_modified_file_states
|
10
4
|
from zrb.helper.python_task import show_lines
|
5
|
+
from zrb.helper.typing import Any
|
6
|
+
from zrb.runner import runner
|
7
|
+
from zrb.task.cmd_task import CmdTask
|
8
|
+
from zrb.task.decorator import python_task
|
9
|
+
from zrb.task_input.bool_input import BoolInput
|
10
|
+
from zrb.task_input.str_input import StrInput
|
11
11
|
|
12
12
|
###############################################################################
|
13
13
|
# Task Definitions
|
14
14
|
###############################################################################
|
15
15
|
|
16
16
|
clear_branch = CmdTask(
|
17
|
-
name=
|
17
|
+
name="clear-branch",
|
18
18
|
group=git_group,
|
19
|
-
description=
|
19
|
+
description="Clear branches",
|
20
20
|
cmd=[
|
21
|
-
|
22
|
-
|
21
|
+
"for BRANCH in $(git branch)",
|
22
|
+
"do",
|
23
23
|
' if [ "$BRANCH" != "main" ]',
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
]
|
24
|
+
" then",
|
25
|
+
" git branch -D $BRANCH",
|
26
|
+
" fi",
|
27
|
+
"done",
|
28
|
+
],
|
29
29
|
)
|
30
30
|
runner.register(clear_branch)
|
31
31
|
|
32
32
|
|
33
33
|
@python_task(
|
34
|
-
name=
|
34
|
+
name="get-file-changes",
|
35
35
|
group=git_group,
|
36
|
-
description=
|
36
|
+
description="Get modified files",
|
37
37
|
inputs=[
|
38
38
|
StrInput(
|
39
|
-
name=
|
40
|
-
shortcut=
|
41
|
-
description=
|
42
|
-
prompt=
|
43
|
-
default=
|
39
|
+
name="commit",
|
40
|
+
shortcut="c",
|
41
|
+
description="commit hash/tag",
|
42
|
+
prompt="Commit hash/Tag",
|
43
|
+
default="HEAD",
|
44
44
|
),
|
45
45
|
BoolInput(
|
46
|
-
name=
|
47
|
-
description=
|
48
|
-
prompt=
|
49
|
-
default=True
|
46
|
+
name="include-new",
|
47
|
+
description="include new files",
|
48
|
+
prompt="Include new files",
|
49
|
+
default=True,
|
50
50
|
),
|
51
51
|
BoolInput(
|
52
|
-
name=
|
53
|
-
description=
|
54
|
-
prompt=
|
55
|
-
default=True
|
56
|
-
),
|
52
|
+
name="include-removed",
|
53
|
+
description="include removed file",
|
54
|
+
prompt="Include removed file",
|
55
|
+
default=True,
|
56
|
+
),
|
57
57
|
BoolInput(
|
58
|
-
name=
|
59
|
-
description=
|
60
|
-
prompt=
|
61
|
-
default=True
|
58
|
+
name="include-updated",
|
59
|
+
description="include updated file",
|
60
|
+
prompt="Include updated file",
|
61
|
+
default=True,
|
62
62
|
),
|
63
63
|
],
|
64
|
-
runner=runner
|
64
|
+
runner=runner,
|
65
65
|
)
|
66
66
|
async def get_file_changes(*args: Any, **kwargs: Any):
|
67
|
-
commit = kwargs.get(
|
68
|
-
include_new = kwargs.get(
|
69
|
-
include_removed = kwargs.get(
|
70
|
-
include_updated = kwargs.get(
|
67
|
+
commit = kwargs.get("commit", "HEAD")
|
68
|
+
include_new = kwargs.get("include_new", True)
|
69
|
+
include_removed = kwargs.get("include_removed", True)
|
70
|
+
include_updated = kwargs.get("include_updated", True)
|
71
71
|
modified_file_states = get_modified_file_states(commit)
|
72
72
|
modified_file_keys = []
|
73
73
|
output = []
|
74
74
|
for modified_file, state in modified_file_states.items():
|
75
75
|
if include_updated and state.minus and state.plus:
|
76
|
-
output.append(colored(f
|
76
|
+
output.append(colored(f"+- {modified_file}", color="yellow"))
|
77
77
|
modified_file_keys.append(modified_file)
|
78
78
|
continue
|
79
79
|
if include_removed and state.minus and not state.plus:
|
80
|
-
output.append(colored(f
|
80
|
+
output.append(colored(f"-- {modified_file}", color="red"))
|
81
81
|
modified_file_keys.append(modified_file)
|
82
82
|
continue
|
83
83
|
if include_new and state.plus and not state.minus:
|
84
|
-
output.append(colored(f
|
84
|
+
output.append(colored(f"++ {modified_file}", color="green"))
|
85
85
|
modified_file_keys.append(modified_file)
|
86
86
|
continue
|
87
|
-
show_lines(kwargs[
|
87
|
+
show_lines(kwargs["_task"], *output)
|
88
88
|
modified_file_keys.sort()
|
89
|
-
return
|
89
|
+
return "\n".join(modified_file_keys)
|
zrb/builtin/group.py
CHANGED
@@ -1,42 +1,21 @@
|
|
1
1
|
from zrb.task_group.group import Group
|
2
2
|
|
3
|
-
project_group = Group(
|
4
|
-
name='project', description='Project management'
|
5
|
-
)
|
3
|
+
project_group = Group(name="project", description="Project management")
|
6
4
|
project_add_group = Group(
|
7
|
-
name=
|
8
|
-
)
|
9
|
-
env_group = Group(
|
10
|
-
name='env', description='Environment variable management'
|
11
|
-
)
|
12
|
-
ubuntu_group = Group(
|
13
|
-
name='ubuntu', description='Ubuntu related commands'
|
5
|
+
name="add", description="Add resources to project", parent=project_group
|
14
6
|
)
|
7
|
+
env_group = Group(name="env", description="Environment variable management")
|
8
|
+
ubuntu_group = Group(name="ubuntu", description="Ubuntu related commands")
|
15
9
|
ubuntu_install_group = Group(
|
16
|
-
name=
|
17
|
-
)
|
18
|
-
explain_group = Group(
|
19
|
-
name='explain', description='Explain things'
|
20
|
-
)
|
21
|
-
base64_group = Group(
|
22
|
-
name='base64', description='Base64 operations'
|
23
|
-
)
|
24
|
-
md5_group = Group(
|
25
|
-
name='md5', description='MD5 operations'
|
26
|
-
)
|
27
|
-
dev_tool_group = Group(
|
28
|
-
name='devtool', description='Developer tools management'
|
10
|
+
name="install", description="Install things on ubuntu", parent=ubuntu_group
|
29
11
|
)
|
12
|
+
explain_group = Group(name="explain", description="Explain things")
|
13
|
+
base64_group = Group(name="base64", description="Base64 operations")
|
14
|
+
md5_group = Group(name="md5", description="MD5 operations")
|
15
|
+
dev_tool_group = Group(name="devtool", description="Developer tools management")
|
30
16
|
dev_tool_install_group = Group(
|
31
|
-
name=
|
32
|
-
parent=dev_tool_group
|
33
|
-
)
|
34
|
-
git_group = Group(
|
35
|
-
name='git', description='Git related commands'
|
36
|
-
)
|
37
|
-
process_group = Group(
|
38
|
-
name='process', description='Process related commands'
|
39
|
-
)
|
40
|
-
plugin_group = Group(
|
41
|
-
name='plugin', description='Plugin related command'
|
17
|
+
name="install", description="Install developer tools", parent=dev_tool_group
|
42
18
|
)
|
19
|
+
git_group = Group(name="git", description="Git related commands")
|
20
|
+
process_group = Group(name="process", description="Process related commands")
|
21
|
+
plugin_group = Group(name="plugin", description="Plugin related command")
|
@@ -1,8 +1,8 @@
|
|
1
1
|
from zrb.helper.typing import Any
|
2
|
-
from zrb.task.task import Task
|
3
|
-
from zrb.task.decorator import python_task
|
4
2
|
from zrb.task.cmd_task import CmdTask
|
3
|
+
from zrb.task.decorator import python_task
|
5
4
|
from zrb.task.notifier import Notifier
|
5
|
+
from zrb.task.task import Task
|
6
6
|
from zrb.task_input.str_input import StrInput
|
7
7
|
|
8
8
|
|
@@ -10,62 +10,59 @@ def create_recurring_action(
|
|
10
10
|
notif_title: str,
|
11
11
|
trigger_caption: str,
|
12
12
|
trigger_xcom_key: str,
|
13
|
-
default_message: str =
|
13
|
+
default_message: str = "👋",
|
14
14
|
) -> Task:
|
15
15
|
# define inputs
|
16
16
|
message_input = StrInput(
|
17
|
-
name=
|
17
|
+
name="message",
|
18
18
|
default=default_message,
|
19
|
-
prompt=
|
19
|
+
prompt="Message to be shown",
|
20
20
|
)
|
21
21
|
command_input = StrInput(
|
22
|
-
name=
|
23
|
-
default=
|
24
|
-
prompt=
|
22
|
+
name="command",
|
23
|
+
default="",
|
24
|
+
prompt="Command to be executed",
|
25
25
|
)
|
26
26
|
# define tasks
|
27
27
|
show_trigger_info = _create_show_trigger_info(
|
28
|
-
trigger_caption=trigger_caption,
|
29
|
-
trigger_xcom_key=trigger_xcom_key
|
28
|
+
trigger_caption=trigger_caption, trigger_xcom_key=trigger_xcom_key
|
30
29
|
)
|
31
30
|
run_command = CmdTask(
|
32
|
-
name=
|
33
|
-
icon=
|
34
|
-
color=
|
31
|
+
name="run-command",
|
32
|
+
icon="⚙️",
|
33
|
+
color="blue",
|
35
34
|
inputs=[command_input],
|
36
35
|
upstreams=[show_trigger_info],
|
37
36
|
should_execute='{{ input.command != "" }}',
|
38
|
-
cmd=
|
37
|
+
cmd="{{ input.command }}",
|
39
38
|
)
|
40
39
|
notify = Notifier(
|
41
|
-
name=
|
42
|
-
icon=
|
43
|
-
color=
|
40
|
+
name="notify",
|
41
|
+
icon="📢",
|
42
|
+
color="green",
|
44
43
|
inputs=[message_input],
|
45
44
|
title=notif_title,
|
46
|
-
message=
|
45
|
+
message="{{ input.message }}",
|
47
46
|
upstreams=[show_trigger_info],
|
48
47
|
should_execute='{{ input.message != "" }}',
|
49
48
|
)
|
50
49
|
# return aggregator task
|
51
50
|
return Task(
|
52
|
-
name=
|
51
|
+
name="recurring-action",
|
53
52
|
inputs=[message_input, command_input],
|
54
53
|
upstreams=[run_command, notify],
|
55
|
-
retry=0
|
54
|
+
retry=0,
|
56
55
|
)
|
57
56
|
|
58
57
|
|
59
|
-
def _create_show_trigger_info(
|
60
|
-
trigger_caption: str,
|
61
|
-
trigger_xcom_key: str
|
62
|
-
) -> Task:
|
58
|
+
def _create_show_trigger_info(trigger_caption: str, trigger_xcom_key: str) -> Task:
|
63
59
|
@python_task(
|
64
|
-
name=
|
65
|
-
icon=
|
66
|
-
color=
|
60
|
+
name="show-trigger-info",
|
61
|
+
icon="🔍",
|
62
|
+
color="magenta",
|
67
63
|
)
|
68
64
|
def show_trigger_info(*args: Any, **kwargs: Any):
|
69
|
-
task: Task = kwargs.get(
|
70
|
-
task.print_out(f
|
65
|
+
task: Task = kwargs.get("_task")
|
66
|
+
task.print_out(f"{trigger_caption}: {task.get_xcom(trigger_xcom_key)}")
|
67
|
+
|
71
68
|
return show_trigger_info
|