zrb 0.0.41__tar.gz → 0.0.43__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. {zrb-0.0.41 → zrb-0.0.43}/PKG-INFO +1 -1
  2. {zrb-0.0.41 → zrb-0.0.43}/pyproject.toml +1 -1
  3. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/_common.py +2 -1
  4. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/cmd/build-frontend.sh +1 -1
  5. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/frontend.py +17 -2
  6. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/component/app.py +7 -17
  7. zrb-0.0.43/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/component/app_lifespan.py +29 -0
  8. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/component/app_state.py +8 -0
  9. zrb-0.0.43/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/component/frontend_index.py +9 -0
  10. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/package.json +1 -0
  11. zrb-0.0.43/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/+layout.js +2 -0
  12. zrb-0.0.43/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/+layout.svelte +6 -0
  13. zrb-0.0.43/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/about/+page.svelte +2 -0
  14. zrb-0.0.43/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/greetings/[slug]/+page.js +6 -0
  15. zrb-0.0.43/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/greetings/[slug]/+page.svelte +9 -0
  16. zrb-0.0.41/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/helper/__init__.py → zrb-0.0.43/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/greetings/[slug]/page.js +0 -0
  17. zrb-0.0.43/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/svelte.config.js +13 -0
  18. {zrb-0.0.41/src/zrb/builtin/generator/project → zrb-0.0.43/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/helper}/__init__.py +0 -0
  19. zrb-0.0.43/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/main.py +22 -0
  20. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task/base_task.py +11 -6
  21. zrb-0.0.43/test/.gitignore +0 -0
  22. zrb-0.0.41/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/+layout.js +0 -1
  23. zrb-0.0.41/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/svelte.config.js +0 -16
  24. zrb-0.0.41/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/main.py +0 -38
  25. {zrb-0.0.41 → zrb-0.0.43}/.gitignore +0 -0
  26. {zrb-0.0.41 → zrb-0.0.43}/LICENSE +0 -0
  27. {zrb-0.0.41 → zrb-0.0.43}/README.md +0 -0
  28. {zrb-0.0.41 → zrb-0.0.43}/playground-template/__init__.py +0 -0
  29. {zrb-0.0.41 → zrb-0.0.43}/playground-template/generate-project.sh +0 -0
  30. {zrb-0.0.41 → zrb-0.0.43}/playground-template/programmatic.py +0 -0
  31. {zrb-0.0.41 → zrb-0.0.43}/playground-template/zrb_init.py +0 -0
  32. {zrb-0.0.41 → zrb-0.0.43}/project.sh +0 -0
  33. {zrb-0.0.41 → zrb-0.0.43}/requirements.txt +0 -0
  34. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/__init__.py +0 -0
  35. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/__main__.py +0 -0
  36. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/action/__init__.py +0 -0
  37. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/action/base_action.py +0 -0
  38. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/action/runner.py +0 -0
  39. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/advertisement.py +0 -0
  40. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/__init__.py +0 -0
  41. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/_group.py +0 -0
  42. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/base64.py +0 -0
  43. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/__init__.py +0 -0
  44. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/aws/download.sh +0 -0
  45. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/aws/setup.sh +0 -0
  46. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/devtool_install.py +0 -0
  47. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/docker/setup.sh +0 -0
  48. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/gcloud/setup.sh +0 -0
  49. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/gvm/config.sh +0 -0
  50. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/gvm/download.sh +0 -0
  51. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/gvm/finalize.sh +0 -0
  52. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/helm/download.sh +0 -0
  53. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/helm/setup.sh +0 -0
  54. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/kubectl/download.sh +0 -0
  55. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/kubectl/setup.sh +0 -0
  56. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/nvm/config.sh +0 -0
  57. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/nvm/download.sh +0 -0
  58. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/nvm/finalize.sh +0 -0
  59. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/pulumi/config.sh +0 -0
  60. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/pulumi/download.sh +0 -0
  61. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/pyenv/config.sh +0 -0
  62. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/pyenv/download.sh +0 -0
  63. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/pyenv/finalize.sh +0 -0
  64. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/sdkman/config.sh +0 -0
  65. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/sdkman/download.sh +0 -0
  66. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/sdkman/finalize.sh +0 -0
  67. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/terraform/config.sh +0 -0
  68. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/terraform/download.sh +0 -0
  69. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/terraform/setup.sh +0 -0
  70. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/tmux/config.sh +0 -0
  71. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/tmux/setup.sh +0 -0
  72. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/zsh/config.sh +0 -0
  73. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/devtool/zsh/setup.sh +0 -0
  74. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/env.py +0 -0
  75. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/eval.py +0 -0
  76. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/__init__.py +0 -0
  77. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/_common.py +0 -0
  78. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/cmd_task/__init__.py +0 -0
  79. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/cmd_task/add.py +0 -0
  80. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/cmd_task/template/_automate/snake_task_name.py +0 -0
  81. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/docker_compose_task/__init__.py +0 -0
  82. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/docker_compose_task/add.py +0 -0
  83. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/docker_compose_task/template/_automate/snake_task_name.py +0 -0
  84. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/docker_compose_task/template/src/kebab-task-name/docker-compose.yml +0 -0
  85. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/docker_compose_task/template/src/kebab-task-name/image/Dockerfile +0 -0
  86. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/docker_compose_task/template/src/kebab-task-name/image/main.py +0 -0
  87. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/docker_compose_task/template/src/kebab-task-name/image/requirements.txt +0 -0
  88. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/__init__.py +0 -0
  89. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/add.py +0 -0
  90. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/__init__.py +0 -0
  91. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/cmd/pulumi-destroy.sh +0 -0
  92. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/cmd/pulumi-up.sh +0 -0
  93. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/cmd/start.sh +0 -0
  94. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/container.py +0 -0
  95. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/deployment.py +0 -0
  96. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/image.py +0 -0
  97. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/_automate/snake_app_name/local.py +0 -0
  98. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/deployment/.gitignore +0 -0
  99. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/deployment/Pulumi.yaml +0 -0
  100. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/deployment/__main__.py +0 -0
  101. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/deployment/requirements.txt +0 -0
  102. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/deployment/state/.gitkeep +0 -0
  103. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/docker-compose.yml +0 -0
  104. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/.dockerignore +0 -0
  105. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/.gitignore +0 -0
  106. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/Dockerfile +0 -0
  107. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/__init__.py +0 -0
  108. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/component/__init__.py +0 -0
  109. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/component/log.py +0 -0
  110. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/component/messagebus.py +0 -0
  111. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/config.py +0 -0
  112. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/__init__.py +0 -0
  113. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/__init__.py +0 -0
  114. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/kafka/__init__.py +0 -0
  115. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/kafka/consumer.py +0 -0
  116. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/kafka/publisher.py +0 -0
  117. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/messagebus.py +0 -0
  118. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/mock.py +0 -0
  119. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/rabbitmq/__init__.py +0 -0
  120. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/rabbitmq/consumer.py +0 -0
  121. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/rabbitmq/publisher.py +0 -0
  122. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/serializer/serializer.py +0 -0
  123. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/feature_disabled.env +0 -0
  124. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/feature_enabled.env +0 -0
  125. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.eslintignore +0 -0
  126. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.eslintrc.cjs +0 -0
  127. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.gitignore +0 -0
  128. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.npmrc +0 -0
  129. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.prettierignore +0 -0
  130. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.prettierrc +0 -0
  131. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/README.md +0 -0
  132. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/playwright.config.ts +0 -0
  133. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/app.d.ts +0 -0
  134. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/app.html +0 -0
  135. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/index.test.ts +0 -0
  136. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/+page.svelte +0 -0
  137. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/static/favicon.png +0 -0
  138. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/tests/test.ts +0 -0
  139. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/tsconfig.json +0 -0
  140. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/vite.config.ts +0 -0
  141. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/helper/async_task.py +0 -0
  142. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/helper/conversion.py +0 -0
  143. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/requirements.txt +0 -0
  144. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/template.env +0 -0
  145. {zrb-0.0.41/src/zrb/builtin/generator/project/template/_automate → zrb-0.0.43/src/zrb/builtin/generator/project}/__init__.py +0 -0
  146. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project/create.py +0 -0
  147. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project/template/.gitignore +0 -0
  148. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project/template/README.md +0 -0
  149. {zrb-0.0.41/src/zrb/builtin/generator/project_task → zrb-0.0.43/src/zrb/builtin/generator/project/template/_automate}/__init__.py +0 -0
  150. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project/template/project.sh +0 -0
  151. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project/template/requirements.txt +0 -0
  152. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project/template/src/.gitkeep +0 -0
  153. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project/template/template.env +0 -0
  154. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project/template/zrb_init.py +0 -0
  155. {zrb-0.0.41/src/zrb/builtin/generator/python_task → zrb-0.0.43/src/zrb/builtin/generator/project_task}/__init__.py +0 -0
  156. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project_task/add.py +0 -0
  157. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project_task/task_factory.py +0 -0
  158. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project_task/task_factory_helper.py +0 -0
  159. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project_task/template/_automate/_project/__init__.py +0 -0
  160. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project_task/template/_automate/_project/build_project_images.py +0 -0
  161. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project_task/template/_automate/_project/deploy_project.py +0 -0
  162. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project_task/template/_automate/_project/destroy_project.py +0 -0
  163. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project_task/template/_automate/_project/push_project_images.py +0 -0
  164. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project_task/template/_automate/_project/remove_project_containers.py +0 -0
  165. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project_task/template/_automate/_project/start_project.py +0 -0
  166. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project_task/template/_automate/_project/start_project_containers.py +0 -0
  167. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/project_task/template/_automate/_project/stop_project_containers.py +0 -0
  168. {zrb-0.0.41/src/zrb/builtin/generator/simple_python_app → zrb-0.0.43/src/zrb/builtin/generator/python_task}/__init__.py +0 -0
  169. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/python_task/add.py +0 -0
  170. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/python_task/template/_automate/snake_task_name.py +0 -0
  171. {zrb-0.0.41/src/zrb/builtin/generator/simple_python_app/template/_automate/snake_app_name → zrb-0.0.43/src/zrb/builtin/generator/simple_python_app}/__init__.py +0 -0
  172. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/add.py +0 -0
  173. {zrb-0.0.41/src/zrb/config → zrb-0.0.43/src/zrb/builtin/generator/simple_python_app/template/_automate/snake_app_name}/__init__.py +0 -0
  174. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/_automate/snake_app_name/_common.py +0 -0
  175. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/_automate/snake_app_name/cmd/pulumi-destroy.sh +0 -0
  176. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/_automate/snake_app_name/cmd/pulumi-up.sh +0 -0
  177. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/_automate/snake_app_name/cmd/start.sh +0 -0
  178. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/_automate/snake_app_name/container.py +0 -0
  179. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/_automate/snake_app_name/deployment.py +0 -0
  180. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/_automate/snake_app_name/image.py +0 -0
  181. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/_automate/snake_app_name/local.py +0 -0
  182. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/deployment/.gitignore +0 -0
  183. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/deployment/Pulumi.yaml +0 -0
  184. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/deployment/__main__.py +0 -0
  185. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/deployment/requirements.txt +0 -0
  186. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/deployment/state/.gitkeep +0 -0
  187. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/docker-compose.yml +0 -0
  188. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/.dockerignore +0 -0
  189. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/.gitignore +0 -0
  190. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/Dockerfile +0 -0
  191. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/main.py +0 -0
  192. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/requirements.txt +0 -0
  193. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/template.env +0 -0
  194. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/md5.py +0 -0
  195. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/principle.py +0 -0
  196. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/ubuntu.py +0 -0
  197. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/update.py +0 -0
  198. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/builtin/version.py +0 -0
  199. {zrb-0.0.41/src/zrb/helper → zrb-0.0.43/src/zrb/config}/__init__.py +0 -0
  200. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/config/config.py +0 -0
  201. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/config.toml +0 -0
  202. {zrb-0.0.41/src/zrb/helper/accessories → zrb-0.0.43/src/zrb/helper}/__init__.py +0 -0
  203. {zrb-0.0.41/src/zrb/helper/codemod → zrb-0.0.43/src/zrb/helper/accessories}/__init__.py +0 -0
  204. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/accessories/color.py +0 -0
  205. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/accessories/icon.py +0 -0
  206. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/accessories/name.py +0 -0
  207. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/advertisement.py +0 -0
  208. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/cli.py +0 -0
  209. {zrb-0.0.41/src/zrb/helper/file → zrb-0.0.43/src/zrb/helper/codemod}/__init__.py +0 -0
  210. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/codemod/add_assert_resource.py +0 -0
  211. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/codemod/add_import_module.py +0 -0
  212. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/codemod/add_upstream_to_task.py +0 -0
  213. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/codemod/format_code.py +0 -0
  214. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/default_env.py +0 -0
  215. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/dockercompose/fetch_external_env.py +0 -0
  216. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/dockercompose/read.py +0 -0
  217. {zrb-0.0.41/src/zrb/helper/keyval → zrb-0.0.43/src/zrb/helper/file}/__init__.py +0 -0
  218. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/file/copy_tree.py +0 -0
  219. {zrb-0.0.41/src/zrb/helper/list → zrb-0.0.43/src/zrb/helper/keyval}/__init__.py +0 -0
  220. {zrb-0.0.41/src/zrb/helper/loader → zrb-0.0.43/src/zrb/helper/list}/__init__.py +0 -0
  221. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/list/ensure_uniqueness.py +0 -0
  222. {zrb-0.0.41/src/zrb/helper/string → zrb-0.0.43/src/zrb/helper/loader}/__init__.py +0 -0
  223. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/loader/load_module.py +0 -0
  224. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/log.py +0 -0
  225. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/middlewares/replacement.py +0 -0
  226. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/render_data.py +0 -0
  227. {zrb-0.0.41/src/zrb/task → zrb-0.0.43/src/zrb/helper/string}/__init__.py +0 -0
  228. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/string/conversion.py +0 -0
  229. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/string/double_quote.py +0 -0
  230. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/string/parse_replacement.py +0 -0
  231. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/helper/util.py +0 -0
  232. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/runner.py +0 -0
  233. {zrb-0.0.41/src/zrb/task_group → zrb-0.0.43/src/zrb/task}/__init__.py +0 -0
  234. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task/base_model.py +0 -0
  235. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task/cmd_task.py +0 -0
  236. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task/decorator.py +0 -0
  237. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task/docker_compose_task.py +0 -0
  238. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task/http_checker.py +0 -0
  239. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task/installer/_default/backup-config.sh +0 -0
  240. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task/installer/_default/check.sh +0 -0
  241. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task/installer/_default/download.sh +0 -0
  242. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task/installer/_default/finalize.sh +0 -0
  243. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task/installer/_default/remove-config.sh +0 -0
  244. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task/installer/_default/setup.sh +0 -0
  245. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task/installer/factory.py +0 -0
  246. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task/port_checker.py +0 -0
  247. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task/resource_maker.py +0 -0
  248. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task/task.py +0 -0
  249. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task_env/env.py +0 -0
  250. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task_env/env_file.py +0 -0
  251. {zrb-0.0.41/src/zrb/task_input → zrb-0.0.43/src/zrb/task_group}/__init__.py +0 -0
  252. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task_group/group.py +0 -0
  253. /zrb-0.0.41/test/.gitignore → /zrb-0.0.43/src/zrb/task_input/__init__.py +0 -0
  254. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task_input/_constant.py +0 -0
  255. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task_input/base_input.py +0 -0
  256. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task_input/bool_input.py +0 -0
  257. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task_input/choice_input.py +0 -0
  258. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task_input/float_input.py +0 -0
  259. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task_input/input.py +0 -0
  260. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task_input/int_input.py +0 -0
  261. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task_input/password_input.py +0 -0
  262. {zrb-0.0.41 → zrb-0.0.43}/src/zrb/task_input/str_input.py +0 -0
  263. {zrb-0.0.41 → zrb-0.0.43}/template.env +0 -0
  264. {zrb-0.0.41 → zrb-0.0.43}/test/builtin/generator/cmd_task/.gitignore +0 -0
  265. {zrb-0.0.41 → zrb-0.0.43}/test/builtin/generator/cmd_task/test_add_cmd_task.py +0 -0
  266. {zrb-0.0.41 → zrb-0.0.43}/test/builtin/generator/docker_compose_task/.gitignore +0 -0
  267. {zrb-0.0.41 → zrb-0.0.43}/test/builtin/generator/docker_compose_task/test_add_docker_compose_task.py +0 -0
  268. {zrb-0.0.41 → zrb-0.0.43}/test/builtin/generator/project/.gitignore +0 -0
  269. {zrb-0.0.41 → zrb-0.0.43}/test/builtin/generator/project/test_create_project.py +0 -0
  270. {zrb-0.0.41 → zrb-0.0.43}/test/builtin/generator/python_task/.gitignore +0 -0
  271. {zrb-0.0.41 → zrb-0.0.43}/test/builtin/generator/python_task/test_add_python_task.py +0 -0
  272. {zrb-0.0.41 → zrb-0.0.43}/test/builtin/generator/simple-python-app/.gitignore +0 -0
  273. {zrb-0.0.41 → zrb-0.0.43}/test/builtin/generator/simple-python-app/test_add_simple_python_app.py +0 -0
  274. {zrb-0.0.41 → zrb-0.0.43}/test/builtin/md5_test_sum.txt +0 -0
  275. {zrb-0.0.41 → zrb-0.0.43}/test/builtin/test_base64.py +0 -0
  276. {zrb-0.0.41 → zrb-0.0.43}/test/builtin/test_env.py +0 -0
  277. {zrb-0.0.41 → zrb-0.0.43}/test/builtin/test_eval.py +0 -0
  278. {zrb-0.0.41 → zrb-0.0.43}/test/builtin/test_md5.py +0 -0
  279. {zrb-0.0.41 → zrb-0.0.43}/test/builtin/test_principle.py +0 -0
  280. {zrb-0.0.41 → zrb-0.0.43}/test/helper/codemod/test_add_assert_resource.py +0 -0
  281. {zrb-0.0.41 → zrb-0.0.43}/test/helper/codemod/test_add_import_module.py +0 -0
  282. {zrb-0.0.41 → zrb-0.0.43}/test/helper/codemod/test_add_upstream_to_task.py +0 -0
  283. {zrb-0.0.41 → zrb-0.0.43}/test/helper/test_fetch_external_env.py +0 -0
  284. {zrb-0.0.41 → zrb-0.0.43}/test/helper/test_util.py +0 -0
  285. {zrb-0.0.41 → zrb-0.0.43}/test/task/cmd_task/templates/hello.sh +0 -0
  286. {zrb-0.0.41 → zrb-0.0.43}/test/task/cmd_task/templates/macros.jinja +0 -0
  287. {zrb-0.0.41 → zrb-0.0.43}/test/task/cmd_task/test_cmd_task.py +0 -0
  288. {zrb-0.0.41 → zrb-0.0.43}/test/task/docker_compose_task/resource/docker-compose-simple-list-env.yml +0 -0
  289. {zrb-0.0.41 → zrb-0.0.43}/test/task/docker_compose_task/resource/docker-compose-simple-map-env.yml +0 -0
  290. {zrb-0.0.41 → zrb-0.0.43}/test/task/docker_compose_task/resource/docker-compose-simple-no-default-env.yml +0 -0
  291. {zrb-0.0.41 → zrb-0.0.43}/test/task/docker_compose_task/resource/docker-compose-simple.yml +0 -0
  292. {zrb-0.0.41 → zrb-0.0.43}/test/task/docker_compose_task/resource/docker-compose.yml +0 -0
  293. {zrb-0.0.41 → zrb-0.0.43}/test/task/docker_compose_task/resource/image/Dockerfile +0 -0
  294. {zrb-0.0.41 → zrb-0.0.43}/test/task/docker_compose_task/resource/image/my_program.py +0 -0
  295. {zrb-0.0.41 → zrb-0.0.43}/test/task/docker_compose_task/test_docker_compose_task.py +0 -0
  296. {zrb-0.0.41 → zrb-0.0.43}/test/task/resource_maker/.gitignore +0 -0
  297. {zrb-0.0.41 → zrb-0.0.43}/test/task/resource_maker/template/excluded +0 -0
  298. {zrb-0.0.41 → zrb-0.0.43}/test/task/resource_maker/template/src/app_name.py +0 -0
  299. {zrb-0.0.41 → zrb-0.0.43}/test/task/resource_maker/template/src/config_app_name.py +0 -0
  300. {zrb-0.0.41 → zrb-0.0.43}/test/task/resource_maker/test_resource_maker.py +0 -0
  301. {zrb-0.0.41 → zrb-0.0.43}/test/task/test_decorator.py +0 -0
  302. {zrb-0.0.41 → zrb-0.0.43}/test/task/test_task.env +0 -0
  303. {zrb-0.0.41 → zrb-0.0.43}/test/task/test_task.py +0 -0
  304. {zrb-0.0.41 → zrb-0.0.43}/zrb_init.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 0.0.41
3
+ Version: 0.0.43
4
4
  Summary: Your faithful companion
5
5
  Author-email: Go Frendi Gunawan <gofrendiasgard@gmail.com>
6
6
  Requires-Python: >=3.8
@@ -4,7 +4,7 @@ build-backend = "flit_core.buildapi"
4
4
 
5
5
  [project]
6
6
  name = "zrb"
7
- version = "0.0.41"
7
+ version = "0.0.43"
8
8
  authors = [
9
9
  { name="Go Frendi Gunawan", email="gofrendiasgard@gmail.com" },
10
10
  ]
@@ -13,6 +13,7 @@ RESOURCE_DIR = os.path.join(PROJECT_DIR, 'src', 'kebab-app-name')
13
13
  DEPLOYMENT_DIR = os.path.join(RESOURCE_DIR, 'deployment')
14
14
  APP_DIR = os.path.join(RESOURCE_DIR, 'src')
15
15
  APP_FRONTEND_DIR = os.path.join(APP_DIR, 'frontend')
16
+ APP_FRONTEND_BUILD_DIR = os.path.join(APP_FRONTEND_DIR, 'build')
16
17
  TEMPLATE_ENV_FILE_NAME = os.path.join(APP_DIR, 'template.env')
17
18
  SKIP_CONTAINER_EXECUTION = '{{not input.local_snake_app_name}}'
18
19
  SKIP_SUPPORT_CONTAINER_EXECUTION = ' '.join([
@@ -113,7 +114,7 @@ local_input = BoolInput(
113
114
  mode_input = ChoiceInput(
114
115
  name='kebab-app-name-mode',
115
116
  description='"kebab-app-name" mode',
116
- prompt='"kebab-app-name" mode',
117
+ prompt='Do you want to run "kebab-app-name" as monolith or microservices?',
117
118
  choices=['monolith', 'microservices'],
118
119
  default='monolith'
119
120
  )
@@ -1,2 +1,2 @@
1
1
  npm install --save
2
- npm run build
2
+ npm run build:watch
@@ -1,12 +1,26 @@
1
- from zrb import CmdTask, runner
1
+ from typing import Any
2
+ from zrb import CmdTask, Task, python_task, runner
2
3
  from zrb.builtin._group import project_group
3
- from ._common import APP_FRONTEND_DIR, CURRENT_DIR
4
+ from ._common import APP_FRONTEND_DIR, APP_FRONTEND_BUILD_DIR, CURRENT_DIR
5
+ import asyncio
4
6
  import os
5
7
 
6
8
  ###############################################################################
7
9
  # Task Definitions
8
10
  ###############################################################################
9
11
 
12
+
13
+ @python_task(
14
+ name='check-kebab-app-name-frontend-build',
15
+ retry=0,
16
+ )
17
+ async def check_frontend_build(*args: str, **kwargs: Any):
18
+ while not os.path.isdir(APP_FRONTEND_BUILD_DIR):
19
+ await asyncio.sleep(0.1)
20
+ task: Task = kwargs.get('_task')
21
+ task.print_out(f'Frontend built: {APP_FRONTEND_BUILD_DIR}')
22
+
23
+
10
24
  build_snake_app_name_frontend = CmdTask(
11
25
  icon='🚤',
12
26
  name='build-kebab-app-name-frontend',
@@ -14,5 +28,6 @@ build_snake_app_name_frontend = CmdTask(
14
28
  group=project_group,
15
29
  cwd=APP_FRONTEND_DIR,
16
30
  cmd_path=os.path.join(CURRENT_DIR, 'cmd', 'build-frontend.sh'),
31
+ checkers=[check_frontend_build]
17
32
  )
18
33
  runner.register(build_snake_app_name_frontend)
@@ -6,28 +6,18 @@ from config import (
6
6
  cors_allow_methods, cors_allow_origin_regex, cors_allow_origins,
7
7
  cors_expose_headers, cors_max_age
8
8
  )
9
- from component.app_state import app_state
10
- from starlette.requests import Request
11
- from starlette.responses import FileResponse
12
- import os
9
+ from component.app_lifespan import app_state
10
+ from component.app_lifespan import app_lifespan
11
+ from component.frontend_index import frontend_index_response
13
12
 
14
- app = FastAPI()
13
+ app = FastAPI(lifespan=app_lifespan)
15
14
 
16
15
  if app_enable_frontend:
17
16
  @app.middleware("http")
18
- async def static_file_middleware(request: Request, call_next):
19
- build_path = os.path.join('frontend', 'build')
20
- request_url = request.url.path.strip('/')
21
- file_path = os.path.join(build_path, request_url)
22
- # File exists, serve it
23
- if os.path.isfile(file_path):
24
- return FileResponse(file_path)
25
- # File doesn't exists, try to look for index.html
26
- file_path = os.path.join(file_path, 'index.html')
27
- if os.path.isfile(file_path):
28
- return FileResponse(file_path)
29
- # Nothing exists, this must be served programmatically
17
+ async def catch_all(request, call_next):
30
18
  response = await call_next(request)
19
+ if response.status_code == 404:
20
+ return frontend_index_response
31
21
  return response
32
22
 
33
23
 
@@ -0,0 +1,29 @@
1
+ from fastapi import FastAPI
2
+ from fastapi.staticfiles import StaticFiles
3
+ from config import (
4
+ app_name, app_enable_message_consumer, app_enable_frontend,
5
+ )
6
+ from component.app_state import app_state, set_not_ready_on_error
7
+ from component.messagebus import consumer
8
+ from component.log import logger
9
+ from helper.async_task import create_task
10
+ from contextlib import asynccontextmanager
11
+ import os
12
+
13
+
14
+ @asynccontextmanager
15
+ async def app_lifespan(app: FastAPI):
16
+ logger.info(f'{app_name} started')
17
+ app_state.set_liveness(True)
18
+ if app_enable_message_consumer:
19
+ create_task(consumer.run(), on_error=set_not_ready_on_error)
20
+ if app_enable_frontend:
21
+ build_path = os.path.join('frontend', 'build')
22
+ app.mount(
23
+ path='',
24
+ app=StaticFiles(directory=build_path, html=True),
25
+ name='frontend'
26
+ )
27
+ app_state.set_readiness(True)
28
+ yield
29
+ logger.info(f'{app_name} closed')
@@ -1,3 +1,6 @@
1
+ from component.log import logger
2
+
3
+
1
4
  class AppState():
2
5
  __instance = None
3
6
 
@@ -24,3 +27,8 @@ class AppState():
24
27
 
25
28
 
26
29
  app_state = AppState()
30
+
31
+
32
+ def set_not_ready_on_error(exception: Exception):
33
+ logger.critical(exception)
34
+ app_state.set_readiness(False)
@@ -0,0 +1,9 @@
1
+ from fastapi.responses import HTMLResponse
2
+ import os
3
+
4
+ frontend_index_path = os.path.join('frontend', 'build', 'index.html')
5
+ with open(frontend_index_path, "r") as f:
6
+ frontend_index_content = f.read()
7
+ frontend_index_response = HTMLResponse(
8
+ content=frontend_index_content, status_code=200
9
+ )
@@ -5,6 +5,7 @@
5
5
  "scripts": {
6
6
  "dev": "vite dev",
7
7
  "build": "vite build",
8
+ "build:watch": "vite build --watch",
8
9
  "preview": "vite preview",
9
10
  "test": "playwright test",
10
11
  "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
@@ -0,0 +1,2 @@
1
+ export const ssr = false;
2
+ export const trailingSlash = 'always';
@@ -0,0 +1,6 @@
1
+ <nav>
2
+ <a href="/">home</a>
3
+ <a href="/about">about</a>
4
+ <a href="/about?name=hi">about</a>
5
+ </nav>
6
+ <slot></slot>
@@ -0,0 +1,2 @@
1
+ <h1>About</h1>
2
+ <p>Visit <a href="https://kit.svelte.dev">kit.svelte.dev</a> to read the documentation</p>
@@ -0,0 +1,6 @@
1
+ export function load({ params }) {
2
+ return {
3
+ title: 'hello ' + params.slug,
4
+ content: 'hello ' + params.slug
5
+ };
6
+ }
@@ -0,0 +1,9 @@
1
+ <h1>Greetings</h1>
2
+
3
+ <h1>{data.title}</h1>
4
+ <div>{@html data.content}</div>
5
+
6
+
7
+ <script>
8
+ export let data;
9
+ </script>
@@ -0,0 +1,13 @@
1
+ import adapter from '@sveltejs/adapter-static';
2
+
3
+ export default {
4
+ kit: {
5
+ adapter: adapter({
6
+ pages: 'build',
7
+ assets: 'build',
8
+ fallback: 'index.html',
9
+ precompress: false,
10
+ strict: true
11
+ })
12
+ }
13
+ };
@@ -0,0 +1,22 @@
1
+ from component.app import app
2
+ from component.app_state import app_state
3
+ from component.messagebus import consumer, publisher
4
+
5
+ app_state.set_liveness(True)
6
+ messages = []
7
+
8
+
9
+ @consumer.register('coba')
10
+ async def handle_event(message):
11
+ messages.append(message)
12
+ print(messages)
13
+
14
+
15
+ @app.get('/api/get')
16
+ def handle_get():
17
+ return messages
18
+
19
+
20
+ @app.get('/api/send')
21
+ async def handle_send():
22
+ return await publisher.publish('coba', 'sesuatu')
@@ -71,8 +71,9 @@ class BaseTask(TaskModel):
71
71
  self.checkers = checkers
72
72
  self.checking_interval = checking_interval
73
73
  self.skip_execution = skip_execution
74
- self._is_checked: bool = False
75
- self._is_executed: bool = False
74
+ self._is_check_triggered: bool = False
75
+ self._is_execution_triggered: bool = False
76
+ self._is_execution_started: bool = False
76
77
  self._run_function: Optional[Callable[..., Any]] = run
77
78
  self._args: List[Any] = []
78
79
  self._kwargs: Mapping[str, Any] = {}
@@ -214,12 +215,12 @@ class BaseTask(TaskModel):
214
215
  print(colored(f'{colored_label}{colored_run_cmd}'), file=sys.stderr)
215
216
 
216
217
  async def _cached_check(self) -> bool:
217
- if self._is_checked:
218
+ if self._is_check_triggered:
218
219
  self.log_debug('Skip checking, because checking flag has been set')
219
220
  return True
220
221
  check_result = await self._check()
221
222
  if check_result:
222
- self._is_checked = True
223
+ self._is_check_triggered = True
223
224
  self.log_debug('Set checking flag to True')
224
225
  return check_result
225
226
 
@@ -232,6 +233,8 @@ class BaseTask(TaskModel):
232
233
  '''
233
234
  if len(self.checkers) == 0:
234
235
  return await self.check()
236
+ while not self._is_execution_started:
237
+ await asyncio.sleep(0.1)
235
238
  check_coroutines: Iterable[asyncio.Task] = []
236
239
  for checker_task in self.checkers:
237
240
  check_coroutines.append(
@@ -256,11 +259,11 @@ class BaseTask(TaskModel):
256
259
  return results[-1]
257
260
 
258
261
  async def _cached_run(self, *args: Any, **kwargs: Any) -> Any:
259
- if self._is_executed:
262
+ if self._is_execution_triggered:
260
263
  self.log_debug('Skip execution because execution flag is True')
261
264
  return
262
265
  self.log_debug('Set execution flag to True')
263
- self._is_executed = True
266
+ self._is_execution_triggered = True
264
267
  self.log_debug('Start running')
265
268
  # get upstream checker
266
269
  upstream_check_processes: Iterable[asyncio.Task] = []
@@ -270,6 +273,8 @@ class BaseTask(TaskModel):
270
273
  ))
271
274
  # wait all upstream checkers to complete
272
275
  await asyncio.gather(*upstream_check_processes)
276
+ # mark execution as started, so that checkers can start checking
277
+ self._is_execution_started = True
273
278
  if self.render_bool(self.skip_execution):
274
279
  self.log_info(
275
280
  f'Skip execution because config: {self.skip_execution}'
File without changes
@@ -1,16 +0,0 @@
1
- import adapter from '@sveltejs/adapter-static';
2
-
3
- /** @type {import('@sveltejs/kit').Config} */
4
- const config = {
5
- kit: {
6
- adapter: adapter({
7
- pages: 'build',
8
- assets: 'build',
9
- fallback: null,
10
- precompress: false,
11
- strict: true
12
- })
13
- }
14
- };
15
-
16
- export default config;
@@ -1,38 +0,0 @@
1
- from component.app import app
2
- from component.app_state import app_state
3
- from component.log import logger
4
- from component.messagebus import consumer, publisher
5
- from config import app_name, app_enable_message_consumer
6
- from helper.async_task import create_task
7
-
8
- app_state.set_liveness(True)
9
- messages = []
10
-
11
-
12
- async def on_error(exception: Exception):
13
- logger.critical(exception)
14
- app_state.set_readiness(False)
15
-
16
-
17
- @app.on_event('startup')
18
- async def startup_event():
19
- logger.info(f'{app_name} started')
20
- if app_enable_message_consumer:
21
- create_task(consumer.run(), on_error=on_error)
22
- app_state.set_readiness(True)
23
-
24
-
25
- @consumer.register('coba')
26
- async def handle_event(message):
27
- messages.append(message)
28
- print(messages)
29
-
30
-
31
- @app.get('/api/get')
32
- def handle_get():
33
- return messages
34
-
35
-
36
- @app.get('/api/send')
37
- async def handle_send():
38
- return await publisher.publish('coba', 'sesuatu')
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes