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.
Files changed (316) hide show
  1. zrb/__init__.py +24 -20
  2. zrb/__main__.py +5 -5
  3. zrb/action/runner.py +22 -30
  4. zrb/advertisement.py +10 -9
  5. zrb/builtin/__init__.py +18 -16
  6. zrb/builtin/base64.py +13 -18
  7. zrb/builtin/devtool/__init__.py +14 -3
  8. zrb/builtin/devtool/devtool_install.py +207 -221
  9. zrb/builtin/env.py +9 -12
  10. zrb/builtin/eval.py +9 -9
  11. zrb/builtin/explain.py +73 -74
  12. zrb/builtin/generator/__init__.py +7 -11
  13. zrb/builtin/generator/app_generator/add.py +86 -87
  14. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/add.py +78 -77
  15. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_checker.py +6 -6
  16. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_common.py +14 -15
  17. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/container.py +32 -32
  18. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/deployment.py +29 -30
  19. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/image.py +1 -3
  20. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/local.py +5 -4
  21. 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
  22. zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/add.py +89 -87
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. zrb/builtin/generator/cmd_task/add.py +23 -25
  32. zrb/builtin/generator/cmd_task/template/_automate/snake_zrb_task_name.py +3 -5
  33. zrb/builtin/generator/common/helper.py +15 -20
  34. zrb/builtin/generator/common/task_factory.py +29 -26
  35. zrb/builtin/generator/common/task_input.py +97 -91
  36. zrb/builtin/generator/docker_compose_task/add.py +38 -39
  37. zrb/builtin/generator/docker_compose_task/template/_automate/snake_zrb_task_name.py +13 -19
  38. zrb/builtin/generator/docker_compose_task/template/src/kebab-zrb-task-name/image/main.py +18 -14
  39. zrb/builtin/generator/fastapp/add.py +94 -90
  40. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_checker.py +28 -27
  41. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_config.py +68 -39
  42. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_env.py +24 -22
  43. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_env_file.py +12 -12
  44. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_get_start_microservices.py +43 -41
  45. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_helper.py +23 -24
  46. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_input.py +21 -20
  47. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-load-test.sh +1 -1
  48. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-start.sh +1 -1
  49. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-test.sh +2 -2
  50. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/container.py +46 -39
  51. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/deployment.py +28 -20
  52. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/frontend.py +21 -27
  53. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/image.py +23 -18
  54. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/load_test.py +35 -36
  55. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/local.py +68 -58
  56. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/test.py +24 -38
  57. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/__main__.py +23 -21
  58. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/_common.py +72 -75
  59. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/app_helper.py +70 -75
  60. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_postgresql_helper.py +18 -21
  61. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_rabbitmq_helper.py +11 -19
  62. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_redpanda_helper.py +18 -15
  63. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_signoz_helper.py +17 -21
  64. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/docker-compose.yml +12 -12
  65. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/loadtest/locustfile.py +10 -12
  66. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/Dockerfile +1 -0
  67. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/app.py +35 -30
  68. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/app_lifespan.py +21 -17
  69. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/app_state.py +3 -2
  70. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/db_connection.py +18 -20
  71. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/frontend_index.py +5 -6
  72. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/log.py +7 -15
  73. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/messagebus.py +38 -34
  74. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/rpc.py +19 -18
  75. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/config.py +68 -103
  76. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/error.py +11 -10
  77. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/__init__.py +2 -4
  78. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/kafka/admin.py +38 -35
  79. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/kafka/consumer.py +38 -45
  80. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/kafka/publisher.py +26 -29
  81. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/messagebus.py +8 -14
  82. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/mock.py +12 -8
  83. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/rabbitmq/admin.py +37 -44
  84. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/rabbitmq/consumer.py +42 -67
  85. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/rabbitmq/publisher.py +32 -55
  86. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/model/repo_model.py +11 -10
  87. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/__init__.py +2 -2
  88. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/db_entity_mixin.py +3 -6
  89. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/db_repo.py +76 -83
  90. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/repo.py +5 -5
  91. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/search_filter.py +1 -0
  92. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/__init__.py +1 -1
  93. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/messagebus/caller.py +17 -19
  94. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/messagebus/server.py +14 -18
  95. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/rpc.py +15 -28
  96. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/schema/__init__.py +1 -1
  97. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/schema/base_schema.py +6 -5
  98. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/serializer/__init__.py +1 -3
  99. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/serializer/serializer.py +3 -4
  100. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/helper/async_task.py +3 -5
  101. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/helper/conversion.py +10 -10
  102. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/helper/migration.py +6 -10
  103. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/migrate.py +3 -2
  104. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/api.py +7 -12
  105. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/__init__.py +4 -6
  106. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/access_token_scheme.py +9 -10
  107. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/access_token_util.py +6 -5
  108. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/authorizer.py +4 -4
  109. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/bearer_token_scheme.py +1 -1
  110. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/model/user_model.py +8 -10
  111. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/password_hasher.py +1 -1
  112. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/refresh_token_util.py +7 -6
  113. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/repo/group_repo.py +3 -8
  114. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/repo/permission_repo.py +3 -7
  115. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/repo/user_repo.py +3 -5
  116. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/user.py +12 -7
  117. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/__init__.py +7 -12
  118. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/access_token/scheme.py +7 -12
  119. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/access_token/util.py +20 -30
  120. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/authorizer/authorizer.py +1 -3
  121. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/authorizer/rpc_authorizer.py +5 -12
  122. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/password_hasher/bcrypt_password_hasher.py +3 -8
  123. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/password_hasher/password_hasher.py +0 -1
  124. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/refresh_token/util.py +15 -21
  125. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/api.py +42 -49
  126. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/model.py +3 -7
  127. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/repo.py +18 -16
  128. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/rpc.py +26 -41
  129. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/api.py +46 -51
  130. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/model.py +5 -7
  131. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/repo.py +11 -8
  132. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/rpc.py +28 -45
  133. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/table.py +10 -10
  134. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/api.py +60 -72
  135. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/model.py +32 -61
  136. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/repo.py +33 -36
  137. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/rpc.py +42 -61
  138. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/event.py +2 -4
  139. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/migrate.py +3 -5
  140. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/register_module.py +11 -12
  141. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/register_permission.py +19 -26
  142. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/rpc.py +5 -13
  143. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/group.py +6 -4
  144. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/permission.py +3 -1
  145. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/request.py +1 -0
  146. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/token.py +2 -2
  147. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/user.py +4 -3
  148. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/api.py +4 -5
  149. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/component/model/activity_model.py +3 -9
  150. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/component/repo/activity_repo.py +3 -7
  151. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/core/historical_repo_model.py +13 -13
  152. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/api.py +22 -23
  153. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/event.py +5 -7
  154. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/model.py +2 -6
  155. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/repo.py +8 -8
  156. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/rpc.py +28 -45
  157. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/table.py +3 -3
  158. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/event.py +4 -8
  159. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/migrate.py +2 -4
  160. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/register_module.py +10 -11
  161. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/rpc.py +3 -5
  162. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/schema/activity.py +3 -1
  163. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/requirements.txt +12 -12
  164. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_group_crud.py +76 -106
  165. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_permission_crud.py +73 -103
  166. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_user_crud.py +92 -122
  167. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_user_login.py +107 -134
  168. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/conftest.py +2 -2
  169. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/test_liveness_and_readiness.py +8 -15
  170. zrb/builtin/generator/fastapp_crud/add.py +74 -79
  171. zrb/builtin/generator/fastapp_crud/helper.py +51 -48
  172. zrb/builtin/generator/fastapp_crud/task_factory.py +17 -14
  173. 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
  174. 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
  175. 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
  176. 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
  177. 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
  178. 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
  179. 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
  180. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/test/snake_zrb_module_name/test_snake_zrb_entity_name.py +68 -98
  181. zrb/builtin/generator/fastapp_field/add.py +143 -85
  182. zrb/builtin/generator/fastapp_field/helper.py +184 -125
  183. zrb/builtin/generator/fastapp_module/add.py +90 -67
  184. zrb/builtin/generator/fastapp_module/helper.py +141 -155
  185. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/api.py +3 -2
  186. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/table.py +3 -3
  187. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/event.py +3 -5
  188. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/migrate.py +2 -4
  189. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/register_module.py +10 -11
  190. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/rpc.py +3 -5
  191. zrb/builtin/generator/pip_package/add.py +39 -40
  192. zrb/builtin/generator/pip_package/template/_automate/snake_zrb_package_name/local.py +30 -30
  193. zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/__init__.py +1 -0
  194. zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/__main__.py +1 -0
  195. zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/util.py +2 -2
  196. zrb/builtin/generator/plugin/create.py +39 -36
  197. zrb/builtin/generator/plugin/template/src/snake_zrb_package_name/__init__.py +1 -1
  198. zrb/builtin/generator/plugin/template/src/snake_zrb_package_name/__main__.py +1 -0
  199. zrb/builtin/generator/plugin/template/src/snake_zrb_package_name/task/example_task.py +6 -4
  200. zrb/builtin/generator/plugin/template/zrb_init.py +27 -27
  201. zrb/builtin/generator/project/create.py +38 -46
  202. zrb/builtin/generator/project/template/.flake8 +3 -0
  203. zrb/builtin/generator/project/template/project.sh +19 -10
  204. zrb/builtin/generator/project_task/task_factory.py +60 -61
  205. zrb/builtin/generator/project_task/template/_automate/_project/__init__.py +2 -2
  206. zrb/builtin/generator/project_task/template/_automate/_project/build_project_images.py +4 -4
  207. zrb/builtin/generator/project_task/template/_automate/_project/deploy_project.py +4 -4
  208. zrb/builtin/generator/project_task/template/_automate/_project/destroy_project.py +4 -4
  209. zrb/builtin/generator/project_task/template/_automate/_project/push_project_images.py +4 -4
  210. zrb/builtin/generator/project_task/template/_automate/_project/remove_project_containers.py +4 -4
  211. zrb/builtin/generator/project_task/template/_automate/_project/start_project.py +4 -4
  212. zrb/builtin/generator/project_task/template/_automate/_project/start_project_containers.py +4 -4
  213. zrb/builtin/generator/project_task/template/_automate/_project/stop_project_containers.py +4 -4
  214. zrb/builtin/generator/python_task/add.py +25 -33
  215. zrb/builtin/generator/python_task/template/_automate/snake_zrb_task_name.py +8 -7
  216. zrb/builtin/generator/simple_python_app/add.py +81 -75
  217. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/_common.py +14 -15
  218. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/container.py +46 -61
  219. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/deployment.py +34 -32
  220. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/image.py +19 -22
  221. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/local.py +23 -25
  222. zrb/builtin/generator/simple_python_app/template/src/kebab-zrb-app-name/deployment/__main__.py +24 -32
  223. zrb/builtin/generator/simple_python_app/template/src/kebab-zrb-app-name/src/main.py +18 -14
  224. zrb/builtin/git.py +46 -46
  225. zrb/builtin/group.py +13 -34
  226. zrb/builtin/helper/reccuring_action.py +26 -29
  227. zrb/builtin/md5.py +17 -30
  228. zrb/builtin/process.py +19 -19
  229. zrb/builtin/project.py +13 -15
  230. zrb/builtin/say.py +69 -88
  231. zrb/builtin/schedule.py +15 -19
  232. zrb/builtin/ubuntu.py +44 -35
  233. zrb/builtin/update.py +5 -5
  234. zrb/builtin/version.py +3 -7
  235. zrb/builtin/watch_changes.py +24 -25
  236. zrb/config/config.py +19 -18
  237. zrb/helper/accessories/color.py +18 -6
  238. zrb/helper/accessories/icon.py +24 -3
  239. zrb/helper/accessories/name.py +120 -28
  240. zrb/helper/advertisement.py +9 -13
  241. zrb/helper/callable.py +2 -4
  242. zrb/helper/cli.py +27 -31
  243. zrb/helper/codemod/add_argument_to_function.py +3 -4
  244. zrb/helper/codemod/add_argument_to_function_call.py +4 -7
  245. zrb/helper/codemod/add_assert_resource.py +7 -7
  246. zrb/helper/codemod/add_function_call.py +3 -5
  247. zrb/helper/codemod/add_import_module.py +15 -26
  248. zrb/helper/codemod/add_key_value_to_dict.py +7 -10
  249. zrb/helper/codemod/add_property_to_class.py +10 -8
  250. zrb/helper/codemod/add_upstream_to_task.py +21 -33
  251. zrb/helper/codemod/append_code_to_function.py +6 -13
  252. zrb/helper/codemod/format_code.py +2 -1
  253. zrb/helper/default_env.py +25 -25
  254. zrb/helper/docker_compose/fetch_external_env.py +18 -18
  255. zrb/helper/docker_compose/file.py +5 -4
  256. zrb/helper/docstring.py +44 -47
  257. zrb/helper/env_map/fetch.py +7 -12
  258. zrb/helper/file/copy_tree.py +12 -17
  259. zrb/helper/file/match.py +6 -7
  260. zrb/helper/file/text.py +8 -6
  261. zrb/helper/git/detect_changes.py +9 -8
  262. zrb/helper/loader/load_module.py +14 -13
  263. zrb/helper/log.py +4 -3
  264. zrb/helper/map/conversion.py +4 -5
  265. zrb/helper/python_task.py +2 -4
  266. zrb/helper/render_data.py +25 -18
  267. zrb/helper/string/constant.py +2 -2
  268. zrb/helper/string/conversion.py +17 -16
  269. zrb/helper/string/jinja.py +2 -2
  270. zrb/helper/typecheck.py +6 -4
  271. zrb/helper/typing.py +10 -2
  272. zrb/helper/util.py +44 -40
  273. zrb/task/any_task.py +251 -251
  274. zrb/task/base_remote_cmd_task.py +76 -59
  275. zrb/task/base_task/base_task.py +95 -108
  276. zrb/task/base_task/component/base_task_model.py +73 -71
  277. zrb/task/base_task/component/common_task_model.py +42 -29
  278. zrb/task/base_task/component/pid_model.py +3 -5
  279. zrb/task/base_task/component/renderer.py +26 -36
  280. zrb/task/base_task/component/trackers.py +6 -9
  281. zrb/task/checker.py +14 -9
  282. zrb/task/cmd_task.py +102 -100
  283. zrb/task/decorator.py +19 -13
  284. zrb/task/docker_compose_task.py +127 -98
  285. zrb/task/flow_task.py +16 -19
  286. zrb/task/http_checker.py +40 -36
  287. zrb/task/notifier.py +50 -38
  288. zrb/task/parallel.py +3 -3
  289. zrb/task/path_checker.py +34 -27
  290. zrb/task/path_watcher.py +49 -40
  291. zrb/task/port_checker.py +33 -26
  292. zrb/task/recurring_task.py +36 -42
  293. zrb/task/remote_cmd_task.py +31 -28
  294. zrb/task/resource_maker.py +66 -52
  295. zrb/task/rsync_task.py +24 -21
  296. zrb/task/task.py +4 -3
  297. zrb/task/time_watcher.py +36 -31
  298. zrb/task_env/constant.py +1 -1
  299. zrb/task_env/env.py +33 -31
  300. zrb/task_env/env_file.py +24 -23
  301. zrb/task_group/group.py +27 -30
  302. zrb/task_input/any_input.py +18 -16
  303. zrb/task_input/base_input.py +26 -26
  304. zrb/task_input/bool_input.py +6 -6
  305. zrb/task_input/choice_input.py +11 -9
  306. zrb/task_input/constant.py +1 -1
  307. zrb/task_input/float_input.py +6 -5
  308. zrb/task_input/int_input.py +8 -8
  309. zrb/task_input/password_input.py +9 -9
  310. zrb/task_input/str_input.py +8 -8
  311. zrb/task_input/task_input.py +4 -2
  312. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/METADATA +3 -1
  313. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/RECORD +316 -315
  314. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/LICENSE +0 -0
  315. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/WHEEL +0 -0
  316. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/entry_points.txt +0 -0
@@ -1,17 +1,19 @@
1
- from zrb.helper.typing import Any, List, Optional
2
- from zrb.helper.typecheck import typechecked
3
- from zrb.builtin.generator.common.task_input import project_dir_input
1
+ import os
2
+
4
3
  from zrb.builtin.generator.common.helper import (
5
- validate_existing_project_dir, register_module_to_project
4
+ register_module_to_project,
5
+ validate_existing_project_dir,
6
6
  )
7
- from zrb.task.decorator import python_task
7
+ from zrb.builtin.generator.common.task_input import project_dir_input
8
+ from zrb.helper.codemod.add_import_module import add_import_module
9
+ from zrb.helper.codemod.add_upstream_to_task import add_upstream_to_task
10
+ from zrb.helper.file.text import read_text_file_async, write_text_file_async
11
+ from zrb.helper.typecheck import typechecked
12
+ from zrb.helper.typing import Any, List, Optional
8
13
  from zrb.task.any_task import AnyTask
14
+ from zrb.task.decorator import python_task
9
15
  from zrb.task.task import Task
10
16
  from zrb.task_input.any_input import AnyInput
11
- from zrb.helper.file.text import read_text_file_async, write_text_file_async
12
- from zrb.helper.codemod.add_import_module import add_import_module
13
- from zrb.helper.codemod.add_upstream_to_task import add_upstream_to_task
14
- import os
15
17
 
16
18
 
17
19
  @typechecked
@@ -19,30 +21,32 @@ def create_register_module(
19
21
  module_path: str,
20
22
  inputs: Optional[List[AnyInput]] = None,
21
23
  upstreams: Optional[List[AnyTask]] = None,
22
- alias: Optional[str] = None
24
+ alias: Optional[str] = None,
23
25
  ) -> Task:
24
26
  @python_task(
25
- name='register-module',
27
+ name="register-module",
26
28
  inputs=[project_dir_input] + inputs if inputs is not None else [],
27
- upstreams=upstreams if upstreams is not None else []
29
+ upstreams=upstreams if upstreams is not None else [],
28
30
  )
29
31
  async def register_module(*args: Any, **kwargs: Any):
30
- task: Task = kwargs.get('_task')
31
- project_dir = kwargs.get('project_dir')
32
+ task: Task = kwargs.get("_task")
33
+ project_dir = kwargs.get("project_dir")
32
34
  validate_existing_project_dir(project_dir)
33
35
  rendered_module_path = task.render_str(module_path)
34
36
  rendered_alias: Optional[str] = None
35
37
  if alias is not None:
36
38
  rendered_alias = task.render_str(alias)
37
39
  task.print_out(
38
- f'Register module: {rendered_module_path}' +
39
- f' as {rendered_alias}' if rendered_alias is not None else ''
40
+ f"Register module: {rendered_module_path}" + f" as {rendered_alias}"
41
+ if rendered_alias is not None
42
+ else ""
40
43
  )
41
44
  await register_module_to_project(
42
45
  project_dir=project_dir,
43
46
  module_path=rendered_module_path,
44
- alias=rendered_alias
47
+ alias=rendered_alias,
45
48
  )
49
+
46
50
  return register_module
47
51
 
48
52
 
@@ -53,32 +57,31 @@ def create_add_upstream(
53
57
  upstream_module: str,
54
58
  upstream_task_var: str,
55
59
  inputs: Optional[List[AnyInput]] = None,
56
- upstreams: Optional[List[AnyTask]] = None
60
+ upstreams: Optional[List[AnyTask]] = None,
57
61
  ) -> Task:
58
62
  @python_task(
59
- name='register-upstream',
63
+ name="register-upstream",
60
64
  inputs=[project_dir_input] + inputs if inputs is not None else [],
61
- upstreams=upstreams if upstreams is not None else []
65
+ upstreams=upstreams if upstreams is not None else [],
62
66
  )
63
67
  async def register_upstream(*args: Any, **kwargs: Any):
64
- task: Task = kwargs.get('_task')
65
- project_dir = kwargs.get('project_dir', '.')
68
+ task: Task = kwargs.get("_task")
69
+ project_dir = kwargs.get("project_dir", ".")
66
70
  rendered_task_file_name = task.render_str(task_file_name)
67
71
  rendered_task_name = task.render_str(task_name)
68
72
  rendered_upstream_module_path = task.render_str(upstream_module)
69
73
  rendered_upstream_task_var = task.render_str(upstream_task_var)
70
74
  if not os.path.isabs(rendered_task_file_name):
71
- rendered_task_file_name = os.path.join(
72
- project_dir, rendered_task_file_name
73
- )
75
+ rendered_task_file_name = os.path.join(project_dir, rendered_task_file_name)
74
76
  code = await read_text_file_async(rendered_task_file_name)
75
77
  code = add_import_module(
76
78
  code=code,
77
79
  module_path=rendered_upstream_module_path,
78
- resource=rendered_upstream_task_var
80
+ resource=rendered_upstream_task_var,
79
81
  )
80
82
  code = add_upstream_to_task(
81
83
  code, rendered_task_name, rendered_upstream_task_var
82
84
  )
83
85
  await write_text_file_async(rendered_task_file_name, code)
86
+
84
87
  return register_upstream
@@ -1,154 +1,160 @@
1
- from zrb.task_input.str_input import StrInput
2
- from zrb.task_input.int_input import IntInput
3
- from zrb.helper.accessories.name import get_random_name
4
1
  import os
5
2
 
6
- SYSTEM_USER = os.getenv('USER', 'incognito')
3
+ from zrb.helper.accessories.name import get_random_name
4
+ from zrb.task_input.int_input import IntInput
5
+ from zrb.task_input.str_input import StrInput
6
+
7
+ SYSTEM_USER = os.getenv("USER", "incognito")
7
8
 
8
9
  project_dir_input = StrInput(
9
- name='project-dir',
10
- shortcut='d',
11
- description='Project directory',
12
- prompt='Project directory',
13
- default='.',
10
+ name="project-dir",
11
+ shortcut="d",
12
+ description="Project directory",
13
+ prompt="Project directory",
14
+ default=".",
14
15
  )
15
16
 
16
17
  project_name_input = StrInput(
17
- name='project-name',
18
- shortcut='n',
19
- description='Project name',
20
- prompt='Project name (can be empty)',
21
- default='',
18
+ name="project-name",
19
+ shortcut="n",
20
+ description="Project name",
21
+ prompt="Project name (can be empty)",
22
+ default="",
22
23
  )
23
24
 
24
25
  app_name_input = StrInput(
25
- name='app-name',
26
- shortcut='a',
27
- description='App name',
28
- prompt='App name',
29
- default='app',
26
+ name="app-name",
27
+ shortcut="a",
28
+ description="App name",
29
+ prompt="App name",
30
+ default="app",
30
31
  )
31
32
 
32
33
  app_image_default_namespace = os.getenv(
33
- 'PROJECT_IMAGE_DEFAULT_NAMESPACE',
34
- 'docker.io/' + SYSTEM_USER
34
+ "PROJECT_IMAGE_DEFAULT_NAMESPACE", "docker.io/" + SYSTEM_USER
35
35
  )
36
36
  app_image_name_input = StrInput(
37
- name='app-image-name',
38
- description='App image name',
39
- prompt='App image name',
40
- default=app_image_default_namespace + '/' + '{{util.to_kebab_case(input.app_name)}}', # noqa
37
+ name="app-image-name",
38
+ description="App image name",
39
+ prompt="App image name",
40
+ default=app_image_default_namespace
41
+ + "/"
42
+ + "{{util.to_kebab_case(input.app_name)}}", # noqa
41
43
  )
42
44
 
43
45
  module_name_input = StrInput(
44
- name='module-name',
45
- shortcut='m',
46
- description='module name',
47
- prompt='module name',
48
- default='library',
46
+ name="module-name",
47
+ shortcut="m",
48
+ description="module name",
49
+ prompt="module name",
50
+ default="library",
49
51
  )
50
52
 
51
53
  entity_name_input = StrInput(
52
- name='entity-name',
53
- shortcut='e',
54
- description='Singular entity name',
55
- prompt='Singular entity name',
56
- default='book'
54
+ name="entity-name",
55
+ shortcut="e",
56
+ description="Singular entity name",
57
+ prompt="Singular entity name",
58
+ default="book",
57
59
  )
58
60
 
59
61
  plural_entity_name_input = StrInput(
60
- name='plural-entity-name',
61
- description='Plural entity name',
62
- prompt='Plural entity name',
63
- default='books'
62
+ name="plural-entity-name",
63
+ description="Plural entity name",
64
+ prompt="Plural entity name",
65
+ default="books",
64
66
  )
65
67
 
66
68
  main_column_name_input = StrInput(
67
- name='column-name',
68
- shortcut='c',
69
- description='Main column name',
70
- prompt='Main column name',
71
- default='code'
69
+ name="column-name",
70
+ shortcut="c",
71
+ description="Main column name",
72
+ prompt="Main column name",
73
+ default="code",
72
74
  )
73
75
 
74
76
  column_name_input = StrInput(
75
- name='column-name',
76
- shortcut='c',
77
- description='Column name',
78
- prompt='Column name',
79
- default='title'
77
+ name="column-name",
78
+ shortcut="c",
79
+ description="Column name",
80
+ prompt="Column name",
81
+ default="title",
80
82
  )
81
83
 
82
84
  column_type_input = StrInput(
83
- name='column-type',
84
- shortcut='t',
85
- description='Column type',
86
- prompt='Column type',
87
- default='str'
85
+ name="column-type",
86
+ shortcut="t",
87
+ description="Column type",
88
+ prompt="Column type",
89
+ default="str",
88
90
  )
89
91
 
90
92
  task_name_input = StrInput(
91
- name='task-name',
92
- shortcut='t',
93
- description='Task name',
94
- prompt='Task name',
95
- default=f'run-{get_random_name()}',
93
+ name="task-name",
94
+ shortcut="t",
95
+ description="Task name",
96
+ prompt="Task name",
97
+ default=f"run-{get_random_name()}",
96
98
  )
97
99
 
98
100
  http_port_input = IntInput(
99
- name='http-port',
100
- shortcut='p',
101
- description='HTTP port',
102
- prompt='HTTP port',
101
+ name="http-port",
102
+ shortcut="p",
103
+ description="HTTP port",
104
+ prompt="HTTP port",
103
105
  default=8080,
104
106
  )
105
107
 
106
108
  env_prefix_input = StrInput(
107
- name='env-prefix',
108
- description='OS environment prefix',
109
- prompt='OS environment prefix',
109
+ name="env-prefix",
110
+ description="OS environment prefix",
111
+ prompt="OS environment prefix",
110
112
  default='{{util.to_snake_case(util.coalesce(input.app_name, input.task_name, "MY")).upper()}}', # noqa
111
113
  )
112
114
 
113
115
  package_name_input = StrInput(
114
- name='package-name',
115
- shortcut='p',
116
- description='Package name',
117
- prompt='Package name',
118
- default=get_random_name()
116
+ name="package-name",
117
+ shortcut="p",
118
+ description="Package name",
119
+ prompt="Package name",
120
+ default=get_random_name(),
119
121
  )
120
122
 
121
123
  package_description_input = StrInput(
122
- name='package-description',
123
- description='Package description',
124
- prompt='Package description',
125
- default='My super package'
124
+ name="package-description",
125
+ description="Package description",
126
+ prompt="Package description",
127
+ default="My super package",
126
128
  )
127
129
 
128
130
  package_homepage_input = StrInput(
129
- name='package-homepage',
130
- description='Package homepage',
131
- prompt='Package homepage',
132
- default='https://github.com/' + SYSTEM_USER + '/{{util.to_kebab_case(input.package_name)}}' # noqa
131
+ name="package-homepage",
132
+ description="Package homepage",
133
+ prompt="Package homepage",
134
+ default="https://github.com/"
135
+ + SYSTEM_USER
136
+ + "/{{util.to_kebab_case(input.package_name)}}", # noqa
133
137
  )
134
138
 
135
139
  package_bug_tracker_input = StrInput(
136
- name='package-bug-tracker',
137
- description='Package bug tracker',
138
- prompt='Package bug tracker',
139
- default='https://github.com/' + SYSTEM_USER + '/{{util.to_kebab_case(input.package_name)}}/issues' # noqa
140
+ name="package-bug-tracker",
141
+ description="Package bug tracker",
142
+ prompt="Package bug tracker",
143
+ default="https://github.com/"
144
+ + SYSTEM_USER
145
+ + "/{{util.to_kebab_case(input.package_name)}}/issues", # noqa
140
146
  )
141
147
 
142
148
  package_author_name_input = StrInput(
143
- name='package-author-name',
144
- prompt='Package author name',
145
- description='Package author name',
146
- default=SYSTEM_USER
149
+ name="package-author-name",
150
+ prompt="Package author name",
151
+ description="Package author name",
152
+ default=SYSTEM_USER,
147
153
  )
148
154
 
149
155
  package_author_email_input = StrInput(
150
- name='package-author-email',
151
- prompt='Package author email',
152
- description='Package author email',
153
- default=f'{SYSTEM_USER}@gmail.com'
156
+ name="package-author-email",
157
+ prompt="Package author email",
158
+ description="Package author email",
159
+ default=f"{SYSTEM_USER}@gmail.com",
154
160
  )
@@ -1,20 +1,24 @@
1
- from zrb.helper.typing import Any
2
- from zrb.builtin.generator.common.task_input import (
3
- project_dir_input, task_name_input, http_port_input, env_prefix_input
4
- )
1
+ import os
2
+
5
3
  from zrb.builtin.generator.common.helper import (
6
- validate_existing_project_dir, validate_inexisting_automation
4
+ validate_existing_project_dir,
5
+ validate_inexisting_automation,
7
6
  )
8
7
  from zrb.builtin.generator.common.task_factory import create_register_module
8
+ from zrb.builtin.generator.common.task_input import (
9
+ env_prefix_input,
10
+ http_port_input,
11
+ project_dir_input,
12
+ task_name_input,
13
+ )
9
14
  from zrb.builtin.group import project_add_group
10
- from zrb.task.task import Task
15
+ from zrb.helper import util
16
+ from zrb.helper.typing import Any
17
+ from zrb.runner import runner
11
18
  from zrb.task.decorator import python_task
12
- from zrb.task_input.str_input import StrInput
13
19
  from zrb.task.resource_maker import ResourceMaker
14
- from zrb.runner import runner
15
- from zrb.helper import util
16
-
17
- import os
20
+ from zrb.task.task import Task
21
+ from zrb.task_input.str_input import StrInput
18
22
 
19
23
  CURRENT_DIR = os.path.dirname(__file__)
20
24
 
@@ -24,62 +28,57 @@ CURRENT_DIR = os.path.dirname(__file__)
24
28
 
25
29
 
26
30
  @python_task(
27
- name='validate',
28
- inputs=[
29
- project_dir_input,
30
- task_name_input
31
- ],
31
+ name="validate",
32
+ inputs=[project_dir_input, task_name_input],
32
33
  )
33
34
  async def validate(*args: Any, **kwargs: Any):
34
- project_dir = kwargs.get('project_dir')
35
+ project_dir = kwargs.get("project_dir")
35
36
  validate_existing_project_dir(project_dir)
36
- task_name = kwargs.get('task_name')
37
+ task_name = kwargs.get("task_name")
37
38
  validate_inexisting_automation(project_dir, task_name)
38
- source_dir = os.path.join(
39
- project_dir, 'src', f'{util.to_kebab_case(task_name)}'
40
- )
39
+ source_dir = os.path.join(project_dir, "src", f"{util.to_kebab_case(task_name)}")
41
40
  if os.path.exists(source_dir):
42
- raise Exception(f'Source already exists: {source_dir}')
41
+ raise Exception(f"Source already exists: {source_dir}")
43
42
 
44
43
 
45
44
  copy_resource = ResourceMaker(
46
- name='copy-resource',
45
+ name="copy-resource",
47
46
  inputs=[
48
47
  project_dir_input,
49
48
  task_name_input,
50
49
  http_port_input,
51
50
  StrInput(
52
- name='compose-command',
53
- description='Compose command (e.g., up, down, start, remove, etc)',
54
- prompt='Compose command (e.g., up, down, start, remove, etc)',
55
- default='up'
51
+ name="compose-command",
52
+ description="Compose command (e.g., up, down, start, remove, etc)",
53
+ prompt="Compose command (e.g., up, down, start, remove, etc)",
54
+ default="up",
56
55
  ),
57
56
  env_prefix_input,
58
57
  ],
59
58
  upstreams=[validate],
60
59
  replacements={
61
- 'zrbTaskName': '{{input.task_name}}',
62
- 'zrbHttpPort': '{{util.coalesce(input.http_port, "3001")}}',
63
- 'zrbComposeCommand': '{{ util.coalesce(input.compose_command, "up") }}', # noqa
64
- 'ZRB_ENV_PREFIX': '{{ util.coalesce(input.env_prefix, "MY").upper() }}', # noqa
60
+ "zrbTaskName": "{{input.task_name}}",
61
+ "zrbHttpPort": '{{util.coalesce(input.http_port, "3001")}}',
62
+ "zrbComposeCommand": '{{ util.coalesce(input.compose_command, "up") }}', # noqa
63
+ "ZRB_ENV_PREFIX": '{{ util.coalesce(input.env_prefix, "MY").upper() }}', # noqa
65
64
  },
66
- template_path=os.path.join(CURRENT_DIR, 'template'),
67
- destination_path='{{ input.project_dir }}',
65
+ template_path=os.path.join(CURRENT_DIR, "template"),
66
+ destination_path="{{ input.project_dir }}",
68
67
  )
69
68
 
70
69
  register_module = create_register_module(
71
- module_path='_automate.{{util.to_snake_case(input.task_name)}}',
70
+ module_path="_automate.{{util.to_snake_case(input.task_name)}}",
72
71
  inputs=[task_name_input],
73
- upstreams=[copy_resource]
72
+ upstreams=[copy_resource],
74
73
  )
75
74
 
76
75
 
77
76
  @python_task(
78
- name='docker-compose-task',
77
+ name="docker-compose-task",
79
78
  group=project_add_group,
80
79
  upstreams=[register_module],
81
- runner=runner
80
+ runner=runner,
82
81
  )
83
82
  async def add_docker_compose_task(*args: Any, **kwargs: Any):
84
- task: Task = kwargs.get('_task')
85
- task.print_out('Success')
83
+ task: Task = kwargs.get("_task")
84
+ task.print_out("Success")
@@ -1,44 +1,38 @@
1
- from zrb import DockerComposeTask, HTTPChecker, Env, EnvFile, runner
2
- from zrb.builtin.group import project_group
3
1
  import os
4
2
 
3
+ from zrb import DockerComposeTask, Env, EnvFile, HTTPChecker, runner
4
+ from zrb.builtin.group import project_group
5
+
5
6
  ###############################################################################
6
7
  # 🏔️ Constants
7
8
  ###############################################################################
8
9
 
9
10
  CURRENT_DIR = os.path.dirname(__file__)
10
- PROJECT_DIR = os.path.abspath(os.path.join(CURRENT_DIR, '..'))
11
- RESOURCE_DIR = os.path.join(PROJECT_DIR, 'src', 'kebab-zrb-task-name')
11
+ PROJECT_DIR = os.path.abspath(os.path.join(CURRENT_DIR, ".."))
12
+ RESOURCE_DIR = os.path.join(PROJECT_DIR, "src", "kebab-zrb-task-name")
12
13
 
13
14
  ###############################################################################
14
15
  # ⚙️ kebab-zrb-task-name
15
16
  ###############################################################################
16
17
 
17
18
  snake_zrb_task_name = DockerComposeTask(
18
- name='kebab-zrb-task-name',
19
- description='human readable zrb task name',
19
+ name="kebab-zrb-task-name",
20
+ description="human readable zrb task name",
20
21
  group=project_group,
21
22
  cwd=RESOURCE_DIR,
22
- compose_cmd='zrbComposeCommand',
23
- compose_env_prefix='ZRB_ENV_PREFIX',
23
+ compose_cmd="zrbComposeCommand",
24
+ compose_env_prefix="ZRB_ENV_PREFIX",
24
25
  env_files=[
25
26
  EnvFile(
26
- path=os.path.join(RESOURCE_DIR, 'docker-compose.env'),
27
- prefix='ZRB_ENV_PREFIX'
27
+ path=os.path.join(RESOURCE_DIR, "docker-compose.env"),
28
+ prefix="ZRB_ENV_PREFIX",
28
29
  )
29
30
  ],
30
31
  envs=[
31
32
  Env(
32
- name='HOST_PORT',
33
- os_name='ZRB_ENV_PREFIX_HOST_PORT',
34
- default='zrbHttpPort'
33
+ name="HOST_PORT", os_name="ZRB_ENV_PREFIX_HOST_PORT", default="zrbHttpPort"
35
34
  ),
36
35
  ],
37
- checkers=[
38
- HTTPChecker(
39
- name='check-kebab-zrb-task-name',
40
- port='{{env.HOST_PORT}}'
41
- )
42
- ]
36
+ checkers=[HTTPChecker(name="check-kebab-zrb-task-name", port="{{env.HOST_PORT}}")],
43
37
  )
44
38
  runner.register(snake_zrb_task_name)
@@ -1,20 +1,24 @@
1
1
  import os
2
2
 
3
- MESSAGE = os.getenv('APP_MESSAGE', 'Hello, world!')
4
- PORT = int(os.getenv('APP_PORT', '8000'))
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['type'] == 'http'
8
+ assert scope["type"] == "http"
9
9
 
10
- await send({
11
- 'type': 'http.response.start',
12
- 'status': 200,
13
- 'headers': [
14
- [b'content-type', b'text/plain'],
15
- ],
16
- })
17
- await send({
18
- 'type': 'http.response.body',
19
- 'body': bytes(MESSAGE, 'utf-8'),
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
+ )