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,30 +1,38 @@
1
- from zrb.helper.typing import Any
2
- from zrb.builtin.generator.common.task_input import (
3
- project_dir_input, app_name_input, app_image_name_input, http_port_input,
4
- env_prefix_input
5
- )
1
+ import os
2
+
6
3
  from zrb.builtin.generator.common.helper import (
7
- validate_existing_project_dir, validate_inexisting_automation
4
+ validate_existing_project_dir,
5
+ validate_inexisting_automation,
8
6
  )
9
7
  from zrb.builtin.generator.common.task_factory import create_register_module
8
+ from zrb.builtin.generator.common.task_input import (
9
+ app_image_name_input,
10
+ app_name_input,
11
+ env_prefix_input,
12
+ http_port_input,
13
+ project_dir_input,
14
+ )
10
15
  from zrb.builtin.generator.project_task.task_factory import (
11
- create_ensure_project_tasks, create_add_build_images_upstream,
12
- create_add_deploy_upstream, create_add_destroy_upstream,
13
- create_add_push_images_upstream, create_add_remove_containers_upstream,
14
- create_add_start_containers_upstream, create_add_start_upstream,
15
- create_add_stop_containers_upstream
16
+ create_add_build_images_upstream,
17
+ create_add_deploy_upstream,
18
+ create_add_destroy_upstream,
19
+ create_add_push_images_upstream,
20
+ create_add_remove_containers_upstream,
21
+ create_add_start_containers_upstream,
22
+ create_add_start_upstream,
23
+ create_add_stop_containers_upstream,
24
+ create_ensure_project_tasks,
16
25
  )
17
26
  from zrb.builtin.group import project_add_group
18
- from zrb.task.task import Task
27
+ from zrb.helper import util
28
+ from zrb.helper.typing import Any
29
+ from zrb.runner import runner
19
30
  from zrb.task.decorator import python_task
20
31
  from zrb.task.resource_maker import ResourceMaker
21
- from zrb.runner import runner
22
- from zrb.helper import util
23
-
24
- import os
32
+ from zrb.task.task import Task
25
33
 
26
34
  CURRENT_DIR = os.path.dirname(__file__)
27
- SNAKE_APP_NAME_TPL = '{{util.to_snake_case(input.app_name)}}'
35
+ SNAKE_APP_NAME_TPL = "{{util.to_snake_case(input.app_name)}}"
28
36
 
29
37
  ###############################################################################
30
38
  # Task Definitions
@@ -32,23 +40,21 @@ SNAKE_APP_NAME_TPL = '{{util.to_snake_case(input.app_name)}}'
32
40
 
33
41
 
34
42
  @python_task(
35
- name='validate',
43
+ name="validate",
36
44
  inputs=[project_dir_input, app_name_input],
37
45
  )
38
46
  async def validate(*args: Any, **kwargs: Any):
39
- project_dir = kwargs.get('project_dir')
47
+ project_dir = kwargs.get("project_dir")
40
48
  validate_existing_project_dir(project_dir)
41
- app_name = kwargs.get('app_name')
49
+ app_name = kwargs.get("app_name")
42
50
  validate_inexisting_automation(project_dir, app_name)
43
- app_dir = os.path.join(
44
- project_dir, 'src', f'{util.to_kebab_case(app_name)}'
45
- )
51
+ app_dir = os.path.join(project_dir, "src", f"{util.to_kebab_case(app_name)}")
46
52
  if os.path.exists(app_dir):
47
- raise Exception(f'App directory already exists: {app_dir}')
53
+ raise Exception(f"App directory already exists: {app_dir}")
48
54
 
49
55
 
50
56
  copy_resource = ResourceMaker(
51
- name='copy-resource',
57
+ name="copy-resource",
52
58
  inputs=[
53
59
  project_dir_input,
54
60
  app_name_input,
@@ -58,130 +64,128 @@ copy_resource = ResourceMaker(
58
64
  ],
59
65
  upstreams=[validate],
60
66
  replacements={
61
- 'zrbAppName': '{{input.app_name}}',
62
- 'zrbAppHttpPort': '{{util.coalesce(input.http_port, "3001")}}',
63
- 'ZRB_ENV_PREFIX': '{{util.coalesce(input.env_prefix, "MY").upper()}}',
64
- 'zrb-app-image-name': '{{input.app_image_name}}',
65
- 'zrbAppHttpAuthPort': '{{util.coalesce(input.http_port, "3001") + 1}}',
66
- 'zrbAppHttpLogPort': '{{util.coalesce(input.http_port, "3001") + 2}}'
67
+ "zrbAppName": "{{input.app_name}}",
68
+ "zrbAppHttpPort": '{{util.coalesce(input.http_port, "3001")}}',
69
+ "ZRB_ENV_PREFIX": '{{util.coalesce(input.env_prefix, "MY").upper()}}',
70
+ "zrb-app-image-name": "{{input.app_image_name}}",
71
+ "zrbAppHttpAuthPort": '{{util.coalesce(input.http_port, "3001") + 1}}',
72
+ "zrbAppHttpLogPort": '{{util.coalesce(input.http_port, "3001") + 2}}',
67
73
  },
68
- template_path=os.path.join(CURRENT_DIR, 'template'),
69
- destination_path='{{ input.project_dir }}',
74
+ template_path=os.path.join(CURRENT_DIR, "template"),
75
+ destination_path="{{ input.project_dir }}",
70
76
  excludes=[
71
- '*/__pycache__',
72
- '*/deployment/venv',
73
- '*/src/kebab-app-name/.venv',
74
- '*/src/kebab-app-name/src/frontend/node_modules',
75
- '*/src/kebab-app-name/src/frontend/build',
76
- '*/src/kebab-app-name/src/frontend/.svelte-kit',
77
- ]
77
+ "*/__pycache__",
78
+ "*/deployment/venv",
79
+ "*/src/kebab-app-name/.venv",
80
+ "*/src/kebab-app-name/src/frontend/node_modules",
81
+ "*/src/kebab-app-name/src/frontend/build",
82
+ "*/src/kebab-app-name/src/frontend/.svelte-kit",
83
+ ],
78
84
  )
79
85
 
80
86
  register_local_module = create_register_module(
81
- module_path=f'_automate.{SNAKE_APP_NAME_TPL}.local',
82
- alias=f'{SNAKE_APP_NAME_TPL}_local',
87
+ module_path=f"_automate.{SNAKE_APP_NAME_TPL}.local",
88
+ alias=f"{SNAKE_APP_NAME_TPL}_local",
83
89
  inputs=[app_name_input],
84
- upstreams=[copy_resource]
90
+ upstreams=[copy_resource],
85
91
  )
86
92
 
87
93
  register_container_module = create_register_module(
88
- module_path=f'_automate.{SNAKE_APP_NAME_TPL}.container',
89
- alias=f'{SNAKE_APP_NAME_TPL}_container',
94
+ module_path=f"_automate.{SNAKE_APP_NAME_TPL}.container",
95
+ alias=f"{SNAKE_APP_NAME_TPL}_container",
90
96
  inputs=[app_name_input],
91
- upstreams=[register_local_module]
97
+ upstreams=[register_local_module],
92
98
  )
93
99
 
94
100
  register_image_module = create_register_module(
95
- module_path=f'_automate.{SNAKE_APP_NAME_TPL}.image',
96
- alias=f'{SNAKE_APP_NAME_TPL}_image',
101
+ module_path=f"_automate.{SNAKE_APP_NAME_TPL}.image",
102
+ alias=f"{SNAKE_APP_NAME_TPL}_image",
97
103
  inputs=[app_name_input],
98
- upstreams=[register_container_module]
104
+ upstreams=[register_container_module],
99
105
  )
100
106
 
101
107
  register_deployment_module = create_register_module(
102
- module_path=f'_automate.{SNAKE_APP_NAME_TPL}.deployment',
103
- alias=f'{SNAKE_APP_NAME_TPL}_deployment',
108
+ module_path=f"_automate.{SNAKE_APP_NAME_TPL}.deployment",
109
+ alias=f"{SNAKE_APP_NAME_TPL}_deployment",
104
110
  inputs=[app_name_input],
105
- upstreams=[register_image_module]
111
+ upstreams=[register_image_module],
106
112
  )
107
113
 
108
114
  register_test_module = create_register_module(
109
- module_path=f'_automate.{SNAKE_APP_NAME_TPL}.test',
110
- alias=f'{SNAKE_APP_NAME_TPL}_test',
115
+ module_path=f"_automate.{SNAKE_APP_NAME_TPL}.test",
116
+ alias=f"{SNAKE_APP_NAME_TPL}_test",
111
117
  inputs=[app_name_input],
112
- upstreams=[register_deployment_module]
118
+ upstreams=[register_deployment_module],
113
119
  )
114
120
 
115
121
  register_load_test_module = create_register_module(
116
- module_path=f'_automate.{SNAKE_APP_NAME_TPL}.load_test',
117
- alias=f'{SNAKE_APP_NAME_TPL}_load_test',
122
+ module_path=f"_automate.{SNAKE_APP_NAME_TPL}.load_test",
123
+ alias=f"{SNAKE_APP_NAME_TPL}_load_test",
118
124
  inputs=[app_name_input],
119
- upstreams=[register_test_module]
125
+ upstreams=[register_test_module],
120
126
  )
121
127
 
122
- ensure_project_tasks = create_ensure_project_tasks(
123
- upstreams=[copy_resource]
124
- )
128
+ ensure_project_tasks = create_ensure_project_tasks(upstreams=[copy_resource])
125
129
 
126
130
  add_start_upstream = create_add_start_upstream(
127
- upstream_module=f'_automate.{SNAKE_APP_NAME_TPL}.local',
128
- upstream_task_var=f'start_{SNAKE_APP_NAME_TPL}',
131
+ upstream_module=f"_automate.{SNAKE_APP_NAME_TPL}.local",
132
+ upstream_task_var=f"start_{SNAKE_APP_NAME_TPL}",
129
133
  upstreams=[ensure_project_tasks],
130
- inputs=[app_name_input]
134
+ inputs=[app_name_input],
131
135
  )
132
136
 
133
137
  add_start_container_upstream = create_add_start_containers_upstream(
134
- upstream_module=f'_automate.{SNAKE_APP_NAME_TPL}.container',
135
- upstream_task_var=f'start_{SNAKE_APP_NAME_TPL}_container',
138
+ upstream_module=f"_automate.{SNAKE_APP_NAME_TPL}.container",
139
+ upstream_task_var=f"start_{SNAKE_APP_NAME_TPL}_container",
136
140
  upstreams=[ensure_project_tasks],
137
- inputs=[app_name_input]
141
+ inputs=[app_name_input],
138
142
  )
139
143
 
140
144
  add_stop_container_upstream = create_add_stop_containers_upstream(
141
- upstream_module=f'_automate.{SNAKE_APP_NAME_TPL}.container',
142
- upstream_task_var=f'stop_{SNAKE_APP_NAME_TPL}_container',
145
+ upstream_module=f"_automate.{SNAKE_APP_NAME_TPL}.container",
146
+ upstream_task_var=f"stop_{SNAKE_APP_NAME_TPL}_container",
143
147
  upstreams=[ensure_project_tasks],
144
- inputs=[app_name_input]
148
+ inputs=[app_name_input],
145
149
  )
146
150
 
147
151
  add_remove_container_upstream = create_add_remove_containers_upstream(
148
- upstream_module=f'_automate.{SNAKE_APP_NAME_TPL}.container',
149
- upstream_task_var=f'remove_{SNAKE_APP_NAME_TPL}_container',
152
+ upstream_module=f"_automate.{SNAKE_APP_NAME_TPL}.container",
153
+ upstream_task_var=f"remove_{SNAKE_APP_NAME_TPL}_container",
150
154
  upstreams=[ensure_project_tasks],
151
- inputs=[app_name_input]
155
+ inputs=[app_name_input],
152
156
  )
153
157
 
154
158
  add_build_image_upstream = create_add_build_images_upstream(
155
- upstream_module=f'_automate.{SNAKE_APP_NAME_TPL}.image',
156
- upstream_task_var=f'build_{SNAKE_APP_NAME_TPL}_image',
159
+ upstream_module=f"_automate.{SNAKE_APP_NAME_TPL}.image",
160
+ upstream_task_var=f"build_{SNAKE_APP_NAME_TPL}_image",
157
161
  upstreams=[ensure_project_tasks],
158
- inputs=[app_name_input]
162
+ inputs=[app_name_input],
159
163
  )
160
164
 
161
165
  add_push_image_upstream = create_add_push_images_upstream(
162
- upstream_module=f'_automate.{SNAKE_APP_NAME_TPL}.image',
163
- upstream_task_var=f'push_{SNAKE_APP_NAME_TPL}_image',
166
+ upstream_module=f"_automate.{SNAKE_APP_NAME_TPL}.image",
167
+ upstream_task_var=f"push_{SNAKE_APP_NAME_TPL}_image",
164
168
  upstreams=[ensure_project_tasks],
165
- inputs=[app_name_input]
169
+ inputs=[app_name_input],
166
170
  )
167
171
 
168
172
  add_deploy_upstream = create_add_deploy_upstream(
169
- upstream_module=f'_automate.{SNAKE_APP_NAME_TPL}.deployment',
170
- upstream_task_var=f'deploy_{SNAKE_APP_NAME_TPL}',
173
+ upstream_module=f"_automate.{SNAKE_APP_NAME_TPL}.deployment",
174
+ upstream_task_var=f"deploy_{SNAKE_APP_NAME_TPL}",
171
175
  upstreams=[ensure_project_tasks],
172
- inputs=[app_name_input]
176
+ inputs=[app_name_input],
173
177
  )
174
178
 
175
179
  add_destroy_upstream = create_add_destroy_upstream(
176
- upstream_module=f'_automate.{SNAKE_APP_NAME_TPL}.deployment',
177
- upstream_task_var=f'destroy_{SNAKE_APP_NAME_TPL}',
180
+ upstream_module=f"_automate.{SNAKE_APP_NAME_TPL}.deployment",
181
+ upstream_task_var=f"destroy_{SNAKE_APP_NAME_TPL}",
178
182
  upstreams=[ensure_project_tasks],
179
- inputs=[app_name_input]
183
+ inputs=[app_name_input],
180
184
  )
181
185
 
182
186
 
183
187
  @python_task(
184
- name='fastapp',
188
+ name="fastapp",
185
189
  group=project_add_group,
186
190
  upstreams=[
187
191
  register_local_module,
@@ -197,10 +201,10 @@ add_destroy_upstream = create_add_destroy_upstream(
197
201
  add_build_image_upstream,
198
202
  add_push_image_upstream,
199
203
  add_deploy_upstream,
200
- add_destroy_upstream
204
+ add_destroy_upstream,
201
205
  ],
202
- runner=runner
206
+ runner=runner,
203
207
  )
204
208
  async def add_fastapp(*args: Any, **kwargs: Any):
205
- task: Task = kwargs.get('_task')
206
- task.print_out('Success')
209
+ task: Task = kwargs.get("_task")
210
+ task.print_out("Success")
@@ -1,64 +1,65 @@
1
1
  from zrb import HTTPChecker, PortChecker
2
+
2
3
  from ._helper import should_start_local_microservices
3
4
 
4
5
  rabbitmq_management_checker = HTTPChecker(
5
- name='check-rabbitmq-management',
6
+ name="check-rabbitmq-management",
6
7
  port='{{env.get("RABBITMQ_MANAGEMENT_HOST_PORT", "15672")}}',
7
- is_https='{{input.snake_zrb_app_name_https}}',
8
- should_execute='{{env.get("APP_BROKER_TYPE", "rabbitmq") == "rabbitmq"}}'
8
+ is_https="{{input.snake_zrb_app_name_https}}",
9
+ should_execute='{{env.get("APP_BROKER_TYPE", "rabbitmq") == "rabbitmq"}}',
9
10
  )
10
11
 
11
12
  rabbitmq_checker = PortChecker(
12
- name='check-rabbitmq',
13
+ name="check-rabbitmq",
13
14
  port='{{env.get("RABBITMQ_HOST_PORT", "5672")}}',
14
- should_execute='{{env.get("APP_BROKER_TYPE", "rabbitmq") == "rabbitmq"}}'
15
+ should_execute='{{env.get("APP_BROKER_TYPE", "rabbitmq") == "rabbitmq"}}',
15
16
  )
16
17
 
17
18
  redpanda_console_checker = HTTPChecker(
18
- name='check-redpanda-console',
19
- method='GET',
19
+ name="check-redpanda-console",
20
+ method="GET",
20
21
  port='{{env.get("REDPANDA_CONSOLE_HOST_PORT", "9000")}}',
21
- is_https='{{input.snake_zrb_app_name_https}}',
22
- should_execute='{{env.get("APP_BROKER_TYPE", "rabbitmq") == "kafka"}}'
22
+ is_https="{{input.snake_zrb_app_name_https}}",
23
+ should_execute='{{env.get("APP_BROKER_TYPE", "rabbitmq") == "kafka"}}',
23
24
  )
24
25
 
25
26
  kafka_plaintext_checker = PortChecker(
26
- name='check-kafka-plaintext',
27
+ name="check-kafka-plaintext",
27
28
  port='{{env.get("KAFKA_INTERNAL_HOST_PORT", "29092")}}',
28
- should_execute='{{env.get("APP_BROKER_TYPE", "rabbitmq") == "kafka"}}'
29
+ should_execute='{{env.get("APP_BROKER_TYPE", "rabbitmq") == "kafka"}}',
29
30
  )
30
31
 
31
32
  kafka_outside_checker = PortChecker(
32
- name='check-kafka-outside',
33
+ name="check-kafka-outside",
33
34
  port='{{env.get("KAFKA_EXTERNAL_HOST_PORT", "9092")}}',
34
- should_execute='{{env.get("APP_BROKER_TYPE", "rabbitmq") == "kafka"}}'
35
+ should_execute='{{env.get("APP_BROKER_TYPE", "rabbitmq") == "kafka"}}',
35
36
  )
36
37
 
37
38
  pandaproxy_plaintext_checker = PortChecker(
38
- name='check-pandaproxy-plaintext',
39
+ name="check-pandaproxy-plaintext",
39
40
  port='{{env.get("PANDAPROXY_INTERNAL_HOST_PORT", "29092")}}',
40
- should_execute='{{env.get("APP_BROKER_TYPE", "rabbitmq") == "kafka"}}'
41
+ should_execute='{{env.get("APP_BROKER_TYPE", "rabbitmq") == "kafka"}}',
41
42
  )
42
43
 
43
44
  pandaproxy_outside_checker = PortChecker(
44
- name='check-pandaproxy-outside',
45
+ name="check-pandaproxy-outside",
45
46
  port='{{env.get("PANDAPROXY_EXTERNAL_HOST_PORT", "9092")}}',
46
- should_execute='{{env.get("APP_BROKER_TYPE", "rabbitmq") == "kafka"}}'
47
+ should_execute='{{env.get("APP_BROKER_TYPE", "rabbitmq") == "kafka"}}',
47
48
  )
48
49
 
49
50
  app_container_checker = HTTPChecker(
50
- name='check-kebab-zrb-app-name-container',
51
- host='{{input.snake_zrb_app_name_host}}',
52
- url='/readiness',
51
+ name="check-kebab-zrb-app-name-container",
52
+ host="{{input.snake_zrb_app_name_host}}",
53
+ url="/readiness",
53
54
  port='{{env.get("HOST_PORT", "zrbAppHttpPort")}}',
54
- is_https='{{input.snake_zrb_app_name_https}}'
55
+ is_https="{{input.snake_zrb_app_name_https}}",
55
56
  )
56
57
 
57
58
  app_local_checker = HTTPChecker(
58
- name='check-kebab-zrb-app-name',
59
- host='{{input.snake_zrb_app_name_host}}',
60
- url='/readiness',
61
- port='{{env.APP_PORT}}',
62
- is_https='{{input.snake_zrb_app_name_https}}',
63
- should_execute=should_start_local_microservices
59
+ name="check-kebab-zrb-app-name",
60
+ host="{{input.snake_zrb_app_name_host}}",
61
+ url="/readiness",
62
+ port="{{env.APP_PORT}}",
63
+ is_https="{{input.snake_zrb_app_name_https}}",
64
+ should_execute=should_start_local_microservices,
64
65
  )
@@ -1,56 +1,85 @@
1
+ import os
1
2
  from typing import Mapping
2
- from zrb import Env, ServiceConfig, EnvFile
3
- from zrb.helper.util import to_kebab_case
4
3
 
5
4
  import jsons
6
- import os
7
5
 
8
- CURRENT_DIR = os.path.dirname(__file__)
9
- PROJECT_DIR = os.path.abspath(os.path.join(CURRENT_DIR, '..', '..'))
10
- RESOURCE_DIR = os.path.join(PROJECT_DIR, 'src', 'kebab-zrb-app-name')
11
- DEPLOYMENT_DIR = os.path.join(RESOURCE_DIR, 'deployment')
12
- DEPLOYMENT_TEMPLATE_ENV_FILE_NAME = os.path.join(
13
- DEPLOYMENT_DIR, 'template.env'
14
- )
15
- APP_DIR = os.path.join(RESOURCE_DIR, 'src')
16
- APP_FRONTEND_DIR = os.path.join(APP_DIR, 'frontend')
17
- APP_FRONTEND_BUILD_DIR = os.path.join(APP_FRONTEND_DIR, 'build')
18
- APP_TEMPLATE_ENV_FILE_NAME = os.path.join(APP_DIR, 'template.env')
6
+ from zrb import Env, EnvFile, ServiceConfig
7
+ from zrb.helper.util import to_kebab_case
19
8
 
20
- LOAD_TEST_DIR = os.path.join(RESOURCE_DIR, 'loadtest')
21
- LOAD_TEST_TEMPLATE_ENV_FILE_NAME = os.path.join(RESOURCE_DIR, 'template.env')
9
+ 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-app-name")
12
+ DEPLOYMENT_DIR = os.path.join(RESOURCE_DIR, "deployment")
13
+ DEPLOYMENT_TEMPLATE_ENV_FILE_NAME = os.path.join(DEPLOYMENT_DIR, "template.env")
14
+ APP_DIR = os.path.join(RESOURCE_DIR, "src")
15
+ APP_FRONTEND_DIR = os.path.join(APP_DIR, "frontend")
16
+ APP_FRONTEND_BUILD_DIR = os.path.join(APP_FRONTEND_DIR, "build")
17
+ APP_TEMPLATE_ENV_FILE_NAME = os.path.join(APP_DIR, "template.env")
18
+ LOAD_TEST_DIR = os.path.join(RESOURCE_DIR, "loadtest")
19
+ LOAD_TEST_TEMPLATE_ENV_FILE_NAME = os.path.join(RESOURCE_DIR, "template.env")
22
20
 
23
- MODULE_CONFIG_PATH = os.path.join(CURRENT_DIR, 'config', 'modules.json')
21
+ MODULE_CONFIG_PATH = os.path.join(CURRENT_DIR, "config", "modules.json")
24
22
 
25
23
  with open(MODULE_CONFIG_PATH) as file:
26
24
  MODULE_JSON_STR = file.read()
27
25
  MODULES = jsons.loads(MODULE_JSON_STR)
28
26
 
29
- DOCKER_COMPOSE_APP_ENV_FILE_NAME = os.path.join(
30
- RESOURCE_DIR, 'docker-compose-app.env'
27
+ ###############################################################################
28
+ # Service Configs
29
+ ###############################################################################
30
+
31
+ _OTEL_EXPORTER_ENDPOINT_ENV_NAME = "APP_OTEL_EXPORTER_OTLP_ENDPOINT"
32
+ _OTEL_EXPORTER_ENDPOINT = "http://otel-collector:4317"
33
+ _OTEL_EXPORTER_ENDPOINT_ENV = Env(
34
+ name=_OTEL_EXPORTER_ENDPOINT_ENV_NAME,
35
+ os_name="",
36
+ default=_OTEL_EXPORTER_ENDPOINT,
37
+ )
38
+
39
+ _CONTAINER_ENV_PREFIX = "CONTAINER_ZRB_ENV_PREFIX"
40
+ _APP_TEMPLATE_ENV_FILE = EnvFile(
41
+ path=APP_TEMPLATE_ENV_FILE_NAME, prefix=_CONTAINER_ENV_PREFIX
42
+ )
43
+ _DOCKER_COMPOSE_APP_ENV_FILE_NAME = os.path.join(RESOURCE_DIR, "docker-compose-app.env")
44
+ _DOCKER_COMPOSE_APP_ENV_FILE = EnvFile(
45
+ path=_DOCKER_COMPOSE_APP_ENV_FILE_NAME, prefix=_CONTAINER_ENV_PREFIX
46
+ )
47
+ _DISABLE_ALL_MODULE_ENV_FILE_NAME = os.path.join(
48
+ RESOURCE_DIR, "all-module-disabled.env"
49
+ )
50
+ _DISABLE_ALL_MODULE_ENV_FILE = EnvFile(
51
+ path=_DISABLE_ALL_MODULE_ENV_FILE_NAME, prefix=_CONTAINER_ENV_PREFIX
52
+ )
53
+ _ENABLE_ALL_MODULE_ENV_FILE_NAME = os.path.join(RESOURCE_DIR, "all-module-enabled.env")
54
+ _ENABLE_ALL_MODULE_ENV_FILE = EnvFile(
55
+ path=_ENABLE_ALL_MODULE_ENV_FILE_NAME, prefix=_CONTAINER_ENV_PREFIX
31
56
  )
32
57
 
33
- SERVICE_CONFIGS: Mapping[str, ServiceConfig] = {}
34
- service_names = [to_kebab_case(module) + '-service' for module in MODULES]
35
- for suffix in ['', 'gateway'] + service_names:
36
- service_suffix = '-' + suffix if suffix != '' else ''
37
- service_name = f'kebab-zrb-app-name{service_suffix}'
58
+ SERVICE_CONFIGS: Mapping[str, ServiceConfig] = {
59
+ "kebab-zrb-app-name": ServiceConfig(
60
+ env_files=[
61
+ _APP_TEMPLATE_ENV_FILE,
62
+ _DOCKER_COMPOSE_APP_ENV_FILE,
63
+ _ENABLE_ALL_MODULE_ENV_FILE,
64
+ ],
65
+ envs=[_OTEL_EXPORTER_ENDPOINT_ENV],
66
+ ),
67
+ "kebab-zrb-app-name-gateway": ServiceConfig(
68
+ env_files=[
69
+ _APP_TEMPLATE_ENV_FILE,
70
+ _DOCKER_COMPOSE_APP_ENV_FILE,
71
+ _ENABLE_ALL_MODULE_ENV_FILE,
72
+ ],
73
+ envs=[_OTEL_EXPORTER_ENDPOINT_ENV],
74
+ ),
75
+ }
76
+ for module in MODULES:
77
+ service_name = f"kebab-zrb-app-name-{to_kebab_case(module)}-service"
38
78
  SERVICE_CONFIGS[service_name] = ServiceConfig(
39
79
  env_files=[
40
- EnvFile(
41
- path=APP_TEMPLATE_ENV_FILE_NAME,
42
- prefix='CONTAINER_ZRB_ENV_PREFIX'
43
- ),
44
- EnvFile(
45
- path=DOCKER_COMPOSE_APP_ENV_FILE_NAME,
46
- prefix='CONTAINER_ZRB_ENV_PREFIX'
47
- )
80
+ _APP_TEMPLATE_ENV_FILE,
81
+ _DOCKER_COMPOSE_APP_ENV_FILE,
82
+ _DISABLE_ALL_MODULE_ENV_FILE,
48
83
  ],
49
- envs=[
50
- Env(
51
- name='APP_OTEL_EXPORTER_OTLP_ENDPOINT',
52
- os_name='',
53
- default='http://otel-collector:4317'
54
- )
55
- ]
84
+ envs=[_OTEL_EXPORTER_ENDPOINT_ENV],
56
85
  )
@@ -1,44 +1,46 @@
1
+ import jsons
2
+
1
3
  from zrb import Env
4
+
2
5
  from ._config import DEPLOYMENT_DIR, MODULES
3
- import jsons
4
6
 
5
7
  app_enable_otel_env = Env(
6
- name='APP_ENABLE_OTEL',
7
- default='{{ "1" if input.enable_snake_zrb_app_name_monitoring else "0" }}'
8
+ name="APP_ENABLE_OTEL",
9
+ default='{{ "1" if input.enable_snake_zrb_app_name_monitoring else "0" }}',
8
10
  )
9
11
 
10
12
  image_env = Env(
11
- name='IMAGE',
12
- os_name='CONTAINER_ZRB_ENV_PREFIX_IMAGE',
13
- default='{{input.snake_zrb_app_name_image}}'
13
+ name="IMAGE",
14
+ os_name="CONTAINER_ZRB_ENV_PREFIX_IMAGE",
15
+ default="{{input.snake_zrb_app_name_image}}",
14
16
  )
15
17
 
16
18
  pulumi_backend_url_env = Env(
17
- name='PULUMI_BACKEND_URL',
18
- os_name='PULUMI_ZRB_ENV_PREFIX_BACKEND_URL',
19
- default=f'file://{DEPLOYMENT_DIR}/state'
19
+ name="PULUMI_BACKEND_URL",
20
+ os_name="PULUMI_ZRB_ENV_PREFIX_BACKEND_URL",
21
+ default=f"file://{DEPLOYMENT_DIR}/state",
20
22
  )
21
23
 
22
24
  pulumi_config_passphrase_env = Env(
23
- name='PULUMI_CONFIG_PASSPHRASE',
24
- os_name='PULUMI_ZRB_ENV_PREFIX_CONFIG_PASSPHRASE',
25
- default='secret'
25
+ name="PULUMI_CONFIG_PASSPHRASE",
26
+ os_name="PULUMI_ZRB_ENV_PREFIX_CONFIG_PASSPHRASE",
27
+ default="secret",
26
28
  )
27
29
 
28
30
  deployment_modules_env = Env(
29
- name='MODULES',
30
- os_name='DEPLOYMENT_CONFIG_ZRB_ENV_PREFIX_MODULES',
31
- default=jsons.dumps(MODULES)
31
+ name="MODULES",
32
+ os_name="DEPLOYMENT_CONFIG_ZRB_ENV_PREFIX_MODULES",
33
+ default=jsons.dumps(MODULES),
32
34
  )
33
35
 
34
36
  deployment_mode_env = Env(
35
- name='MODE',
36
- os_name='DEPLOYMENT_CONFIG_ZRB_ENV_PREFIX_MODE',
37
- default='{{input.snake_zrb_app_name_deploy_mode}}'
37
+ name="MODE",
38
+ os_name="DEPLOYMENT_CONFIG_ZRB_ENV_PREFIX_MODE",
39
+ default="{{input.snake_zrb_app_name_deploy_mode}}",
38
40
  )
39
41
 
40
42
  deployment_enable_monitoring_env = Env(
41
- name='ENABLE_MONITORING',
42
- os_name='DEPLOYMENT_CONFIG_ZRB_ENV_PREFIX_ENABLE_MONITORING',
43
- default='{{ 1 if input.enable_snake_zrb_app_name_monitoring else 0 }}'
44
- )
43
+ name="ENABLE_MONITORING",
44
+ os_name="DEPLOYMENT_CONFIG_ZRB_ENV_PREFIX_ENABLE_MONITORING",
45
+ default="{{ 1 if input.enable_snake_zrb_app_name_monitoring else 0 }}",
46
+ )
@@ -1,24 +1,24 @@
1
+ import os
2
+
1
3
  from zrb import EnvFile
4
+
2
5
  from ._config import (
3
- RESOURCE_DIR, APP_TEMPLATE_ENV_FILE_NAME, DEPLOYMENT_TEMPLATE_ENV_FILE_NAME
6
+ APP_TEMPLATE_ENV_FILE_NAME,
7
+ DEPLOYMENT_TEMPLATE_ENV_FILE_NAME,
8
+ RESOURCE_DIR,
4
9
  )
5
- import os
6
10
 
7
- app_env_file = EnvFile(
8
- path=APP_TEMPLATE_ENV_FILE_NAME, prefix='ZRB_ENV_PREFIX'
9
- )
11
+ app_env_file = EnvFile(path=APP_TEMPLATE_ENV_FILE_NAME, prefix="ZRB_ENV_PREFIX")
10
12
 
11
13
  compose_env_file = EnvFile(
12
- path=os.path.join(RESOURCE_DIR, 'docker-compose.env'),
13
- prefix='CONTAINER_ZRB_ENV_PREFIX'
14
+ path=os.path.join(RESOURCE_DIR, "docker-compose.env"),
15
+ prefix="CONTAINER_ZRB_ENV_PREFIX",
14
16
  )
15
17
 
16
18
  deployment_app_env_file = EnvFile(
17
- path=APP_TEMPLATE_ENV_FILE_NAME,
18
- prefix='DEPLOYMENT_APP_ZRB_ENV_PREFIX'
19
+ path=APP_TEMPLATE_ENV_FILE_NAME, prefix="DEPLOYMENT_APP_ZRB_ENV_PREFIX"
19
20
  )
20
21
 
21
22
  deployment_config_env_file = EnvFile(
22
- path=DEPLOYMENT_TEMPLATE_ENV_FILE_NAME,
23
- prefix='DEPLOYMENT_CONFIG_ZRB_ENV_PREFIX'
24
- )
23
+ path=DEPLOYMENT_TEMPLATE_ENV_FILE_NAME, prefix="DEPLOYMENT_CONFIG_ZRB_ENV_PREFIX"
24
+ )