zrb 0.23.4__py3-none-any.whl → 0.26.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. zrb/__init__.py +2 -0
  2. zrb/action/runner.py +8 -5
  3. zrb/advertisement.py +1 -2
  4. zrb/builtin/__init__.py +4 -0
  5. zrb/builtin/base64/decode.py +1 -1
  6. zrb/builtin/base64/encode.py +1 -1
  7. zrb/builtin/devtool/install/_helper.py +2 -1
  8. zrb/builtin/devtool/install/_input.py +2 -2
  9. zrb/builtin/docker/prune.py +11 -3
  10. zrb/builtin/env/get.py +3 -2
  11. zrb/builtin/eval.py +2 -1
  12. zrb/builtin/git/get_file_changes.py +2 -1
  13. zrb/builtin/md5/hash.py +1 -1
  14. zrb/builtin/md5/sum.py +1 -1
  15. zrb/builtin/monorepo/__init__.py +7 -0
  16. zrb/builtin/monorepo/_config.py +11 -0
  17. zrb/builtin/monorepo/_group.py +3 -0
  18. zrb/builtin/monorepo/_task.py +99 -0
  19. zrb/builtin/monorepo/add.py +40 -0
  20. zrb/builtin/monorepo/pull.py +23 -0
  21. zrb/builtin/monorepo/push.py +35 -0
  22. zrb/builtin/project/_helper.py +3 -3
  23. zrb/builtin/project/_input.py +2 -2
  24. zrb/builtin/project/add/app/generator/generator.py +1 -1
  25. zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/snake_zrb_generator_name.py +1 -1
  26. zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/remove.py +1 -1
  27. zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/start.py +6 -7
  28. zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/stop.py +1 -1
  29. zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/src/kebab-zrb-app-name/docker-compose.yml +0 -2
  30. zrb/builtin/project/add/app/python/python.py +1 -1
  31. zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/remove.py +1 -1
  32. zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/start.py +6 -7
  33. zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/stop.py +1 -1
  34. zrb/builtin/project/add/app/python/template/src/kebab-zrb-app-name/docker-compose.yml +0 -2
  35. zrb/builtin/project/add/fastapp/app/app.py +3 -1
  36. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_helper.py +2 -53
  37. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_service_config.py +1 -1
  38. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/_helper.py +2 -2
  39. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/start.py +5 -6
  40. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/_helper.py +2 -2
  41. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/start.py +5 -6
  42. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/stop.py +2 -0
  43. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/_helper.py +5 -3
  44. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/start.py +4 -6
  45. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/frontend/build-once.sh +1 -1
  46. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/frontend/build.sh +1 -1
  47. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/_helper.py +3 -5
  48. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/start.py +3 -3
  49. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/{start_microservices.py → start_services.py} +2 -3
  50. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/.generator-version +1 -0
  51. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/deployment/_common.py +5 -5
  52. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/deployment/app_helper.py +5 -5
  53. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/docker-compose.yml +2 -2
  54. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/loadtest/locustfile.py +1 -3
  55. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/loadtest/template.env +1 -1
  56. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/error.py +2 -1
  57. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/kafka/admin.py +4 -3
  58. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/kafka/consumer.py +2 -1
  59. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/messagebus.py +4 -3
  60. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/mock.py +4 -3
  61. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/rabbitmq/admin.py +4 -3
  62. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/rabbitmq/consumer.py +3 -2
  63. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/model/repo_model.py +3 -3
  64. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/repo/db_repo.py +7 -6
  65. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/repo/repo.py +2 -2
  66. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/repo/search_filter.py +2 -1
  67. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/rpc/messagebus/caller.py +2 -1
  68. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/rpc/messagebus/server.py +2 -1
  69. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/rpc/rpc.py +3 -2
  70. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/serializer/serializer.py +2 -1
  71. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/config.py +59 -62
  72. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/frontend/package-lock.json +4443 -0
  73. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/helper/async_task.py +1 -1
  74. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app.py +28 -28
  75. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app_lifespan.py +15 -15
  76. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app_state.py +2 -2
  77. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/db_connection.py +14 -2
  78. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/frontend_index.py +2 -2
  79. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/log.py +6 -6
  80. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/messagebus.py +33 -33
  81. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/rpc.py +9 -9
  82. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/component/access_token/scheme.py +2 -1
  83. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/component/access_token/util.py +2 -1
  84. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/group/repo.py +2 -1
  85. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/group/rpc.py +2 -1
  86. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/rpc.py +2 -1
  87. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/api.py +2 -1
  88. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/model.py +3 -2
  89. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/repo.py +3 -2
  90. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/rpc.py +3 -2
  91. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/access_token_scheme.py +2 -2
  92. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/access_token_util.py +7 -7
  93. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/model/user_model.py +6 -6
  94. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/refresh_token_util.py +7 -7
  95. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/user.py +18 -18
  96. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/migrate.py +2 -2
  97. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/register_module.py +8 -8
  98. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/register_permission.py +2 -2
  99. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/group.py +3 -5
  100. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/permission.py +1 -3
  101. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/request.py +1 -3
  102. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/user.py +5 -7
  103. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/entity/activity/event.py +2 -1
  104. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/entity/activity/rpc.py +2 -1
  105. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/migrate.py +2 -2
  106. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/register_module.py +8 -8
  107. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/schema/activity.py +1 -3
  108. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/template.env +5 -2
  109. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_group_crud.py +8 -8
  110. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_permission_crud.py +8 -8
  111. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_user_crud.py +8 -8
  112. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_user_login.py +15 -15
  113. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/test_liveness_and_readiness.py +4 -4
  114. zrb/builtin/project/add/fastapp/crud/_helper/__init__.py +7 -0
  115. zrb/builtin/project/add/fastapp/crud/_helper/_common.py +8 -0
  116. zrb/builtin/project/add/fastapp/crud/_helper/register_api.py +45 -0
  117. zrb/builtin/project/add/fastapp/crud/_helper/register_permission.py +40 -0
  118. zrb/builtin/project/add/fastapp/crud/_helper/register_rpc.py +45 -0
  119. zrb/builtin/project/add/fastapp/crud/_task_factory.py +1 -2
  120. zrb/builtin/project/add/fastapp/crud/crud.py +4 -25
  121. zrb/builtin/project/add/fastapp/crud/nodejs/codemod/package-lock.json +3 -3
  122. zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/repo.py +12 -1
  123. zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/rpc.py +2 -1
  124. zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/schema/snake_zrb_entity_name.py +3 -2
  125. zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/test/snake_zrb_module_name/test_snake_zrb_entity_name.py +9 -8
  126. zrb/builtin/project/add/fastapp/field/_helper/__init__.py +17 -0
  127. zrb/builtin/project/add/fastapp/field/_helper/_common.py +102 -0
  128. zrb/builtin/project/add/fastapp/field/_helper/inject_delete_page.py +49 -0
  129. zrb/builtin/project/add/fastapp/field/_helper/inject_detail_page.py +49 -0
  130. zrb/builtin/project/add/fastapp/field/_helper/inject_insert_page.py +62 -0
  131. zrb/builtin/project/add/fastapp/field/_helper/inject_list_page.py +47 -0
  132. zrb/builtin/project/add/fastapp/field/_helper/inject_repo.py +47 -0
  133. zrb/builtin/project/add/fastapp/field/_helper/inject_schema.py +45 -0
  134. zrb/builtin/project/add/fastapp/field/_helper/inject_test.py +49 -0
  135. zrb/builtin/project/add/fastapp/field/_helper/inject_update_page.py +50 -0
  136. zrb/builtin/project/add/fastapp/field/_input.py +14 -2
  137. zrb/builtin/project/add/fastapp/field/field.py +52 -70
  138. zrb/builtin/project/add/fastapp/module/_helper/__init__.py +17 -0
  139. zrb/builtin/project/add/fastapp/module/_helper/append_all_disabled_env.py +22 -0
  140. zrb/builtin/project/add/fastapp/module/_helper/append_all_enabled_env.py +22 -0
  141. zrb/builtin/project/add/fastapp/module/_helper/append_deployment_template_env.py +25 -0
  142. zrb/builtin/project/add/fastapp/module/_helper/append_src_template_env.py +25 -0
  143. zrb/builtin/project/add/fastapp/module/_helper/create_app_config.py +29 -0
  144. zrb/builtin/project/add/fastapp/module/_helper/create_microservice_config.py +157 -0
  145. zrb/builtin/project/add/fastapp/module/_helper/register_migration.py +35 -0
  146. zrb/builtin/project/add/fastapp/module/_helper/register_module.py +33 -0
  147. zrb/builtin/project/add/fastapp/module/module.py +9 -38
  148. zrb/builtin/project/add/fastapp/module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/migrate.py +2 -2
  149. zrb/builtin/project/add/fastapp/module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/register_module.py +8 -8
  150. zrb/builtin/project/add/plugin/plugin.py +3 -3
  151. zrb/builtin/project/add/project_task/add.py +1 -1
  152. zrb/builtin/project/add/project_task/template/_automate/_project/build.py +2 -1
  153. zrb/builtin/project/add/project_task/template/_automate/_project/container/remove.py +2 -1
  154. zrb/builtin/project/add/project_task/template/_automate/_project/container/start.py +2 -1
  155. zrb/builtin/project/add/project_task/template/_automate/_project/container/stop.py +2 -1
  156. zrb/builtin/project/add/project_task/template/_automate/_project/deploy.py +2 -1
  157. zrb/builtin/project/add/project_task/template/_automate/_project/destroy.py +2 -1
  158. zrb/builtin/project/add/project_task/template/_automate/_project/get_env.py +2 -1
  159. zrb/builtin/project/add/project_task/template/_automate/_project/image/build.py +2 -1
  160. zrb/builtin/project/add/project_task/template/_automate/_project/image/push.py +2 -1
  161. zrb/builtin/project/add/project_task/template/_automate/_project/publish.py +2 -1
  162. zrb/builtin/project/add/project_task/template/_automate/_project/start.py +2 -1
  163. zrb/builtin/project/add/task/cmd/add.py +1 -1
  164. zrb/builtin/project/add/task/docker_compose/add.py +1 -1
  165. zrb/builtin/project/add/task/docker_compose/template/src/kebab-zrb-task-name/docker-compose.yml +0 -2
  166. zrb/builtin/project/add/task/python/add.py +1 -1
  167. zrb/builtin/project/add/task/python/template/_automate/snake_zrb_task_name.py +1 -1
  168. zrb/builtin/project/create/_helper.py +1 -1
  169. zrb/builtin/project/create/create.py +3 -3
  170. zrb/builtin/say.py +3 -3
  171. zrb/builtin/version.py +5 -4
  172. zrb/config/config.py +24 -14
  173. zrb/helper/accessories/color.py +2 -1
  174. zrb/helper/advertisement.py +2 -1
  175. zrb/helper/asyncio_task.py +23 -0
  176. zrb/helper/callable.py +4 -1
  177. zrb/helper/cli.py +20 -6
  178. zrb/helper/codemod/add_import_module.py +3 -2
  179. zrb/helper/codemod/add_property_to_class.py +2 -1
  180. zrb/helper/default_env.py +2 -1
  181. zrb/helper/docker_compose/fetch_external_env.py +4 -2
  182. zrb/helper/docker_compose/file.py +3 -1
  183. zrb/helper/env_map/fetch.py +3 -2
  184. zrb/helper/file/copy_tree.py +2 -1
  185. zrb/helper/file/match.py +2 -2
  186. zrb/helper/git/detect_changes.py +1 -1
  187. zrb/helper/loader/load_module.py +7 -46
  188. zrb/helper/loader/load_script.py +57 -0
  189. zrb/helper/log.py +3 -3
  190. zrb/helper/map/conversion.py +3 -1
  191. zrb/helper/string/jinja.py +2 -1
  192. zrb/helper/string/parse_replacement.py +1 -1
  193. zrb/helper/typecheck.py +2 -2
  194. zrb/helper/typing.py +5 -27
  195. zrb/helper/util.py +13 -1
  196. zrb/runner.py +2 -2
  197. zrb/task/any_task.py +9 -17
  198. zrb/task/any_task_event_handler.py +3 -1
  199. zrb/task/base_remote_cmd_task.py +3 -10
  200. zrb/task/base_task/base_task.py +15 -11
  201. zrb/task/base_task/component/base_task_model.py +15 -22
  202. zrb/task/base_task/component/common_task_model.py +15 -22
  203. zrb/task/base_task/component/renderer.py +3 -1
  204. zrb/task/base_task/component/trackers.py +1 -1
  205. zrb/task/checker.py +2 -1
  206. zrb/task/cmd_task.py +10 -22
  207. zrb/task/decorator.py +3 -1
  208. zrb/task/docker_compose_start_task.py +146 -0
  209. zrb/task/docker_compose_task.py +43 -34
  210. zrb/task/flow_task.py +19 -17
  211. zrb/task/http_checker.py +3 -9
  212. zrb/task/looper.py +4 -2
  213. zrb/task/notifier.py +3 -1
  214. zrb/task/parallel.py +4 -4
  215. zrb/task/path_checker.py +6 -12
  216. zrb/task/path_watcher.py +5 -13
  217. zrb/task/port_checker.py +3 -9
  218. zrb/task/recurring_task.py +5 -4
  219. zrb/task/remote_cmd_task.py +2 -1
  220. zrb/task/resource_maker.py +6 -13
  221. zrb/task/rsync_task.py +3 -1
  222. zrb/task/server.py +13 -12
  223. zrb/task/time_watcher.py +3 -10
  224. zrb/task/watcher.py +2 -1
  225. zrb/task/wiki_task.py +4 -3
  226. zrb/task_env/env.py +2 -1
  227. zrb/task_env/env_file.py +7 -6
  228. zrb/task_group/group.py +8 -7
  229. zrb/task_input/any_input.py +4 -3
  230. zrb/task_input/base_input.py +7 -5
  231. zrb/task_input/bool_input.py +2 -1
  232. zrb/task_input/choice_input.py +3 -1
  233. zrb/task_input/float_input.py +2 -1
  234. zrb/task_input/int_input.py +2 -1
  235. zrb/task_input/multiline_input.py +5 -3
  236. zrb/task_input/password_input.py +2 -1
  237. zrb/task_input/str_input.py +2 -1
  238. {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/METADATA +2 -2
  239. {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/RECORD +242 -214
  240. zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/init.py +0 -34
  241. zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/init.py +0 -34
  242. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/init.py +0 -36
  243. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/init.py +0 -36
  244. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/init.py +0 -26
  245. zrb/builtin/project/add/fastapp/crud/_helper.py +0 -118
  246. zrb/builtin/project/add/fastapp/field/_helper.py +0 -328
  247. zrb/builtin/project/add/fastapp/module/_helper.py +0 -313
  248. {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/LICENSE +0 -0
  249. {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/WHEEL +0 -0
  250. {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/entry_points.txt +0 -0
@@ -1,313 +0,0 @@
1
- import asyncio
2
- import os
3
-
4
- import jsons
5
- from dotenv import dotenv_values
6
-
7
- from zrb.helper.codemod.add_function_call import add_function_call
8
- from zrb.helper.codemod.add_import_module import add_import_module
9
- from zrb.helper.codemod.append_code_to_function import append_code_to_function
10
- from zrb.helper.docker_compose.file import add_services
11
- from zrb.helper.file.text import (
12
- append_text_file_async,
13
- read_text_file_async,
14
- write_text_file_async,
15
- )
16
- from zrb.helper.typecheck import typechecked
17
- from zrb.helper.typing import Any, List, Mapping
18
- from zrb.task.task import Task
19
-
20
-
21
- @typechecked
22
- async def create_microservice_config(
23
- task: Task,
24
- project_dir: str,
25
- kebab_app_name: str,
26
- snake_app_name: str,
27
- kebab_module_name: str,
28
- snake_module_name: str,
29
- upper_snake_module_name: str,
30
- ):
31
- modules = await _create_automation_json_config(
32
- task, project_dir, snake_app_name, snake_module_name
33
- )
34
- return await asyncio.gather(
35
- asyncio.create_task(
36
- _add_docker_compose_service(
37
- task,
38
- modules,
39
- project_dir,
40
- kebab_app_name,
41
- snake_app_name,
42
- kebab_module_name,
43
- snake_module_name,
44
- upper_snake_module_name,
45
- )
46
- ),
47
- asyncio.create_task(
48
- _append_compose_env(
49
- task, modules, project_dir, kebab_app_name, upper_snake_module_name
50
- )
51
- ),
52
- )
53
-
54
-
55
- @typechecked
56
- async def _add_docker_compose_service(
57
- task: Task,
58
- modules: List[str],
59
- project_dir: str,
60
- kebab_app_name: str,
61
- snake_app_name: str,
62
- kebab_module_name: str,
63
- snake_module_name: str,
64
- upper_snake_module_name: str,
65
- ):
66
- module_app_port = 8080 + len(modules)
67
- module_app_port_str = str(module_app_port)
68
- docker_compose_file_path = os.path.join(
69
- project_dir, "src", kebab_app_name, "docker-compose.yml"
70
- )
71
- app_container_port_env_name = f"APP_{upper_snake_module_name}_MODULE_PORT"
72
- app_container_port_env = (
73
- "${" + app_container_port_env_name + ":-" + module_app_port_str + "}"
74
- ) # noqa
75
- app_host_port_env_name = f"APP_{upper_snake_module_name}_HOST_MODULE_PORT"
76
- app_host_port_env = (
77
- "${" + app_host_port_env_name + ":-" + module_app_port_str + "}"
78
- ) # noqa
79
- service_definition = _get_new_docker_compose_service_definition(
80
- kebab_app_name,
81
- snake_app_name,
82
- kebab_module_name,
83
- snake_module_name,
84
- upper_snake_module_name,
85
- app_host_port_env,
86
- app_container_port_env,
87
- )
88
- task.print_out(f"Add service at: {docker_compose_file_path}")
89
- add_services(
90
- file_name=docker_compose_file_path,
91
- new_services=service_definition,
92
- )
93
-
94
-
95
- @typechecked
96
- def _get_new_docker_compose_service_definition(
97
- kebab_app_name: str,
98
- snake_app_name: str,
99
- kebab_module_name: str,
100
- snake_module_name: str,
101
- upper_snake_module_name: str,
102
- app_host_port_env: str,
103
- app_container_port_env: str,
104
- ) -> Mapping[str, Any]:
105
- return {
106
- f"{kebab_app_name}-{kebab_module_name}-service": {
107
- "build": {"dockerfile": "Dockerfile", "context": "./src"},
108
- "image": "${IMAGE:-" + kebab_app_name + "}",
109
- "container_name": "${CONTAINER_PREFIX:-my}-"
110
- + f"{kebab_app_name}-{kebab_module_name}-service", # noqa
111
- "hostname": f"{kebab_app_name}-{kebab_module_name}-service",
112
- "env_file": ["src/template.env", "all-module-disabled.env"],
113
- "environment": {
114
- "APP_NAME": "${APP_NAME:-"
115
- + kebab_app_name
116
- + "}-"
117
- + f"{kebab_module_name}-service", # noqa
118
- "APP_ENABLE_OTEL": "${APP_ENABLE_OTEL:-0}",
119
- "APP_PORT": app_container_port_env,
120
- "APP_ENABLE_EVENT_HANDLER": "true",
121
- "APP_ENABLE_RPC_SERVER": "true",
122
- "APP_ENABLE_API": "false",
123
- "APP_ENABLE_FRONTEND": "false",
124
- f"APP_ENABLE_{upper_snake_module_name}_MODULE": "true",
125
- },
126
- "ports": [f"{app_host_port_env}:{app_container_port_env}"],
127
- "restart": "unless-stopped",
128
- "profiles": ["microservices"],
129
- "healthcheck": {
130
- "test": f"curl --fail http://localhost:{app_container_port_env}/readiness || killall uvicorn", # noqa
131
- "interval": "20s",
132
- "timeout": "3s",
133
- "retries": 10,
134
- "start_period": "20s",
135
- },
136
- "networks": ["zrb"],
137
- }
138
- }
139
-
140
-
141
- @typechecked
142
- async def _append_compose_env(
143
- task: Task,
144
- modules: List[str],
145
- project_dir: str,
146
- kebab_app_name: str,
147
- upper_snake_module_name: str,
148
- ):
149
- compose_template_env_path = os.path.join(
150
- project_dir, "src", kebab_app_name, "docker-compose.env"
151
- )
152
- compose_env_map = dotenv_values(compose_template_env_path)
153
- host_port = int(compose_env_map.get("APP_GATEWAY_HOST_PORT", "8080"))
154
- module_app_port = host_port + len(modules)
155
- new_env_str = "\n".join(
156
- [
157
- f"APP_{upper_snake_module_name}_HOST_MODULE_PORT={module_app_port}",
158
- f"APP_{upper_snake_module_name}_MODULE_PORT={module_app_port}",
159
- ]
160
- )
161
- task.print_out(f"Add new environment to: {compose_template_env_path}")
162
- await append_text_file_async(compose_template_env_path, new_env_str)
163
-
164
-
165
- @typechecked
166
- async def append_src_template_env(
167
- task: Task, project_dir: str, kebab_app_name: str, upper_snake_module_name: str
168
- ):
169
- src_template_env_path = os.path.join(
170
- project_dir, "src", kebab_app_name, "src", "template.env"
171
- )
172
- new_env_str = "\n".join(
173
- [
174
- f"APP_ENABLE_{upper_snake_module_name}_MODULE=true",
175
- ]
176
- )
177
- task.print_out(f"Add new environment to: {src_template_env_path}")
178
- await append_text_file_async(src_template_env_path, new_env_str)
179
-
180
-
181
- @typechecked
182
- async def append_deployment_template_env(
183
- task: Task, project_dir: str, kebab_app_name: str, upper_snake_module_name: str
184
- ):
185
- deployment_template_env_path = os.path.join(
186
- project_dir, "src", kebab_app_name, "deployment", "template.env"
187
- )
188
- new_env_str = "\n".join(
189
- [
190
- f"REPLICA_{upper_snake_module_name}_SERVICE=1",
191
- ]
192
- )
193
- task.print_out(f"Add new environment to: {deployment_template_env_path}")
194
- await append_text_file_async(deployment_template_env_path, new_env_str)
195
-
196
-
197
- @typechecked
198
- async def append_all_enabled_env(
199
- task: Task, project_dir: str, kebab_app_name: str, upper_snake_module_name: str
200
- ):
201
- all_enabled_env_path = os.path.join(
202
- project_dir, "src", kebab_app_name, "all-module-enabled.env"
203
- )
204
- task.print_out(f"Add new environment to: {all_enabled_env_path}")
205
- await append_text_file_async(
206
- all_enabled_env_path, f"APP_ENABLE_{upper_snake_module_name}_MODULE=true"
207
- )
208
-
209
-
210
- @typechecked
211
- async def append_all_disabled_env(
212
- task: Task, project_dir: str, kebab_app_name: str, upper_snake_module_name: str
213
- ):
214
- all_disabled_env_path = os.path.join(
215
- project_dir, "src", kebab_app_name, "all-module-disabled.env"
216
- )
217
- task.print_out(f"Add new environment to: {all_disabled_env_path}")
218
- await append_text_file_async(
219
- all_disabled_env_path, f"APP_ENABLE_{upper_snake_module_name}_MODULE=false"
220
- )
221
-
222
-
223
- @typechecked
224
- async def create_app_config(
225
- task: Task,
226
- project_dir: str,
227
- kebab_app_name: str,
228
- snake_module_name: str,
229
- upper_snake_module_name: str,
230
- ):
231
- config_file_path = os.path.join(
232
- project_dir, "src", kebab_app_name, "src", "config.py"
233
- )
234
- config_code = "\n".join(
235
- [
236
- f"app_enable_{snake_module_name}_module = str_to_boolean(os.environ.get(", # noqa
237
- f" 'APP_ENABLE_{upper_snake_module_name}_MODULE', 'true'" "))",
238
- ]
239
- )
240
- task.print_out(f"Read config from: {config_file_path}")
241
- code = await read_text_file_async(config_file_path)
242
- code += "\n" + config_code
243
- task.print_out(f"Write config to: {config_file_path}")
244
- await write_text_file_async(config_file_path, code)
245
-
246
-
247
- @typechecked
248
- async def _create_automation_json_config(
249
- task: Task,
250
- project_dir: str,
251
- snake_app_name: str,
252
- snake_module_name: str,
253
- ):
254
- json_modules_file_path = os.path.join(
255
- project_dir, "_automate", snake_app_name, "config", "modules.json"
256
- )
257
- task.print_out(f"Read json config from: {json_modules_file_path}")
258
- json_str = await read_text_file_async(json_modules_file_path)
259
- task.print_out(f'Add "{snake_module_name}" to json config')
260
- modules: List[str] = jsons.loads(json_str)
261
- modules.append(snake_module_name)
262
- json_str = jsons.dumps(modules)
263
- task.print_out(f"Write new json config to: {json_modules_file_path}")
264
- await write_text_file_async(json_modules_file_path, json_str)
265
- return modules
266
-
267
-
268
- @typechecked
269
- async def register_migration(
270
- task: Task, project_dir: str, kebab_app_name: str, snake_module_name: str
271
- ):
272
- app_migration_file_path = os.path.join(
273
- project_dir, "src", kebab_app_name, "src", "migrate.py"
274
- )
275
- import_module_path = ".".join(["module", snake_module_name, "migrate"])
276
- function_name = f"migrate_{snake_module_name}"
277
- task.print_out(f"Read code from: {app_migration_file_path}")
278
- code = await read_text_file_async(app_migration_file_path)
279
- task.print_out(
280
- f'Add import "{function_name}" from "{import_module_path}" to the code'
281
- )
282
- code = add_import_module(
283
- code=code, module_path=import_module_path, resource=function_name
284
- )
285
- task.print_out(f'Add "{function_name}" call to the code')
286
- code = append_code_to_function(
287
- code=code, function_name="migrate", new_code=f"await {function_name}()"
288
- )
289
- task.print_out(f"Write modified code to: {app_migration_file_path}")
290
- await write_text_file_async(app_migration_file_path, code)
291
-
292
-
293
- @typechecked
294
- async def register_module(
295
- task: Task, project_dir: str, kebab_app_name: str, snake_module_name: str
296
- ):
297
- app_main_file_path = os.path.join(
298
- project_dir, "src", kebab_app_name, "src", "main.py"
299
- )
300
- import_module_path = ".".join(["module", snake_module_name, "register_module"])
301
- function_name = f"register_{snake_module_name}"
302
- task.print_out(f"Read code from: {app_main_file_path}")
303
- code = await read_text_file_async(app_main_file_path)
304
- task.print_out(
305
- f'Add import "{function_name}" from "{import_module_path}" to the code'
306
- )
307
- code = add_import_module(
308
- code=code, module_path=import_module_path, resource=function_name
309
- )
310
- task.print_out(f'Add "{function_name}" call to the code')
311
- code = add_function_call(code=code, function_name=function_name, parameters=[])
312
- task.print_out(f"Write modified code to: {app_main_file_path}")
313
- await write_text_file_async(app_main_file_path, code)
File without changes
File without changes