zrb 0.23.4__py3-none-any.whl → 0.26.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- zrb/__init__.py +2 -0
- zrb/action/runner.py +8 -5
- zrb/advertisement.py +1 -2
- zrb/builtin/__init__.py +4 -0
- zrb/builtin/base64/decode.py +1 -1
- zrb/builtin/base64/encode.py +1 -1
- zrb/builtin/devtool/install/_helper.py +2 -1
- zrb/builtin/devtool/install/_input.py +2 -2
- zrb/builtin/docker/prune.py +11 -3
- zrb/builtin/env/get.py +3 -2
- zrb/builtin/eval.py +2 -1
- zrb/builtin/git/get_file_changes.py +2 -1
- zrb/builtin/md5/hash.py +1 -1
- zrb/builtin/md5/sum.py +1 -1
- zrb/builtin/monorepo/__init__.py +7 -0
- zrb/builtin/monorepo/_config.py +11 -0
- zrb/builtin/monorepo/_group.py +3 -0
- zrb/builtin/monorepo/_task.py +99 -0
- zrb/builtin/monorepo/add.py +40 -0
- zrb/builtin/monorepo/pull.py +23 -0
- zrb/builtin/monorepo/push.py +35 -0
- zrb/builtin/project/_helper.py +3 -3
- zrb/builtin/project/_input.py +2 -2
- zrb/builtin/project/add/app/generator/generator.py +1 -1
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/snake_zrb_generator_name.py +1 -1
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/remove.py +1 -1
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/start.py +6 -7
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/stop.py +1 -1
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/src/kebab-zrb-app-name/docker-compose.yml +0 -2
- zrb/builtin/project/add/app/python/python.py +1 -1
- zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/remove.py +1 -1
- zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/start.py +6 -7
- zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/stop.py +1 -1
- zrb/builtin/project/add/app/python/template/src/kebab-zrb-app-name/docker-compose.yml +0 -2
- zrb/builtin/project/add/fastapp/app/app.py +3 -1
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_helper.py +2 -53
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_service_config.py +1 -1
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/_helper.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/start.py +5 -6
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/_helper.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/start.py +5 -6
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/stop.py +2 -0
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/_helper.py +5 -3
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/start.py +4 -6
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/frontend/build-once.sh +1 -1
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/frontend/build.sh +1 -1
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/_helper.py +3 -5
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/start.py +3 -3
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/{start_microservices.py → start_services.py} +2 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/.generator-version +1 -0
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/deployment/_common.py +5 -5
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/deployment/app_helper.py +5 -5
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/docker-compose.yml +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/loadtest/locustfile.py +1 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/loadtest/template.env +1 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/error.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/kafka/admin.py +4 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/kafka/consumer.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/messagebus.py +4 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/mock.py +4 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/rabbitmq/admin.py +4 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/rabbitmq/consumer.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/model/repo_model.py +3 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/repo/db_repo.py +7 -6
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/repo/repo.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/repo/search_filter.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/rpc/messagebus/caller.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/rpc/messagebus/server.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/rpc/rpc.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/serializer/serializer.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/config.py +59 -62
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/frontend/package-lock.json +4443 -0
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/helper/async_task.py +1 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app.py +28 -28
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app_lifespan.py +15 -15
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app_state.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/db_connection.py +14 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/frontend_index.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/log.py +6 -6
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/messagebus.py +33 -33
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/rpc.py +9 -9
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/component/access_token/scheme.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/component/access_token/util.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/group/repo.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/group/rpc.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/rpc.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/api.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/model.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/repo.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/rpc.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/access_token_scheme.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/access_token_util.py +7 -7
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/model/user_model.py +6 -6
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/refresh_token_util.py +7 -7
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/user.py +18 -18
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/migrate.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/register_module.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/register_permission.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/group.py +3 -5
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/permission.py +1 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/request.py +1 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/user.py +5 -7
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/entity/activity/event.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/entity/activity/rpc.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/migrate.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/register_module.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/schema/activity.py +1 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/template.env +5 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_group_crud.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_permission_crud.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_user_crud.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_user_login.py +15 -15
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/test_liveness_and_readiness.py +4 -4
- zrb/builtin/project/add/fastapp/crud/_helper/__init__.py +7 -0
- zrb/builtin/project/add/fastapp/crud/_helper/_common.py +8 -0
- zrb/builtin/project/add/fastapp/crud/_helper/register_api.py +45 -0
- zrb/builtin/project/add/fastapp/crud/_helper/register_permission.py +40 -0
- zrb/builtin/project/add/fastapp/crud/_helper/register_rpc.py +45 -0
- zrb/builtin/project/add/fastapp/crud/_task_factory.py +1 -2
- zrb/builtin/project/add/fastapp/crud/crud.py +4 -25
- zrb/builtin/project/add/fastapp/crud/nodejs/codemod/package-lock.json +3 -3
- zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/repo.py +12 -1
- zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/rpc.py +2 -1
- zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/schema/snake_zrb_entity_name.py +3 -2
- zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/test/snake_zrb_module_name/test_snake_zrb_entity_name.py +9 -8
- zrb/builtin/project/add/fastapp/field/_helper/__init__.py +17 -0
- zrb/builtin/project/add/fastapp/field/_helper/_common.py +102 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_delete_page.py +49 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_detail_page.py +49 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_insert_page.py +62 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_list_page.py +47 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_repo.py +47 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_schema.py +45 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_test.py +49 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_update_page.py +50 -0
- zrb/builtin/project/add/fastapp/field/_input.py +14 -2
- zrb/builtin/project/add/fastapp/field/field.py +52 -70
- zrb/builtin/project/add/fastapp/module/_helper/__init__.py +17 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_all_disabled_env.py +22 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_all_enabled_env.py +22 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_deployment_template_env.py +25 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_src_template_env.py +25 -0
- zrb/builtin/project/add/fastapp/module/_helper/create_app_config.py +29 -0
- zrb/builtin/project/add/fastapp/module/_helper/create_microservice_config.py +157 -0
- zrb/builtin/project/add/fastapp/module/_helper/register_migration.py +35 -0
- zrb/builtin/project/add/fastapp/module/_helper/register_module.py +33 -0
- zrb/builtin/project/add/fastapp/module/module.py +9 -38
- zrb/builtin/project/add/fastapp/module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/migrate.py +2 -2
- zrb/builtin/project/add/fastapp/module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/register_module.py +8 -8
- zrb/builtin/project/add/plugin/plugin.py +3 -3
- zrb/builtin/project/add/project_task/add.py +1 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/build.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/container/remove.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/container/start.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/container/stop.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/deploy.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/destroy.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/get_env.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/image/build.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/image/push.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/publish.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/start.py +2 -1
- zrb/builtin/project/add/task/cmd/add.py +1 -1
- zrb/builtin/project/add/task/docker_compose/add.py +1 -1
- zrb/builtin/project/add/task/docker_compose/template/src/kebab-zrb-task-name/docker-compose.yml +0 -2
- zrb/builtin/project/add/task/python/add.py +1 -1
- zrb/builtin/project/add/task/python/template/_automate/snake_zrb_task_name.py +1 -1
- zrb/builtin/project/create/_helper.py +1 -1
- zrb/builtin/project/create/create.py +3 -3
- zrb/builtin/say.py +3 -3
- zrb/builtin/version.py +5 -4
- zrb/config/config.py +24 -14
- zrb/helper/accessories/color.py +2 -1
- zrb/helper/advertisement.py +2 -1
- zrb/helper/asyncio_task.py +23 -0
- zrb/helper/callable.py +4 -1
- zrb/helper/cli.py +20 -6
- zrb/helper/codemod/add_import_module.py +3 -2
- zrb/helper/codemod/add_property_to_class.py +2 -1
- zrb/helper/default_env.py +2 -1
- zrb/helper/docker_compose/fetch_external_env.py +4 -2
- zrb/helper/docker_compose/file.py +3 -1
- zrb/helper/env_map/fetch.py +3 -2
- zrb/helper/file/copy_tree.py +2 -1
- zrb/helper/file/match.py +2 -2
- zrb/helper/git/detect_changes.py +1 -1
- zrb/helper/loader/load_module.py +7 -46
- zrb/helper/loader/load_script.py +57 -0
- zrb/helper/log.py +3 -3
- zrb/helper/map/conversion.py +3 -1
- zrb/helper/string/jinja.py +2 -1
- zrb/helper/string/parse_replacement.py +1 -1
- zrb/helper/typecheck.py +2 -2
- zrb/helper/typing.py +5 -27
- zrb/helper/util.py +13 -1
- zrb/runner.py +2 -2
- zrb/task/any_task.py +9 -17
- zrb/task/any_task_event_handler.py +3 -1
- zrb/task/base_remote_cmd_task.py +3 -10
- zrb/task/base_task/base_task.py +15 -11
- zrb/task/base_task/component/base_task_model.py +15 -22
- zrb/task/base_task/component/common_task_model.py +15 -22
- zrb/task/base_task/component/renderer.py +3 -1
- zrb/task/base_task/component/trackers.py +1 -1
- zrb/task/checker.py +2 -1
- zrb/task/cmd_task.py +10 -22
- zrb/task/decorator.py +3 -1
- zrb/task/docker_compose_start_task.py +146 -0
- zrb/task/docker_compose_task.py +43 -34
- zrb/task/flow_task.py +19 -17
- zrb/task/http_checker.py +3 -9
- zrb/task/looper.py +4 -2
- zrb/task/notifier.py +3 -1
- zrb/task/parallel.py +4 -4
- zrb/task/path_checker.py +6 -12
- zrb/task/path_watcher.py +5 -13
- zrb/task/port_checker.py +3 -9
- zrb/task/recurring_task.py +5 -4
- zrb/task/remote_cmd_task.py +2 -1
- zrb/task/resource_maker.py +6 -13
- zrb/task/rsync_task.py +3 -1
- zrb/task/server.py +13 -12
- zrb/task/time_watcher.py +3 -10
- zrb/task/watcher.py +2 -1
- zrb/task/wiki_task.py +4 -3
- zrb/task_env/env.py +2 -1
- zrb/task_env/env_file.py +7 -6
- zrb/task_group/group.py +8 -7
- zrb/task_input/any_input.py +4 -3
- zrb/task_input/base_input.py +7 -5
- zrb/task_input/bool_input.py +2 -1
- zrb/task_input/choice_input.py +3 -1
- zrb/task_input/float_input.py +2 -1
- zrb/task_input/int_input.py +2 -1
- zrb/task_input/multiline_input.py +5 -3
- zrb/task_input/password_input.py +2 -1
- zrb/task_input/str_input.py +2 -1
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/METADATA +2 -2
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/RECORD +242 -214
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/init.py +0 -34
- zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/init.py +0 -34
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/init.py +0 -36
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/init.py +0 -36
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/init.py +0 -26
- zrb/builtin/project/add/fastapp/crud/_helper.py +0 -118
- zrb/builtin/project/add/fastapp/field/_helper.py +0 -328
- zrb/builtin/project/add/fastapp/module/_helper.py +0 -313
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/LICENSE +0 -0
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/WHEEL +0 -0
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,35 @@
|
|
1
|
+
import os
|
2
|
+
|
3
|
+
from zrb.helper.codemod.add_import_module import add_import_module
|
4
|
+
from zrb.helper.codemod.append_code_to_function import append_code_to_function
|
5
|
+
from zrb.helper.file.text import read_text_file_async, write_text_file_async
|
6
|
+
from zrb.helper.typecheck import typechecked
|
7
|
+
from zrb.helper.util import to_kebab_case, to_snake_case
|
8
|
+
from zrb.task.task import Task
|
9
|
+
|
10
|
+
|
11
|
+
@typechecked
|
12
|
+
async def register_migration(
|
13
|
+
task: Task, project_dir: str, app_name: str, module_name: str
|
14
|
+
):
|
15
|
+
kebab_app_name = to_kebab_case(app_name)
|
16
|
+
snake_module_name = to_snake_case(module_name)
|
17
|
+
app_migration_file_path = os.path.join(
|
18
|
+
project_dir, "src", kebab_app_name, "src", "migrate.py"
|
19
|
+
)
|
20
|
+
import_module_path = ".".join(["module", snake_module_name, "migrate"])
|
21
|
+
function_name = f"migrate_{snake_module_name}"
|
22
|
+
task.print_out(f"Read code from: {app_migration_file_path}")
|
23
|
+
code = await read_text_file_async(app_migration_file_path)
|
24
|
+
task.print_out(
|
25
|
+
f'Add import "{function_name}" from "{import_module_path}" to the code'
|
26
|
+
)
|
27
|
+
code = add_import_module(
|
28
|
+
code=code, module_path=import_module_path, resource=function_name
|
29
|
+
)
|
30
|
+
task.print_out(f'Add "{function_name}" call to the code')
|
31
|
+
code = append_code_to_function(
|
32
|
+
code=code, function_name="migrate", new_code=f"await {function_name}()"
|
33
|
+
)
|
34
|
+
task.print_out(f"Write modified code to: {app_migration_file_path}")
|
35
|
+
await write_text_file_async(app_migration_file_path, code)
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import os
|
2
|
+
|
3
|
+
from zrb.helper.codemod.add_function_call import add_function_call
|
4
|
+
from zrb.helper.codemod.add_import_module import add_import_module
|
5
|
+
from zrb.helper.file.text import read_text_file_async, write_text_file_async
|
6
|
+
from zrb.helper.typecheck import typechecked
|
7
|
+
from zrb.helper.util import to_kebab_case, to_snake_case
|
8
|
+
from zrb.task.task import Task
|
9
|
+
|
10
|
+
|
11
|
+
@typechecked
|
12
|
+
async def register_module(
|
13
|
+
task: Task, project_dir: str, app_name: str, module_name: str
|
14
|
+
):
|
15
|
+
kebab_app_name = to_kebab_case(app_name)
|
16
|
+
snake_module_name = to_snake_case(module_name)
|
17
|
+
app_main_file_path = os.path.join(
|
18
|
+
project_dir, "src", kebab_app_name, "src", "main.py"
|
19
|
+
)
|
20
|
+
import_module_path = ".".join(["module", snake_module_name, "register_module"])
|
21
|
+
function_name = f"register_{snake_module_name}"
|
22
|
+
task.print_out(f"Read code from: {app_main_file_path}")
|
23
|
+
code = await read_text_file_async(app_main_file_path)
|
24
|
+
task.print_out(
|
25
|
+
f'Add import "{function_name}" from "{import_module_path}" to the code'
|
26
|
+
)
|
27
|
+
code = add_import_module(
|
28
|
+
code=code, module_path=import_module_path, resource=function_name
|
29
|
+
)
|
30
|
+
task.print_out(f'Add "{function_name}" call to the code')
|
31
|
+
code = add_function_call(code=code, function_name=function_name, parameters=[])
|
32
|
+
task.print_out(f"Write modified code to: {app_main_file_path}")
|
33
|
+
await write_text_file_async(app_main_file_path, code)
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import asyncio
|
2
2
|
import os
|
3
|
+
from typing import Any
|
3
4
|
|
4
5
|
from zrb.builtin.project._helper import validate_existing_project_dir
|
5
6
|
from zrb.builtin.project._input import project_dir_input
|
@@ -18,7 +19,6 @@ from zrb.builtin.project.add.fastapp.module._helper import (
|
|
18
19
|
from zrb.builtin.project.add.fastapp.module._input import module_name_input
|
19
20
|
from zrb.helper import util
|
20
21
|
from zrb.helper.accessories.color import colored
|
21
|
-
from zrb.helper.typing import Any
|
22
22
|
from zrb.runner import runner
|
23
23
|
from zrb.task.decorator import python_task
|
24
24
|
from zrb.task.resource_maker import ResourceMaker
|
@@ -88,57 +88,28 @@ async def add_fastapp_module(*args: Any, **kwargs: Any):
|
|
88
88
|
project_dir = kwargs.get("project_dir", ".")
|
89
89
|
app_name = kwargs.get("app_name")
|
90
90
|
module_name = kwargs.get("module_name")
|
91
|
-
kebab_app_name = util.to_kebab_case(app_name)
|
92
|
-
snake_app_name = util.to_snake_case(app_name)
|
93
|
-
kebab_module_name = util.to_kebab_case(module_name)
|
94
|
-
snake_module_name = util.to_snake_case(module_name)
|
95
|
-
upper_snake_module_name = snake_module_name.upper()
|
96
91
|
await asyncio.gather(
|
97
92
|
asyncio.create_task(
|
98
|
-
create_microservice_config(
|
99
|
-
task,
|
100
|
-
project_dir,
|
101
|
-
kebab_app_name,
|
102
|
-
snake_app_name,
|
103
|
-
kebab_module_name,
|
104
|
-
snake_module_name,
|
105
|
-
upper_snake_module_name,
|
106
|
-
)
|
107
|
-
),
|
108
|
-
asyncio.create_task(
|
109
|
-
register_module(task, project_dir, kebab_app_name, snake_module_name)
|
93
|
+
create_microservice_config(task, project_dir, app_name, module_name)
|
110
94
|
),
|
95
|
+
asyncio.create_task(register_module(task, project_dir, app_name, module_name)),
|
111
96
|
asyncio.create_task(
|
112
|
-
register_migration(task, project_dir,
|
97
|
+
register_migration(task, project_dir, app_name, module_name)
|
113
98
|
),
|
114
99
|
asyncio.create_task(
|
115
|
-
create_app_config(
|
116
|
-
task,
|
117
|
-
project_dir,
|
118
|
-
kebab_app_name,
|
119
|
-
snake_module_name,
|
120
|
-
upper_snake_module_name,
|
121
|
-
)
|
100
|
+
create_app_config(task, project_dir, app_name, module_name)
|
122
101
|
),
|
123
102
|
asyncio.create_task(
|
124
|
-
append_all_enabled_env(
|
125
|
-
task, project_dir, kebab_app_name, upper_snake_module_name
|
126
|
-
)
|
103
|
+
append_all_enabled_env(task, project_dir, app_name, module_name)
|
127
104
|
),
|
128
105
|
asyncio.create_task(
|
129
|
-
append_all_disabled_env(
|
130
|
-
task, project_dir, kebab_app_name, upper_snake_module_name
|
131
|
-
)
|
106
|
+
append_all_disabled_env(task, project_dir, app_name, module_name)
|
132
107
|
),
|
133
108
|
asyncio.create_task(
|
134
|
-
append_src_template_env(
|
135
|
-
task, project_dir, kebab_app_name, upper_snake_module_name
|
136
|
-
)
|
109
|
+
append_src_template_env(task, project_dir, app_name, module_name)
|
137
110
|
),
|
138
111
|
asyncio.create_task(
|
139
|
-
append_deployment_template_env(
|
140
|
-
task, project_dir, kebab_app_name, upper_snake_module_name
|
141
|
-
)
|
112
|
+
append_deployment_template_env(task, project_dir, app_name, module_name)
|
142
113
|
),
|
143
114
|
)
|
144
115
|
task.print_out(colored("Fastapp crud added", color="yellow"))
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from config import
|
1
|
+
from config import APP_ENABLE_SNAKE_ZRB_MODULE_NAME_MODULE
|
2
2
|
from helper.migration import migrate
|
3
3
|
from integration.db_connection import engine
|
4
4
|
from integration.log import logger
|
@@ -6,7 +6,7 @@ from module.snake_zrb_module_name.integration import Base
|
|
6
6
|
|
7
7
|
|
8
8
|
async def migrate_snake_zrb_module_name():
|
9
|
-
if not
|
9
|
+
if not APP_ENABLE_SNAKE_ZRB_MODULE_NAME_MODULE:
|
10
10
|
logger.info('🥪 Skip DB migration for "snake_zrb_module_name"')
|
11
11
|
return
|
12
12
|
logger.info('🥪 Perform DB migration for "snake_zrb_module_name"')
|
@@ -1,8 +1,8 @@
|
|
1
1
|
from config import (
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
APP_ENABLE_API,
|
3
|
+
APP_ENABLE_EVENT_HANDLER,
|
4
|
+
APP_ENABLE_RPC_SERVER,
|
5
|
+
APP_ENABLE_SNAKE_ZRB_MODULE_NAME_MODULE,
|
6
6
|
)
|
7
7
|
from integration.app.app import app
|
8
8
|
from integration.log import logger
|
@@ -15,10 +15,10 @@ from module.snake_zrb_module_name.rpc import register_rpc
|
|
15
15
|
|
16
16
|
|
17
17
|
def register_snake_zrb_module_name():
|
18
|
-
if not
|
18
|
+
if not APP_ENABLE_SNAKE_ZRB_MODULE_NAME_MODULE:
|
19
19
|
logger.info('🥪 Skip registering "snake_zrb_module_name"')
|
20
20
|
return
|
21
|
-
if
|
21
|
+
if APP_ENABLE_API:
|
22
22
|
register_api(
|
23
23
|
logger=logger,
|
24
24
|
app=app,
|
@@ -26,11 +26,11 @@ def register_snake_zrb_module_name():
|
|
26
26
|
rpc_caller=rpc_caller,
|
27
27
|
publisher=publisher,
|
28
28
|
)
|
29
|
-
if
|
29
|
+
if APP_ENABLE_EVENT_HANDLER:
|
30
30
|
register_event(
|
31
31
|
logger=logger, consumer=consumer, rpc_caller=rpc_caller, publisher=publisher
|
32
32
|
)
|
33
|
-
if
|
33
|
+
if APP_ENABLE_RPC_SERVER:
|
34
34
|
register_rpc(
|
35
35
|
logger=logger,
|
36
36
|
rpc_server=rpc_server,
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import os
|
2
|
+
from typing import Any
|
2
3
|
|
3
4
|
from zrb.builtin.project._helper import (
|
4
5
|
create_register_module,
|
@@ -17,9 +18,8 @@ from zrb.builtin.project.add.plugin._input import (
|
|
17
18
|
package_repository_input,
|
18
19
|
)
|
19
20
|
from zrb.builtin.project.add.project_task import add_project_tasks
|
20
|
-
from zrb.config.config import
|
21
|
+
from zrb.config.config import VERSION
|
21
22
|
from zrb.helper.accessories.color import colored
|
22
|
-
from zrb.helper.typing import Any
|
23
23
|
from zrb.runner import runner
|
24
24
|
from zrb.task.decorator import python_task
|
25
25
|
from zrb.task.resource_maker import ResourceMaker
|
@@ -61,7 +61,7 @@ copy_resource = ResourceMaker(
|
|
61
61
|
"zrbPackageDocumentation": "{{input.package_documentation}}",
|
62
62
|
"zrbPackageAuthorName": "{{input.package_author_name}}",
|
63
63
|
"zrbPackageAuthorEmail": "{{input.package_author_email}}",
|
64
|
-
"zrbVersion":
|
64
|
+
"zrbVersion": VERSION,
|
65
65
|
},
|
66
66
|
template_path=os.path.join(_CURRENT_DIR, "template"),
|
67
67
|
destination_path="{{ input.project_dir }}",
|
@@ -1,11 +1,11 @@
|
|
1
1
|
import os
|
2
|
+
from typing import Any
|
2
3
|
|
3
4
|
from zrb.builtin.project._input import project_dir_input
|
4
5
|
from zrb.helper.codemod.add_assert_resource import add_assert_resource
|
5
6
|
from zrb.helper.codemod.add_import_module import add_import_module
|
6
7
|
from zrb.helper.file.copy_tree import copy_tree
|
7
8
|
from zrb.helper.file.text import read_text_file_async, write_text_file_async
|
8
|
-
from zrb.helper.typing import Any
|
9
9
|
from zrb.task.decorator import python_task
|
10
10
|
from zrb.task.task import Task
|
11
11
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import os
|
2
|
+
from typing import Any
|
2
3
|
|
3
4
|
from zrb.builtin.project._helper import (
|
4
5
|
create_register_module,
|
@@ -8,7 +9,6 @@ from zrb.builtin.project._helper import (
|
|
8
9
|
from zrb.builtin.project._input import project_dir_input
|
9
10
|
from zrb.builtin.project.add.task._group import project_add_task_group
|
10
11
|
from zrb.builtin.project.add.task._input import task_name_input
|
11
|
-
from zrb.helper.typing import Any
|
12
12
|
from zrb.runner import runner
|
13
13
|
from zrb.task.decorator import python_task
|
14
14
|
from zrb.task.resource_maker import ResourceMaker
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import os
|
2
|
+
from typing import Any
|
2
3
|
|
3
4
|
from zrb.builtin.project._helper import (
|
4
5
|
create_register_module,
|
@@ -12,7 +13,6 @@ from zrb.builtin.project.add.task.docker_compose._input import (
|
|
12
13
|
compose_command_input,
|
13
14
|
http_port_input,
|
14
15
|
)
|
15
|
-
from zrb.helper.typing import Any
|
16
16
|
from zrb.runner import runner
|
17
17
|
from zrb.task.decorator import python_task
|
18
18
|
from zrb.task.resource_maker import ResourceMaker
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import os
|
2
|
+
from typing import Any
|
2
3
|
|
3
4
|
from zrb.builtin.project._helper import (
|
4
5
|
create_register_module,
|
@@ -8,7 +9,6 @@ from zrb.builtin.project._helper import (
|
|
8
9
|
from zrb.builtin.project._input import project_dir_input
|
9
10
|
from zrb.builtin.project.add.task._group import project_add_task_group
|
10
11
|
from zrb.builtin.project.add.task._input import task_name_input
|
11
|
-
from zrb.helper.typing import Any
|
12
12
|
from zrb.runner import runner
|
13
13
|
from zrb.task.decorator import python_task
|
14
14
|
from zrb.task.resource_maker import ResourceMaker
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import os
|
2
|
+
from typing import Any
|
2
3
|
|
3
4
|
from zrb.builtin.project._group import project_group
|
4
5
|
from zrb.builtin.project._input import project_dir_input
|
@@ -10,9 +11,8 @@ from zrb.builtin.project.create._input import (
|
|
10
11
|
project_description_input,
|
11
12
|
project_name_input,
|
12
13
|
)
|
13
|
-
from zrb.config.config import
|
14
|
+
from zrb.config.config import VERSION
|
14
15
|
from zrb.helper.accessories.color import colored
|
15
|
-
from zrb.helper.typing import Any
|
16
16
|
from zrb.runner import runner
|
17
17
|
from zrb.task.cmd_task import CmdTask
|
18
18
|
from zrb.task.decorator import python_task
|
@@ -57,7 +57,7 @@ copy_resource = ResourceMaker(
|
|
57
57
|
"zrbProjectAuthorName": "{{input.project_author_name}}",
|
58
58
|
"zrbProjectAuthorEmail": "{{input.project_author_email}}",
|
59
59
|
"zrbImageDefaultNamespace": _IMAGE_DEFAULT_NAMESPACE,
|
60
|
-
"zrbVersion":
|
60
|
+
"zrbVersion": VERSION,
|
61
61
|
},
|
62
62
|
replacement_mutator=copy_resource_replacement_mutator,
|
63
63
|
template_path=os.path.join(_CURRENT_DIR, "template"),
|
zrb/builtin/say.py
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
import datetime
|
2
2
|
import random
|
3
|
+
from typing import Any
|
3
4
|
|
4
5
|
from zrb.helper.task import show_lines
|
5
|
-
from zrb.helper.typing import Any, List
|
6
6
|
from zrb.runner import runner
|
7
7
|
from zrb.task.decorator import python_task
|
8
8
|
from zrb.task_input.int_input import IntInput
|
@@ -94,7 +94,7 @@ def say(*args: Any, **kwargs: Any):
|
|
94
94
|
show_lines(kwargs["_task"], *lines)
|
95
95
|
|
96
96
|
|
97
|
-
def _get_content(text: str, width: int) ->
|
97
|
+
def _get_content(text: str, width: int) -> list[str]:
|
98
98
|
if text == "":
|
99
99
|
now = datetime.datetime.now()
|
100
100
|
today = "Today is " + now.strftime("%A, %B %d, %Y")
|
@@ -108,7 +108,7 @@ def _get_content(text: str, width: int) -> List[str]:
|
|
108
108
|
return _split_text_by_width(text, width)
|
109
109
|
|
110
110
|
|
111
|
-
def _split_text_by_width(text: str, width: int) ->
|
111
|
+
def _split_text_by_width(text: str, width: int) -> list[str]:
|
112
112
|
original_lines = text.split("\n")
|
113
113
|
new_lines = []
|
114
114
|
for original_line in original_lines:
|
zrb/builtin/version.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
-
from
|
2
|
-
|
1
|
+
from typing import Any
|
2
|
+
|
3
|
+
from zrb.config.config import VERSION
|
3
4
|
from zrb.runner import runner
|
4
5
|
from zrb.task.decorator import python_task
|
5
6
|
from zrb.task.task import Task
|
@@ -8,5 +9,5 @@ from zrb.task.task import Task
|
|
8
9
|
@python_task(name="version", description="Get Zrb version", runner=runner)
|
9
10
|
async def get_version(*args: Any, **kwargs: Any) -> str:
|
10
11
|
task: Task = kwargs.get("_task")
|
11
|
-
task.print_out(
|
12
|
-
return
|
12
|
+
task.print_out(VERSION)
|
13
|
+
return VERSION
|
zrb/config/config.py
CHANGED
@@ -30,19 +30,29 @@ def _get_default_tmp_dir() -> str:
|
|
30
30
|
return os.path.expanduser(os.path.join("~", ".tmp"))
|
31
31
|
|
32
32
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
33
|
+
TMP_DIR = os.getenv("ZRB_TMP_DIR", _get_default_tmp_dir())
|
34
|
+
DEFAULT_SHELL = os.getenv("ZRB_SHELL", _get_current_shell())
|
35
|
+
DEFAULT_EDITOR = os.getenv("ZRB_EDITOR", "nano")
|
36
|
+
INIT_MODULES_STR = os.getenv("ZRB_INIT_MODULES", "")
|
37
|
+
INIT_MODULES = (
|
38
|
+
[module.strip() for module in INIT_MODULES_STR.split(":") if module.strip() != ""]
|
39
|
+
if INIT_MODULES_STR != ""
|
40
|
+
else []
|
41
|
+
)
|
42
|
+
INIT_SCRIPTS_STR = os.getenv("ZRB_INIT_SCRIPTS", "")
|
43
|
+
INIT_SCRIPTS = (
|
44
|
+
[script.strip() for script in INIT_SCRIPTS_STR.split(":") if script.strip() != ""]
|
45
|
+
if INIT_SCRIPTS_STR != ""
|
46
|
+
else []
|
47
|
+
)
|
48
|
+
LOGGING_LEVEL = untyped_to_logging_level(os.getenv("ZRB_LOGGING_LEVEL", "WARNING"))
|
49
|
+
SHOULD_LOAD_BUILTIN = untyped_to_boolean(os.getenv("ZRB_SHOULD_LOAD_BUILTIN", "1"))
|
50
|
+
ENV_PREFIX = os.getenv("ZRB_ENV", "")
|
51
|
+
SHOW_ADVERTISEMENT = untyped_to_boolean(os.getenv("ZRB_SHOW_ADVERTISEMENT", "1"))
|
52
|
+
SHOW_PROMPT = untyped_to_boolean(os.getenv("ZRB_SHOW_PROMPT", "1"))
|
53
|
+
SHOW_TIME = untyped_to_boolean(os.getenv("ZRB_SHOW_TIME", "1"))
|
54
|
+
VERSION = _get_version()
|
55
|
+
CONTAINER_BACKEND = _get_valid_container_backend(
|
46
56
|
os.getenv("ZRB_CONTAINER_BACKEND", "docker")
|
47
57
|
)
|
48
|
-
|
58
|
+
ENABLE_TYPE_CHECKING = untyped_to_boolean(os.getenv("ZRB_ENABLE_TYPE_CHECKING", "1"))
|
zrb/helper/accessories/color.py
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
import random
|
2
|
+
from collections.abc import Iterable
|
3
|
+
from typing import Optional
|
2
4
|
|
3
5
|
from termcolor import COLORS
|
4
6
|
|
5
7
|
from zrb.helper.accessories.untyped_color import untyped_colored
|
6
8
|
from zrb.helper.log import logger
|
7
9
|
from zrb.helper.typecheck import typechecked
|
8
|
-
from zrb.helper.typing import Iterable, Optional
|
9
10
|
|
10
11
|
logger.debug(untyped_colored("Loading zrb.helper.accessories.color", attrs=["dark"]))
|
11
12
|
|
zrb/helper/advertisement.py
CHANGED
@@ -2,11 +2,12 @@ import datetime
|
|
2
2
|
import random
|
3
3
|
import re
|
4
4
|
import sys
|
5
|
+
from collections.abc import Iterable
|
6
|
+
from typing import Optional
|
5
7
|
|
6
8
|
from zrb.helper.accessories.color import colored
|
7
9
|
from zrb.helper.log import logger
|
8
10
|
from zrb.helper.typecheck import typechecked
|
9
|
-
from zrb.helper.typing import Iterable, Optional
|
10
11
|
|
11
12
|
logger.debug(colored("Loading zrb.helper.advertisement", attrs=["dark"]))
|
12
13
|
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import asyncio
|
2
|
+
|
3
|
+
from zrb.helper.accessories.color import colored
|
4
|
+
from zrb.helper.log import logger
|
5
|
+
|
6
|
+
logger.debug(colored("Loading zrb.helper.asyncio_task", attrs=["dark"]))
|
7
|
+
|
8
|
+
|
9
|
+
async def stop_asyncio():
|
10
|
+
tasks = [task for task in asyncio.all_tasks() if task is not asyncio.current_task()]
|
11
|
+
for task in tasks:
|
12
|
+
task.cancel()
|
13
|
+
|
14
|
+
# Wait until all tasks are cancelled
|
15
|
+
await asyncio.gather(*tasks, return_exceptions=True)
|
16
|
+
|
17
|
+
|
18
|
+
def stop_asyncio_sync():
|
19
|
+
loop = asyncio.get_event_loop()
|
20
|
+
if loop.is_running():
|
21
|
+
loop.create_task(stop_asyncio())
|
22
|
+
else:
|
23
|
+
loop.run_until_complete(stop_asyncio())
|
zrb/helper/callable.py
CHANGED
@@ -1,13 +1,16 @@
|
|
1
1
|
import asyncio
|
2
2
|
import inspect
|
3
|
-
from
|
3
|
+
from collections.abc import Callable
|
4
|
+
from typing import Any
|
4
5
|
|
5
6
|
from zrb.helper.accessories.color import colored
|
6
7
|
from zrb.helper.log import logger
|
8
|
+
from zrb.helper.typecheck import typechecked
|
7
9
|
|
8
10
|
logger.debug(colored("Loading zrb.helper.callable", attrs=["dark"]))
|
9
11
|
|
10
12
|
|
13
|
+
@typechecked
|
11
14
|
async def run_async(fn: Callable, *args: Any, **kwargs: Any) -> Any:
|
12
15
|
if inspect.iscoroutinefunction(fn):
|
13
16
|
return await fn(*args, **kwargs)
|