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