zrb 0.0.45__tar.gz → 0.0.47__tar.gz

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.
Files changed (333) hide show
  1. {zrb-0.0.45 → zrb-0.0.47}/PKG-INFO +3 -1
  2. {zrb-0.0.45 → zrb-0.0.47}/pyproject.toml +3 -1
  3. {zrb-0.0.45 → zrb-0.0.47}/requirements.txt +1 -0
  4. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/__init__.py +1 -1
  5. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/action/runner.py +2 -3
  6. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/__init__.py +2 -0
  7. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/_group.py +1 -1
  8. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/env.py +0 -2
  9. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/_common.py +15 -16
  10. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/docker_compose_task/template/src/kebab-task-name/docker-compose.yml +7 -1
  11. zrb-0.0.47/src/zrb/builtin/generator/docker_compose_task/template/src/kebab-task-name/image/Dockerfile +7 -0
  12. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/docker_compose_task/template/src/kebab-task-name/image/main.py +0 -5
  13. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/add.py +3 -3
  14. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/_common.py +17 -7
  15. zrb-0.0.47/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/config/docker-compose.env +3 -0
  16. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/container.py +14 -5
  17. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/image.py +1 -1
  18. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/local.py +1 -2
  19. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/docker-compose.yml +24 -6
  20. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/Dockerfile +3 -1
  21. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/template.env +1 -1
  22. zrb-0.0.47/src/zrb/builtin/generator/fastapp_module/add.py +368 -0
  23. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project/template/README.md +19 -3
  24. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project_task/add.py +12 -13
  25. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project_task/task_factory.py +12 -14
  26. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/add.py +3 -3
  27. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/docker-compose.yml +7 -1
  28. zrb-0.0.47/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/Dockerfile +7 -0
  29. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/main.py +0 -5
  30. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/md5.py +5 -4
  31. zrb-0.0.47/src/zrb/builtin/project.py +32 -0
  32. zrb-0.0.47/src/zrb/helper/docker_compose/file.py +22 -0
  33. zrb-0.0.47/src/zrb/helper/env_map/fetch.py +68 -0
  34. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/file/copy_tree.py +6 -7
  35. zrb-0.0.47/src/zrb/helper/file/text.py +20 -0
  36. zrb-0.0.47/src/zrb/helper/string/jinja.py +11 -0
  37. zrb-0.0.47/src/zrb/task/base_task.py +798 -0
  38. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task/cmd_task.py +1 -2
  39. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task/decorator.py +1 -1
  40. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task/docker_compose_task.py +3 -4
  41. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task/http_checker.py +1 -2
  42. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task/installer/factory.py +6 -4
  43. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task/path_checker.py +3 -4
  44. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task/port_checker.py +1 -2
  45. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task/resource_maker.py +2 -3
  46. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task_env/env.py +4 -3
  47. {zrb-0.0.45 → zrb-0.0.47}/test/builtin/generator/cmd_task/test_add_cmd_task.py +2 -2
  48. {zrb-0.0.45 → zrb-0.0.47}/test/builtin/generator/docker_compose_task/test_add_docker_compose_task.py +2 -2
  49. {zrb-0.0.45 → zrb-0.0.47}/test/builtin/generator/python_task/test_add_python_task.py +2 -2
  50. {zrb-0.0.45 → zrb-0.0.47}/test/builtin/generator/simple-python-app/test_add_simple_python_app.py +2 -2
  51. {zrb-0.0.45 → zrb-0.0.47}/test/helper/test_fetch_external_env.py +1 -1
  52. zrb-0.0.45/src/zrb/builtin/generator/docker_compose_task/template/src/kebab-task-name/image/Dockerfile +0 -5
  53. zrb-0.0.45/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module_disabled.env +0 -0
  54. zrb-0.0.45/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module_enabled.env +0 -0
  55. zrb-0.0.45/src/zrb/builtin/generator/fastapp_module/add.py +0 -185
  56. zrb-0.0.45/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/Dockerfile +0 -5
  57. zrb-0.0.45/src/zrb/helper/dockercompose/read.py +0 -9
  58. zrb-0.0.45/src/zrb/task/base_model.py +0 -456
  59. zrb-0.0.45/src/zrb/task/base_task.py +0 -345
  60. zrb-0.0.45/src/zrb/task_group/group.py +0 -36
  61. {zrb-0.0.45 → zrb-0.0.47}/.gitignore +0 -0
  62. {zrb-0.0.45 → zrb-0.0.47}/LICENSE +0 -0
  63. {zrb-0.0.45 → zrb-0.0.47}/README.md +0 -0
  64. {zrb-0.0.45 → zrb-0.0.47}/playground-template/__init__.py +0 -0
  65. {zrb-0.0.45 → zrb-0.0.47}/playground-template/generate-project.sh +0 -0
  66. {zrb-0.0.45 → zrb-0.0.47}/playground-template/programmatic.py +0 -0
  67. {zrb-0.0.45 → zrb-0.0.47}/playground-template/zrb_init.py +0 -0
  68. {zrb-0.0.45 → zrb-0.0.47}/project.sh +0 -0
  69. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/__main__.py +0 -0
  70. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/action/__init__.py +0 -0
  71. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/action/base_action.py +0 -0
  72. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/advertisement.py +0 -0
  73. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/base64.py +0 -0
  74. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/__init__.py +0 -0
  75. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/aws/download.sh +0 -0
  76. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/aws/setup.sh +0 -0
  77. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/devtool_install.py +0 -0
  78. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/docker/setup.sh +0 -0
  79. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/gcloud/setup.sh +0 -0
  80. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/gvm/config.sh +0 -0
  81. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/gvm/download.sh +0 -0
  82. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/gvm/finalize.sh +0 -0
  83. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/helm/download.sh +0 -0
  84. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/helm/setup.sh +0 -0
  85. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/kubectl/download.sh +0 -0
  86. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/kubectl/setup.sh +0 -0
  87. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/nvm/config.sh +0 -0
  88. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/nvm/download.sh +0 -0
  89. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/nvm/finalize.sh +0 -0
  90. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/pulumi/config.sh +0 -0
  91. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/pulumi/download.sh +0 -0
  92. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/pyenv/config.sh +0 -0
  93. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/pyenv/download.sh +0 -0
  94. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/pyenv/finalize.sh +0 -0
  95. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/sdkman/config.sh +0 -0
  96. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/sdkman/download.sh +0 -0
  97. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/sdkman/finalize.sh +0 -0
  98. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/terraform/config.sh +0 -0
  99. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/terraform/download.sh +0 -0
  100. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/terraform/setup.sh +0 -0
  101. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/tmux/config.sh +0 -0
  102. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/tmux/setup.sh +0 -0
  103. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/zsh/config.sh +0 -0
  104. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/devtool/zsh/setup.sh +0 -0
  105. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/eval.py +0 -0
  106. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/__init__.py +0 -0
  107. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/cmd_task/__init__.py +0 -0
  108. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/cmd_task/add.py +0 -0
  109. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/cmd_task/template/_automate/snake_task_name.py +0 -0
  110. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/docker_compose_task/__init__.py +0 -0
  111. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/docker_compose_task/add.py +0 -0
  112. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/docker_compose_task/template/_automate/snake_task_name.py +0 -0
  113. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/docker_compose_task/template/src/kebab-task-name/image/requirements.txt +0 -0
  114. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/__init__.py +0 -0
  115. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/__init__.py +0 -0
  116. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/cmd/build-frontend.sh +0 -0
  117. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/cmd/prepare-backend.sh +0 -0
  118. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/cmd/pulumi-destroy.sh +0 -0
  119. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/cmd/pulumi-up.sh +0 -0
  120. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/cmd/start.sh +0 -0
  121. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/config/modules.json +0 -0
  122. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/deployment.py +0 -0
  123. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/frontend.py +0 -0
  124. /zrb-0.0.45/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/config/module_disabled.env → /zrb-0.0.47/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/all-module-disabled.env +0 -0
  125. /zrb-0.0.45/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/config/module_enabled.env → /zrb-0.0.47/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/all-module-enabled.env +0 -0
  126. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/deployment/.gitignore +0 -0
  127. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/deployment/Pulumi.yaml +0 -0
  128. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/deployment/__main__.py +0 -0
  129. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/deployment/requirements.txt +0 -0
  130. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/deployment/state/.gitkeep +0 -0
  131. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/.dockerignore +0 -0
  132. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/.gitignore +0 -0
  133. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/README.md +0 -0
  134. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/__init__.py +0 -0
  135. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/component/__init__.py +0 -0
  136. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/component/app.py +0 -0
  137. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/component/app_lifespan.py +0 -0
  138. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/component/app_state.py +0 -0
  139. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/component/frontend_index.py +0 -0
  140. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/component/log.py +0 -0
  141. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/component/messagebus.py +0 -0
  142. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/component/rpc.py +0 -0
  143. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/config.py +0 -0
  144. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/__init__.py +0 -0
  145. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/__init__.py +0 -0
  146. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/kafka/__init__.py +0 -0
  147. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/kafka/admin.py +0 -0
  148. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/kafka/consumer.py +0 -0
  149. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/kafka/publisher.py +0 -0
  150. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/messagebus.py +0 -0
  151. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/mock.py +0 -0
  152. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/rabbitmq/__init__.py +0 -0
  153. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/rabbitmq/admin.py +0 -0
  154. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/rabbitmq/consumer.py +0 -0
  155. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/rabbitmq/publisher.py +0 -0
  156. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/rpc/__init__.py +0 -0
  157. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/rpc/messagebus/__init__.py +0 -0
  158. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/rpc/messagebus/caller.py +0 -0
  159. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/rpc/messagebus/server.py +0 -0
  160. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/rpc/rpc.py +0 -0
  161. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/serializer/serializer.py +0 -0
  162. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.eslintignore +0 -0
  163. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.eslintrc.cjs +0 -0
  164. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.gitignore +0 -0
  165. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.npmrc +0 -0
  166. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.prettierignore +0 -0
  167. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.prettierrc +0 -0
  168. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/README.md +0 -0
  169. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/package.json +0 -0
  170. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/playwright.config.ts +0 -0
  171. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/app.d.ts +0 -0
  172. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/app.html +0 -0
  173. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/index.test.ts +0 -0
  174. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/+layout.js +0 -0
  175. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/+layout.svelte +0 -0
  176. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/+page.svelte +0 -0
  177. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/about/+page.svelte +0 -0
  178. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/greetings/[slug]/+page.js +0 -0
  179. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/greetings/[slug]/+page.svelte +0 -0
  180. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/greetings/[slug]/page.js +0 -0
  181. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/static/favicon.png +0 -0
  182. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/svelte.config.js +0 -0
  183. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/tests/test.ts +0 -0
  184. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/tsconfig.json +0 -0
  185. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/vite.config.ts +0 -0
  186. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/helper/__init__.py +0 -0
  187. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/helper/async_task.py +0 -0
  188. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/helper/conversion.py +0 -0
  189. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/main.py +0 -0
  190. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/__init__.py +0 -0
  191. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/requirements.txt +0 -0
  192. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp_module/template/src/kebab-app-name/src/module/snake_module_name/__init__.py +0 -0
  193. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp_module/template/src/kebab-app-name/src/module/snake_module_name/api.py +0 -0
  194. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp_module/template/src/kebab-app-name/src/module/snake_module_name/event.py +0 -0
  195. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/fastapp_module/template/src/kebab-app-name/src/module/snake_module_name/rpc.py +0 -0
  196. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project/__init__.py +0 -0
  197. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project/create.py +0 -0
  198. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project/template/.gitignore +0 -0
  199. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project/template/_automate/__init__.py +0 -0
  200. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project/template/project.sh +0 -0
  201. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project/template/requirements.txt +0 -0
  202. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project/template/src/.gitkeep +0 -0
  203. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project/template/template.env +0 -0
  204. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project/template/zrb_init.py +0 -0
  205. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project_task/__init__.py +0 -0
  206. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project_task/task_factory_helper.py +0 -0
  207. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project_task/template/_automate/_project/__init__.py +0 -0
  208. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project_task/template/_automate/_project/build_project_images.py +0 -0
  209. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project_task/template/_automate/_project/deploy_project.py +0 -0
  210. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project_task/template/_automate/_project/destroy_project.py +0 -0
  211. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project_task/template/_automate/_project/push_project_images.py +0 -0
  212. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project_task/template/_automate/_project/remove_project_containers.py +0 -0
  213. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project_task/template/_automate/_project/start_project.py +0 -0
  214. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project_task/template/_automate/_project/start_project_containers.py +0 -0
  215. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/project_task/template/_automate/_project/stop_project_containers.py +0 -0
  216. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/python_task/__init__.py +0 -0
  217. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/python_task/add.py +0 -0
  218. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/python_task/template/_automate/snake_task_name.py +0 -0
  219. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/__init__.py +0 -0
  220. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/_automate/snake_app_name/__init__.py +0 -0
  221. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/_automate/snake_app_name/_common.py +0 -0
  222. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/_automate/snake_app_name/cmd/pulumi-destroy.sh +0 -0
  223. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/_automate/snake_app_name/cmd/pulumi-up.sh +0 -0
  224. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/_automate/snake_app_name/cmd/start.sh +0 -0
  225. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/_automate/snake_app_name/container.py +0 -0
  226. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/_automate/snake_app_name/deployment.py +0 -0
  227. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/_automate/snake_app_name/image.py +0 -0
  228. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/_automate/snake_app_name/local.py +0 -0
  229. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/deployment/.gitignore +0 -0
  230. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/deployment/Pulumi.yaml +0 -0
  231. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/deployment/__main__.py +0 -0
  232. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/deployment/requirements.txt +0 -0
  233. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/deployment/state/.gitkeep +0 -0
  234. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/.dockerignore +0 -0
  235. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/.gitignore +0 -0
  236. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/requirements.txt +0 -0
  237. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/template.env +0 -0
  238. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/principle.py +0 -0
  239. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/ubuntu.py +0 -0
  240. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/update.py +0 -0
  241. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/builtin/version.py +0 -0
  242. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/config/__init__.py +0 -0
  243. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/config/config.py +0 -0
  244. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/config.toml +0 -0
  245. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/__init__.py +0 -0
  246. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/accessories/__init__.py +0 -0
  247. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/accessories/color.py +0 -0
  248. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/accessories/icon.py +0 -0
  249. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/accessories/name.py +0 -0
  250. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/advertisement.py +0 -0
  251. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/cli.py +0 -0
  252. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/codemod/__init__.py +0 -0
  253. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/codemod/add_assert_resource.py +0 -0
  254. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/codemod/add_function_call.py +0 -0
  255. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/codemod/add_import_module.py +0 -0
  256. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/codemod/add_upstream_to_task.py +0 -0
  257. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/codemod/format_code.py +0 -0
  258. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/default_env.py +0 -0
  259. {zrb-0.0.45/src/zrb/helper/dockercompose → zrb-0.0.47/src/zrb/helper/docker_compose}/fetch_external_env.py +0 -0
  260. {zrb-0.0.45/src/zrb/helper/file → zrb-0.0.47/src/zrb/helper/env_map}/__init__.py +0 -0
  261. {zrb-0.0.45/src/zrb/helper/keyval → zrb-0.0.47/src/zrb/helper/file}/__init__.py +0 -0
  262. {zrb-0.0.45/src/zrb/helper/list → zrb-0.0.47/src/zrb/helper/keyval}/__init__.py +0 -0
  263. {zrb-0.0.45/src/zrb/helper/loader → zrb-0.0.47/src/zrb/helper/list}/__init__.py +0 -0
  264. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/list/ensure_uniqueness.py +0 -0
  265. {zrb-0.0.45/src/zrb/helper/string → zrb-0.0.47/src/zrb/helper/loader}/__init__.py +0 -0
  266. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/loader/load_module.py +0 -0
  267. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/log.py +0 -0
  268. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/middlewares/replacement.py +0 -0
  269. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/render_data.py +0 -0
  270. {zrb-0.0.45/src/zrb/task → zrb-0.0.47/src/zrb/helper/string}/__init__.py +0 -0
  271. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/string/conversion.py +0 -0
  272. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/string/double_quote.py +0 -0
  273. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/string/parse_replacement.py +0 -0
  274. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/helper/util.py +0 -0
  275. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/runner.py +0 -0
  276. {zrb-0.0.45/src/zrb/task_group → zrb-0.0.47/src/zrb/task}/__init__.py +0 -0
  277. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task/installer/_default/backup-config.sh +0 -0
  278. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task/installer/_default/check.sh +0 -0
  279. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task/installer/_default/download.sh +0 -0
  280. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task/installer/_default/finalize.sh +0 -0
  281. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task/installer/_default/remove-config.sh +0 -0
  282. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task/installer/_default/setup.sh +0 -0
  283. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task/task.py +0 -0
  284. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task_env/env_file.py +0 -0
  285. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task_input/__init__.py +0 -0
  286. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task_input/_constant.py +0 -0
  287. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task_input/base_input.py +0 -0
  288. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task_input/bool_input.py +0 -0
  289. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task_input/choice_input.py +0 -0
  290. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task_input/float_input.py +0 -0
  291. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task_input/input.py +0 -0
  292. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task_input/int_input.py +0 -0
  293. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task_input/password_input.py +0 -0
  294. {zrb-0.0.45 → zrb-0.0.47}/src/zrb/task_input/str_input.py +0 -0
  295. {zrb-0.0.45 → zrb-0.0.47}/template.env +0 -0
  296. {zrb-0.0.45 → zrb-0.0.47}/test/.gitignore +0 -0
  297. {zrb-0.0.45 → zrb-0.0.47}/test/builtin/generator/cmd_task/.gitignore +0 -0
  298. {zrb-0.0.45 → zrb-0.0.47}/test/builtin/generator/docker_compose_task/.gitignore +0 -0
  299. {zrb-0.0.45 → zrb-0.0.47}/test/builtin/generator/project/.gitignore +0 -0
  300. {zrb-0.0.45 → zrb-0.0.47}/test/builtin/generator/project/test_create_project.py +0 -0
  301. {zrb-0.0.45 → zrb-0.0.47}/test/builtin/generator/python_task/.gitignore +0 -0
  302. {zrb-0.0.45 → zrb-0.0.47}/test/builtin/generator/simple-python-app/.gitignore +0 -0
  303. {zrb-0.0.45 → zrb-0.0.47}/test/builtin/md5_test_sum.txt +0 -0
  304. {zrb-0.0.45 → zrb-0.0.47}/test/builtin/test_base64.py +0 -0
  305. {zrb-0.0.45 → zrb-0.0.47}/test/builtin/test_env.py +0 -0
  306. {zrb-0.0.45 → zrb-0.0.47}/test/builtin/test_eval.py +0 -0
  307. {zrb-0.0.45 → zrb-0.0.47}/test/builtin/test_md5.py +0 -0
  308. {zrb-0.0.45 → zrb-0.0.47}/test/builtin/test_principle.py +0 -0
  309. {zrb-0.0.45 → zrb-0.0.47}/test/helper/codemod/test_add_assert_resource.py +0 -0
  310. {zrb-0.0.45 → zrb-0.0.47}/test/helper/codemod/test_add_function_call.py +0 -0
  311. {zrb-0.0.45 → zrb-0.0.47}/test/helper/codemod/test_add_import_module.py +0 -0
  312. {zrb-0.0.45 → zrb-0.0.47}/test/helper/codemod/test_add_upstream_to_task.py +0 -0
  313. {zrb-0.0.45 → zrb-0.0.47}/test/helper/test_util.py +0 -0
  314. {zrb-0.0.45 → zrb-0.0.47}/test/task/cmd_task/templates/hello.sh +0 -0
  315. {zrb-0.0.45 → zrb-0.0.47}/test/task/cmd_task/templates/macros.jinja +0 -0
  316. {zrb-0.0.45 → zrb-0.0.47}/test/task/cmd_task/test_cmd_task.py +0 -0
  317. {zrb-0.0.45 → zrb-0.0.47}/test/task/docker_compose_task/resource/docker-compose-simple-list-env.yml +0 -0
  318. {zrb-0.0.45 → zrb-0.0.47}/test/task/docker_compose_task/resource/docker-compose-simple-map-env.yml +0 -0
  319. {zrb-0.0.45 → zrb-0.0.47}/test/task/docker_compose_task/resource/docker-compose-simple-no-default-env.yml +0 -0
  320. {zrb-0.0.45 → zrb-0.0.47}/test/task/docker_compose_task/resource/docker-compose-simple.yml +0 -0
  321. {zrb-0.0.45 → zrb-0.0.47}/test/task/docker_compose_task/resource/docker-compose.yml +0 -0
  322. {zrb-0.0.45 → zrb-0.0.47}/test/task/docker_compose_task/resource/image/Dockerfile +0 -0
  323. {zrb-0.0.45 → zrb-0.0.47}/test/task/docker_compose_task/resource/image/my_program.py +0 -0
  324. {zrb-0.0.45 → zrb-0.0.47}/test/task/docker_compose_task/test_docker_compose_task.py +0 -0
  325. {zrb-0.0.45 → zrb-0.0.47}/test/task/resource_maker/.gitignore +0 -0
  326. {zrb-0.0.45 → zrb-0.0.47}/test/task/resource_maker/template/excluded +0 -0
  327. {zrb-0.0.45 → zrb-0.0.47}/test/task/resource_maker/template/src/app_name.py +0 -0
  328. {zrb-0.0.45 → zrb-0.0.47}/test/task/resource_maker/template/src/config_app_name.py +0 -0
  329. {zrb-0.0.45 → zrb-0.0.47}/test/task/resource_maker/test_resource_maker.py +0 -0
  330. {zrb-0.0.45 → zrb-0.0.47}/test/task/test_decorator.py +0 -0
  331. {zrb-0.0.45 → zrb-0.0.47}/test/task/test_task.env +0 -0
  332. {zrb-0.0.45 → zrb-0.0.47}/test/task/test_task.py +0 -0
  333. {zrb-0.0.45 → zrb-0.0.47}/zrb_init.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 0.0.45
3
+ Version: 0.0.47
4
4
  Summary: Your faithful companion
5
5
  Author-email: Go Frendi Gunawan <gofrendiasgard@gmail.com>
6
6
  Requires-Python: >=3.8
@@ -9,11 +9,13 @@ Classifier: Programming Language :: Python :: 3
9
9
  Classifier: License :: OSI Approved :: MIT License
10
10
  Classifier: Operating System :: OS Independent
11
11
  Requires-Dist: click==8.1.3
12
+ Requires-Dist: aiofiles==23.1.0
12
13
  Requires-Dist: typeguard==2.13.3
13
14
  Requires-Dist: termcolor==2.2.0
14
15
  Requires-Dist: Jinja2==3.1.2
15
16
  Requires-Dist: libcst==0.4.9
16
17
  Requires-Dist: python-dotenv==0.21.1
18
+ Requires-Dist: jsons==1.6.3
17
19
  Requires-Dist: ruamel.yaml==0.17.21
18
20
  Requires-Dist: setuptools==49.2.1
19
21
  Requires-Dist: autopep8==2.0.1
@@ -4,7 +4,7 @@ build-backend = "flit_core.buildapi"
4
4
 
5
5
  [project]
6
6
  name = "zrb"
7
- version = "0.0.45"
7
+ version = "0.0.47"
8
8
  authors = [
9
9
  { name="Go Frendi Gunawan", email="gofrendiasgard@gmail.com" },
10
10
  ]
@@ -18,11 +18,13 @@ classifiers = [
18
18
  ]
19
19
  dependencies = [
20
20
  "click==8.1.3",
21
+ "aiofiles==23.1.0",
21
22
  "typeguard==2.13.3",
22
23
  "termcolor==2.2.0",
23
24
  "Jinja2==3.1.2",
24
25
  "libcst==0.4.9",
25
26
  "python-dotenv==0.21.1",
27
+ "jsons==1.6.3",
26
28
  "ruamel.yaml==0.17.21",
27
29
  "setuptools==49.2.1",
28
30
  "autopep8==2.0.1",
@@ -5,6 +5,7 @@ keyring==23.13.1 # authenticator (used by twine)
5
5
 
6
6
  # Zrb dependencies (should be copied to `pyproject.toml`)
7
7
  click==8.1.3 # CLI framework
8
+ aiofiles==23.1.0
8
9
  typeguard==2.13.3
9
10
  termcolor==2.2.0
10
11
  Jinja2==3.1.2
@@ -17,7 +17,7 @@ from .task_input.password_input import PasswordInput
17
17
  from .task_input.str_input import StrInput
18
18
  from .task_env.env import Env
19
19
  from .task_env.env_file import EnvFile
20
- from .task_group.group import Group
20
+ from .task.base_task import Group
21
21
  from .builtin import _group as builtin_group
22
22
  from .helper.default_env import inject_default_env
23
23
 
@@ -1,7 +1,6 @@
1
1
  from typing import List, Mapping, Union
2
2
  from ..action.base_action import BaseAction
3
- from ..task.base_task import BaseTask
4
- from ..task_group.group import Group as TaskGroup
3
+ from ..task.base_task import BaseTask, Group as TaskGroup
5
4
  import click
6
5
 
7
6
  CliSubcommand = Union[click.Group, click.Command]
@@ -70,7 +69,7 @@ class Runner(BaseAction):
70
69
  task_cmd_name = task.get_cmd_name()
71
70
  task_description = task.get_description()
72
71
  task_main_loop = task.create_main_loop(
73
- env_prefix=self.env_prefix, raise_error=False
72
+ env_prefix=self.env_prefix, raise_error=True
74
73
  )
75
74
  command = click.Command(
76
75
  callback=task_main_loop, name=task_cmd_name, help=task_description
@@ -3,6 +3,7 @@ from . import env
3
3
  from . import eval
4
4
  from . import md5
5
5
  from . import principle
6
+ from . import project
6
7
  from . import ubuntu
7
8
  from . import update
8
9
  from . import version
@@ -20,6 +21,7 @@ assert env
20
21
  assert eval
21
22
  assert md5
22
23
  assert principle
24
+ assert project
23
25
  assert ubuntu
24
26
  assert update
25
27
  assert version
@@ -1,4 +1,4 @@
1
- from ..task_group.group import Group
1
+ from ..task.base_task import Group
2
2
 
3
3
  project_group = Group(
4
4
  name='project', description='Project management'
@@ -5,8 +5,6 @@ from ..task.decorator import python_task
5
5
  from ..task.task import Task
6
6
  from ..runner import runner
7
7
 
8
- # Common definitions
9
-
10
8
 
11
9
  @python_task(
12
10
  name='show',
@@ -10,11 +10,12 @@ from ...task_input.int_input import IntInput
10
10
  from ...helper.accessories.name import get_random_name
11
11
  from ...helper.codemod.add_assert_resource import add_assert_resource
12
12
  from ...helper.codemod.add_import_module import add_import_module
13
- from ...helper import util
14
13
  from ...helper.middlewares.replacement import (
15
14
  add_pascal_key, add_snake_key, add_camel_key,
16
15
  add_kebab_key, add_human_readable_key
17
16
  )
17
+ from ...helper.file.text import read_text_file_async, write_text_file_async
18
+ from ...helper import util
18
19
  import os
19
20
 
20
21
 
@@ -130,7 +131,7 @@ def create_register_task_module(
130
131
  validate_project_dir(project_dir)
131
132
  task_name = kwargs.get('task_name')
132
133
  task.print_out(f'Register module: _automate.{task_name}')
133
- register_module(
134
+ await register_module(
134
135
  project_dir=project_dir,
135
136
  module_name='.'.join([
136
137
  '_automate', util.to_snake_case(task_name)
@@ -179,7 +180,7 @@ def _create_register_app_module(
179
180
  app_name = kwargs.get('app_name')
180
181
  task.print_out(f'Register module: _automate.{app_name}.{module}')
181
182
  snake_app_name = util.to_snake_case(app_name)
182
- register_module(
183
+ await register_module(
183
184
  project_dir=project_dir,
184
185
  module_name='.'.join([
185
186
  '_automate', snake_app_name, module
@@ -189,22 +190,20 @@ def _create_register_app_module(
189
190
  return task
190
191
 
191
192
 
192
- def register_module(
193
+ async def register_module(
193
194
  project_dir: str, module_name: str, alias: Optional[str] = None
194
195
  ):
195
196
  zrb_init_path = os.path.join(project_dir, 'zrb_init.py')
196
- with open(zrb_init_path, 'r') as f:
197
- code = f.read()
198
- if alias is None:
199
- alias = module_name.split('.')[-1]
200
- code = add_import_module(
201
- code=code,
202
- module_path=module_name,
203
- alias=alias
204
- )
205
- code = add_assert_resource(code, alias)
206
- with open(zrb_init_path, 'w') as f:
207
- f.write(code)
197
+ code = await read_text_file_async(zrb_init_path)
198
+ if alias is None:
199
+ alias = module_name.split('.')[-1]
200
+ code = add_import_module(
201
+ code=code,
202
+ module_path=module_name,
203
+ alias=alias
204
+ )
205
+ code = add_assert_resource(code, alias)
206
+ await write_text_file_async(zrb_init_path, code)
208
207
  return True
209
208
 
210
209
 
@@ -9,4 +9,10 @@ services:
9
9
  APP_MESSAGE: '${MESSAGE:-Hello, world!}'
10
10
  APP_PORT: '${CONTAINER_PORT:-8080}'
11
11
  ports:
12
- - ${HOST_PORT:-8080}:${CONTAINER_PORT:-8080}
12
+ - ${HOST_PORT:-8080}:${CONTAINER_PORT:-8080}
13
+ restart: on-failure
14
+ healthcheck:
15
+ test: ["CMD-SHELL", "curl --fail http://localhost:${APP_PORT:-8080}/ || exit 1"]
16
+ interval: 5s
17
+ timeout: 1s
18
+ retries: 30
@@ -0,0 +1,7 @@
1
+ FROM python:3.10-slim
2
+ ENV APP_MESSAGE "Hello, world!"
3
+ ENV APP_PORT 8080
4
+ WORKDIR /home
5
+ COPY . .
6
+ RUN pip install -r requirements.txt
7
+ CMD uvicorn main:app --host "0.0.0.0" --port "$APP_PORT"
@@ -1,4 +1,3 @@
1
- import uvicorn
2
1
  import os
3
2
 
4
3
  MESSAGE = os.getenv('APP_MESSAGE', 'Hello, world!')
@@ -19,7 +18,3 @@ async def app(scope, receive, send):
19
18
  'type': 'http.response.body',
20
19
  'body': bytes(MESSAGE, 'utf-8'),
21
20
  })
22
-
23
-
24
- if __name__ == "__main__":
25
- uvicorn.run("main:app", host='0.0.0.0', port=PORT, log_level="info")
@@ -71,15 +71,15 @@ register_local_app_module = create_register_local_app_module(
71
71
  )
72
72
 
73
73
  register_container_app_module = create_register_container_app_module(
74
- upstreams=[copy_resource]
74
+ upstreams=[register_local_app_module]
75
75
  )
76
76
 
77
77
  register_image_app_module = create_register_image_app_module(
78
- upstreams=[copy_resource]
78
+ upstreams=[register_container_app_module]
79
79
  )
80
80
 
81
81
  register_deployment_app_module = create_register_deployment_app_module(
82
- upstreams=[copy_resource]
82
+ upstreams=[register_image_app_module]
83
83
  )
84
84
 
85
85
  add_project_task = create_add_project_automation(
@@ -1,5 +1,6 @@
1
1
  from zrb import (
2
- BoolInput, ChoiceInput, IntInput, StrInput, Env, HTTPChecker, PortChecker
2
+ BoolInput, ChoiceInput, IntInput, StrInput, Env, EnvFile,
3
+ HTTPChecker, PortChecker
3
4
  )
4
5
  import os
5
6
 
@@ -154,6 +155,15 @@ pulumi_stack_input = StrInput(
154
155
  default=os.getenv('ZRB_ENV', 'dev')
155
156
  )
156
157
 
158
+ ###############################################################################
159
+ # Env file Definitions
160
+ ###############################################################################
161
+
162
+ compose_env_file = EnvFile(
163
+ env_file=os.path.join(CURRENT_DIR, 'config', 'docker-compose.env'),
164
+ prefix='CONTAINER_ENV_PREFIX'
165
+ )
166
+
157
167
  ###############################################################################
158
168
  # Env Definitions
159
169
  ###############################################################################
@@ -200,12 +210,6 @@ compose_app_broker_type_env = Env(
200
210
  default='rabbitmq'
201
211
  )
202
212
 
203
- compose_app_host_port_env = Env(
204
- name='APP_HOST_PORT',
205
- os_name='CONTAINER_ENV_PREFIX_APP_HOST_PORT',
206
- default='httpPort'
207
- )
208
-
209
213
  compose_rabbitmq_host_port_env = Env(
210
214
  name='RABBITMQ_HOST_PORT',
211
215
  os_name='CONTAINER_ENV_PREFIX_RABBITMQ_HOST_PORT',
@@ -272,3 +276,9 @@ start_support_container_compose_profile_env = Env(
272
276
  '}}'
273
277
  ])
274
278
  )
279
+
280
+ all_compose_profile_env = Env(
281
+ name='COMPOSE_PROFILES',
282
+ os_name='',
283
+ default='monolith,microservices,kafka,rabbitmq'
284
+ )
@@ -0,0 +1,3 @@
1
+ APP_HOST_PORT=httpPort
2
+ APP_GATEWAY_PORT=httpPort
3
+ APP_GATEWAY_HOST_PORT=httpPort
@@ -7,8 +7,8 @@ from ._common import (
7
7
  kafka_plaintext_checker, pandaproxy_outside_checker,
8
8
  pandaproxy_plaintext_checker,
9
9
  local_input, mode_input, host_input, https_input, image_input,
10
- compose_app_broker_type_env, compose_app_host_port_env,
11
- start_container_compose_profile_env,
10
+ compose_env_file, compose_app_broker_type_env,
11
+ start_container_compose_profile_env, all_compose_profile_env, image_env,
12
12
  compose_rabbitmq_host_port_env, compose_rabbitmq_management_host_port_env,
13
13
  compose_redpanda_console_host_port_env,
14
14
  compose_kafka_outside_host_port_env,
@@ -21,7 +21,6 @@ from .image import build_snake_app_name_image
21
21
  compose_env_prefix = 'CONTAINER_ENV_PREFIX'
22
22
  compose_envs = [
23
23
  compose_app_broker_type_env,
24
- compose_app_host_port_env,
25
24
  compose_rabbitmq_host_port_env,
26
25
  compose_rabbitmq_management_host_port_env,
27
26
  compose_redpanda_console_host_port_env,
@@ -43,7 +42,11 @@ remove_snake_app_name_container = DockerComposeTask(
43
42
  cwd=RESOURCE_DIR,
44
43
  compose_cmd='down',
45
44
  compose_env_prefix=compose_env_prefix,
46
- envs=compose_envs,
45
+ env_files=[compose_env_file],
46
+ envs=compose_envs + [
47
+ image_env,
48
+ all_compose_profile_env
49
+ ],
47
50
  )
48
51
  runner.register(remove_snake_app_name_container)
49
52
 
@@ -67,8 +70,10 @@ start_snake_app_name_container = DockerComposeTask(
67
70
  cwd=RESOURCE_DIR,
68
71
  compose_cmd='up',
69
72
  compose_env_prefix=compose_env_prefix,
73
+ env_files=[compose_env_file],
70
74
  envs=compose_envs + [
71
75
  start_container_compose_profile_env,
76
+ image_env,
72
77
  ],
73
78
  checkers=[
74
79
  app_container_checker,
@@ -91,6 +96,10 @@ stop_snake_app_name_container = DockerComposeTask(
91
96
  cwd=RESOURCE_DIR,
92
97
  compose_cmd='stop',
93
98
  compose_env_prefix=compose_env_prefix,
94
- envs=compose_envs,
99
+ env_files=[compose_env_file],
100
+ envs=compose_envs + [
101
+ image_env,
102
+ all_compose_profile_env
103
+ ],
95
104
  )
96
105
  runner.register(stop_snake_app_name_container)
@@ -27,7 +27,7 @@ build_snake_app_name_image = DockerComposeTask(
27
27
  cwd=RESOURCE_DIR,
28
28
  compose_cmd='build',
29
29
  compose_args=[
30
- 'kebab-app-name-monolith'
30
+ 'kebab-app-name'
31
31
  ],
32
32
  compose_env_prefix=compose_env_prefix,
33
33
  )
@@ -9,7 +9,7 @@ from ._common import (
9
9
  kafka_plaintext_checker, pandaproxy_outside_checker,
10
10
  pandaproxy_plaintext_checker, app_local_checker,
11
11
  local_input, mode_input, host_input, https_input, image_input,
12
- local_app_port_env, local_app_broker_type_env, compose_app_host_port_env,
12
+ local_app_port_env, local_app_broker_type_env,
13
13
  compose_rabbitmq_host_port_env, compose_rabbitmq_management_host_port_env,
14
14
  compose_redpanda_console_host_port_env,
15
15
  compose_kafka_outside_host_port_env,
@@ -27,7 +27,6 @@ support_compose_env_prefix = 'CONTAINER_ENV_PREFIX'
27
27
  support_compose_envs = [
28
28
  local_app_broker_type_env,
29
29
  local_app_port_env,
30
- compose_app_host_port_env,
31
30
  compose_rabbitmq_host_port_env,
32
31
  compose_rabbitmq_management_host_port_env,
33
32
  compose_redpanda_console_host_port_env,
@@ -68,22 +68,30 @@ services:
68
68
  retries: 30
69
69
 
70
70
 
71
- kebab-app-name-monolith:
71
+ kebab-app-name:
72
72
  build:
73
73
  dockerfile: Dockerfile
74
74
  context: ./src
75
75
  image: ${IMAGE:-kebab-app-name}
76
76
  container_name: snake_app_name
77
77
  hostname: snake_app_name
78
- env_file: 'src/template.env'
78
+ env_file:
79
+ - 'src/template.env'
79
80
  environment:
80
81
  APP_NAME: ${APP_NAME:-kebab-app-name}
81
82
  APP_PORT: ${APP_PORT:-8080}
83
+ APP_RMQ_CONNECTION: ${APP_CONTAINER_RMQ_CONNECTION:-amqp://guest:guest@rabbitmq/}
84
+ APP_KAFKA_BOOTSTRAP_SERVERS: ${APP_CONTAINER_KAFKA_BOOTSTRAP_SERVERS:-redpanda:9092}
82
85
  ports:
83
86
  - "${APP_HOST_PORT:-8080}:${APP_PORT:-8080}"
84
87
  restart: on-failure
85
88
  profiles:
86
89
  - monolith
90
+ healthcheck:
91
+ test: ["CMD-SHELL", "curl --fail http://localhost:${APP_PORT:-8080}/ || exit 1"]
92
+ interval: 5s
93
+ timeout: 1s
94
+ retries: 30
87
95
 
88
96
 
89
97
  kebab-app-name-gateway:
@@ -95,13 +103,23 @@ services:
95
103
  hostname: snake_app_name_gateway
96
104
  env_file:
97
105
  - 'src/template.env'
98
- - 'src/module_enabled.env'
106
+ - 'all-module-enabled.env'
99
107
  environment:
100
108
  APP_NAME: ${APP_NAME:-kebab-app-name}-gateway
101
- APP_PORT: ${APP_PORT:-8080}
109
+ APP_PORT: ${APP_GATEWAY_PORT:-8080}
110
+ APP_RMQ_CONNECTION: ${APP_CONTAINER_RMQ_CONNECTION:-amqp://guest:guest@rabbitmq/}
111
+ APP_KAFKA_BOOTSTRAP_SERVERS: ${APP_CONTAINER_KAFKA_BOOTSTRAP_SERVERS:-redpanda:9092}
102
112
  APP_ENABLE_MESSAGE_CONSUMER: false
113
+ APP_ENABLE_RPC_SERVER: false
114
+ APP_ENABLE_API: true
115
+ APP_ENABLE_FRONTEND: true
103
116
  ports:
104
- - "${APP_HOST_PORT:-8080}:${APP_PORT:-8080}"
117
+ - "${APP_GATEWAY_HOST_PORT:-8080}:${APP_GATEWAY_PORT:-8080}"
105
118
  restart: on-failure
106
119
  profiles:
107
- - microservices
120
+ - microservices
121
+ healthcheck:
122
+ test: ["CMD-SHELL", "curl --fail http://localhost:${APP_GATEWAY_PORT:-8080}/ || exit 1"]
123
+ interval: 5s
124
+ timeout: 1s
125
+ retries: 30
@@ -6,9 +6,11 @@ RUN npm install && npm run build
6
6
 
7
7
  # Second stage: build the API and copy the frontend build
8
8
  FROM python:3.10-slim
9
+ ENV APP_HOST 0.0.0.0
10
+ ENV APP_PORT 8080
9
11
  WORKDIR /home
10
12
  COPY requirements.txt .
11
13
  RUN pip install -r requirements.txt
12
14
  COPY . .
13
15
  COPY --from=frontend-builder /frontend/build /home/frontend/build
14
- CMD python main.py
16
+ CMD uvicorn main:app --host "$APP_HOST" --port "$APP_PORT"
@@ -1,7 +1,7 @@
1
1
  APP_NAME=fastapp
2
2
  APP_LOGGING_LEVEL=info
3
3
  APP_HOST=0.0.0.0
4
- APP_PORT=8080
4
+ APP_PORT=httpPort
5
5
  APP_RELOAD=true
6
6
 
7
7
  APP_BROKER_TYPE=rabbitmq