zrb 0.24.0__py3-none-any.whl → 0.26.2__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 (194) hide show
  1. zrb/action/runner.py +8 -5
  2. zrb/advertisement.py +1 -2
  3. zrb/builtin/__init__.py +4 -0
  4. zrb/builtin/base64/decode.py +1 -1
  5. zrb/builtin/base64/encode.py +1 -1
  6. zrb/builtin/devtool/install/_helper.py +2 -1
  7. zrb/builtin/docker/prune.py +11 -3
  8. zrb/builtin/env/get.py +3 -2
  9. zrb/builtin/eval.py +2 -1
  10. zrb/builtin/git/get_file_changes.py +2 -1
  11. zrb/builtin/md5/hash.py +1 -1
  12. zrb/builtin/md5/sum.py +1 -1
  13. zrb/builtin/monorepo/__init__.py +7 -0
  14. zrb/builtin/monorepo/_common.sh +15 -0
  15. zrb/builtin/monorepo/_config.py +11 -0
  16. zrb/builtin/monorepo/_group.py +3 -0
  17. zrb/builtin/monorepo/_helper.py +140 -0
  18. zrb/builtin/monorepo/_task.py +126 -0
  19. zrb/builtin/monorepo/add-subrepo.sh +22 -0
  20. zrb/builtin/monorepo/add.py +48 -0
  21. zrb/builtin/monorepo/pull-monorepo.sh +18 -0
  22. zrb/builtin/monorepo/pull-subrepo.sh +18 -0
  23. zrb/builtin/monorepo/pull.py +24 -0
  24. zrb/builtin/monorepo/push-monorepo.sh +18 -0
  25. zrb/builtin/monorepo/push-subrepo.sh +18 -0
  26. zrb/builtin/monorepo/push.py +24 -0
  27. zrb/builtin/project/_helper.py +3 -3
  28. zrb/builtin/project/_input.py +2 -2
  29. zrb/builtin/project/add/app/generator/generator.py +1 -1
  30. 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
  31. 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
  32. 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 +1 -1
  33. 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
  34. 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
  35. zrb/builtin/project/add/app/python/python.py +1 -1
  36. zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/remove.py +1 -1
  37. zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/start.py +1 -1
  38. zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/stop.py +1 -1
  39. zrb/builtin/project/add/app/python/template/src/kebab-zrb-app-name/docker-compose.yml +0 -2
  40. zrb/builtin/project/add/fastapp/app/app.py +3 -1
  41. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_helper.py +1 -1
  42. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_service_config.py +1 -1
  43. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/_helper.py +2 -2
  44. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/_helper.py +2 -2
  45. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/stop.py +2 -0
  46. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/_helper.py +5 -3
  47. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/frontend/build-once.sh +1 -1
  48. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/frontend/build.sh +1 -1
  49. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/_helper.py +3 -5
  50. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/start.py +3 -3
  51. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/{start_microservices.py → start_services.py} +2 -3
  52. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/.generator-version +1 -0
  53. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/deployment/_common.py +5 -5
  54. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/deployment/app_helper.py +5 -5
  55. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/docker-compose.yml +2 -2
  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 +3 -4
  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/module/auth/component/access_token/scheme.py +2 -1
  75. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/component/access_token/util.py +2 -1
  76. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/group/repo.py +2 -1
  77. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/group/rpc.py +2 -1
  78. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/rpc.py +2 -1
  79. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/api.py +2 -1
  80. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/model.py +3 -2
  81. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/repo.py +3 -2
  82. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/rpc.py +3 -2
  83. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/register_permission.py +2 -2
  84. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/group.py +3 -5
  85. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/permission.py +1 -3
  86. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/request.py +1 -3
  87. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/user.py +5 -7
  88. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/entity/activity/event.py +2 -1
  89. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/entity/activity/rpc.py +2 -1
  90. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/schema/activity.py +1 -3
  91. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_group_crud.py +1 -1
  92. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_permission_crud.py +1 -1
  93. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_user_crud.py +1 -1
  94. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_user_login.py +1 -1
  95. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/test_liveness_and_readiness.py +1 -1
  96. zrb/builtin/project/add/fastapp/crud/_task_factory.py +1 -2
  97. zrb/builtin/project/add/fastapp/crud/crud.py +1 -1
  98. zrb/builtin/project/add/fastapp/crud/nodejs/codemod/package-lock.json +3 -3
  99. 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
  100. zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/schema/snake_zrb_entity_name.py +2 -2
  101. zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/test/snake_zrb_module_name/test_snake_zrb_entity_name.py +1 -1
  102. zrb/builtin/project/add/fastapp/field/field.py +1 -1
  103. zrb/builtin/project/add/fastapp/module/_helper/create_microservice_config.py +7 -8
  104. zrb/builtin/project/add/fastapp/module/module.py +1 -1
  105. zrb/builtin/project/add/plugin/plugin.py +1 -1
  106. zrb/builtin/project/add/project_task/add.py +1 -1
  107. zrb/builtin/project/add/project_task/template/_automate/_project/build.py +2 -1
  108. zrb/builtin/project/add/project_task/template/_automate/_project/container/remove.py +2 -1
  109. zrb/builtin/project/add/project_task/template/_automate/_project/container/start.py +2 -1
  110. zrb/builtin/project/add/project_task/template/_automate/_project/container/stop.py +2 -1
  111. zrb/builtin/project/add/project_task/template/_automate/_project/deploy.py +2 -1
  112. zrb/builtin/project/add/project_task/template/_automate/_project/destroy.py +2 -1
  113. zrb/builtin/project/add/project_task/template/_automate/_project/get_env.py +2 -1
  114. zrb/builtin/project/add/project_task/template/_automate/_project/image/build.py +2 -1
  115. zrb/builtin/project/add/project_task/template/_automate/_project/image/push.py +2 -1
  116. zrb/builtin/project/add/project_task/template/_automate/_project/publish.py +2 -1
  117. zrb/builtin/project/add/project_task/template/_automate/_project/start.py +2 -1
  118. zrb/builtin/project/add/task/cmd/add.py +1 -1
  119. zrb/builtin/project/add/task/docker_compose/add.py +1 -1
  120. zrb/builtin/project/add/task/docker_compose/template/src/kebab-zrb-task-name/docker-compose.yml +0 -2
  121. zrb/builtin/project/add/task/python/add.py +1 -1
  122. zrb/builtin/project/add/task/python/template/_automate/snake_zrb_task_name.py +1 -1
  123. zrb/builtin/project/create/_helper.py +1 -1
  124. zrb/builtin/project/create/create.py +1 -1
  125. zrb/builtin/say.py +3 -3
  126. zrb/builtin/version.py +2 -1
  127. zrb/config/config.py +12 -2
  128. zrb/helper/accessories/color.py +2 -1
  129. zrb/helper/advertisement.py +2 -1
  130. zrb/helper/asyncio_task.py +26 -0
  131. zrb/helper/callable.py +2 -1
  132. zrb/helper/cli.py +16 -3
  133. zrb/helper/codemod/add_import_module.py +3 -2
  134. zrb/helper/codemod/add_property_to_class.py +2 -1
  135. zrb/helper/default_env.py +2 -1
  136. zrb/helper/docker_compose/fetch_external_env.py +4 -2
  137. zrb/helper/docker_compose/file.py +3 -1
  138. zrb/helper/env_map/fetch.py +3 -2
  139. zrb/helper/file/copy_tree.py +2 -1
  140. zrb/helper/file/match.py +2 -2
  141. zrb/helper/git/detect_changes.py +1 -1
  142. zrb/helper/loader/load_module.py +7 -46
  143. zrb/helper/loader/load_script.py +57 -0
  144. zrb/helper/map/conversion.py +3 -1
  145. zrb/helper/string/jinja.py +2 -1
  146. zrb/helper/string/parse_replacement.py +1 -1
  147. zrb/helper/typing.py +5 -27
  148. zrb/helper/util.py +1 -1
  149. zrb/task/any_task.py +9 -17
  150. zrb/task/any_task_event_handler.py +3 -1
  151. zrb/task/base_remote_cmd_task.py +3 -10
  152. zrb/task/base_task/base_task.py +12 -8
  153. zrb/task/base_task/component/base_task_model.py +6 -13
  154. zrb/task/base_task/component/common_task_model.py +15 -22
  155. zrb/task/base_task/component/renderer.py +3 -1
  156. zrb/task/base_task/component/trackers.py +1 -1
  157. zrb/task/checker.py +2 -1
  158. zrb/task/cmd_task.py +6 -18
  159. zrb/task/decorator.py +3 -1
  160. zrb/task/docker_compose_start_task.py +27 -32
  161. zrb/task/docker_compose_task.py +27 -35
  162. zrb/task/flow_task.py +19 -18
  163. zrb/task/http_checker.py +3 -9
  164. zrb/task/looper.py +4 -2
  165. zrb/task/notifier.py +3 -1
  166. zrb/task/parallel.py +4 -4
  167. zrb/task/path_checker.py +6 -12
  168. zrb/task/path_watcher.py +5 -13
  169. zrb/task/port_checker.py +3 -9
  170. zrb/task/recurring_task.py +5 -4
  171. zrb/task/remote_cmd_task.py +2 -1
  172. zrb/task/resource_maker.py +6 -13
  173. zrb/task/rsync_task.py +3 -1
  174. zrb/task/server.py +13 -12
  175. zrb/task/time_watcher.py +3 -10
  176. zrb/task/watcher.py +2 -1
  177. zrb/task/wiki_task.py +4 -3
  178. zrb/task_env/env.py +2 -1
  179. zrb/task_env/env_file.py +7 -6
  180. zrb/task_group/group.py +8 -7
  181. zrb/task_input/any_input.py +4 -3
  182. zrb/task_input/base_input.py +5 -3
  183. zrb/task_input/bool_input.py +2 -1
  184. zrb/task_input/choice_input.py +3 -1
  185. zrb/task_input/float_input.py +2 -1
  186. zrb/task_input/int_input.py +2 -1
  187. zrb/task_input/multiline_input.py +3 -1
  188. zrb/task_input/password_input.py +2 -1
  189. zrb/task_input/str_input.py +2 -1
  190. {zrb-0.24.0.dist-info → zrb-0.26.2.dist-info}/METADATA +1 -1
  191. {zrb-0.24.0.dist-info → zrb-0.26.2.dist-info}/RECORD +194 -176
  192. {zrb-0.24.0.dist-info → zrb-0.26.2.dist-info}/LICENSE +0 -0
  193. {zrb-0.24.0.dist-info → zrb-0.26.2.dist-info}/WHEEL +0 -0
  194. {zrb-0.24.0.dist-info → zrb-0.26.2.dist-info}/entry_points.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  import asyncio
2
2
  import inspect
3
- from typing import Awaitable, Callable
3
+ from collections.abc import Awaitable, Callable
4
4
 
5
5
 
6
6
  def create_task(awaitable: Awaitable, on_error: Callable) -> asyncio.Task:
@@ -1,4 +1,5 @@
1
- from typing import Callable, Optional
1
+ from collections.abc import Callable
2
+ from typing import Optional
2
3
 
3
4
  from fastapi import Depends
4
5
  from fastapi.security import OAuth2PasswordBearer
@@ -1,6 +1,7 @@
1
1
  from abc import ABC, abstractmethod
2
+ from collections.abc import Mapping
2
3
  from datetime import datetime, timedelta
3
- from typing import Any, Mapping
4
+ from typing import Any
4
5
 
5
6
  import jsons
6
7
  from component.error import HTTPAPIException
@@ -1,5 +1,6 @@
1
1
  from abc import ABC
2
- from typing import Any, Mapping
2
+ from collections.abc import Mapping
3
+ from typing import Any
3
4
 
4
5
  from component.repo import DBEntityMixin, DBRepo, Repo
5
6
  from module.auth.entity.permission.repo import DBEntityPermission
@@ -1,5 +1,6 @@
1
+ from collections.abc import Mapping
1
2
  from logging import Logger
2
- from typing import Any, Mapping
3
+ from typing import Any
3
4
 
4
5
  from component.messagebus import Publisher
5
6
  from component.repo import SearchFilter
@@ -1,5 +1,6 @@
1
+ from collections.abc import Mapping
1
2
  from logging import Logger
2
- from typing import Any, Mapping
3
+ from typing import Any
3
4
 
4
5
  from component.messagebus import Publisher
5
6
  from component.repo import SearchFilter
@@ -1,5 +1,6 @@
1
+ from collections.abc import Mapping
1
2
  from logging import Logger
2
- from typing import Annotated, List, Mapping
3
+ from typing import Annotated
3
4
 
4
5
  from component.error import HTTPAPIException
5
6
  from component.messagebus import Publisher
@@ -1,4 +1,5 @@
1
- from typing import List, Mapping, Optional
1
+ from collections.abc import Mapping
2
+ from typing import Optional
2
3
 
3
4
  from component.messagebus.messagebus import Publisher
4
5
  from module.auth.component import AccessTokenUtil, RefreshTokenUtil
@@ -81,7 +82,7 @@ class UserModel(HistoricalRepoModel[User, UserData, UserResult]):
81
82
  for permission_name in permission_names
82
83
  }
83
84
 
84
- def _get_permission_names(self, user: User) -> List[str]:
85
+ def _get_permission_names(self, user: User) -> list[str]:
85
86
  permission_names = [permission.name for permission in user.permissions]
86
87
  for group in user.groups:
87
88
  additional_permission_names = [
@@ -1,6 +1,7 @@
1
1
  import logging
2
2
  from abc import ABC, abstractmethod
3
- from typing import Any, List, Mapping
3
+ from collections.abc import Mapping
4
+ from typing import Any
4
5
 
5
6
  from component.repo import DBEntityMixin, DBRepo, Repo
6
7
  from module.auth.component import PasswordHasher
@@ -46,7 +47,7 @@ class UserDBRepo(DBRepo[User, UserData], UserRepo):
46
47
 
47
48
  async def get_by_user_login(self, user_login: UserLogin) -> User:
48
49
  db = self._get_db_session()
49
- db_users: List[DBEntityUser] = []
50
+ db_users: list[DBEntityUser] = []
50
51
  try:
51
52
  search_filter = or_(
52
53
  DBEntityUser.username == user_login.identity,
@@ -1,5 +1,6 @@
1
+ from collections.abc import Mapping
1
2
  from logging import Logger
2
- from typing import Any, List, Mapping, Union
3
+ from typing import Any, Union
3
4
 
4
5
  from component.messagebus import Publisher
5
6
  from component.repo import SearchFilter
@@ -30,7 +31,7 @@ def register_rpc(
30
31
 
31
32
  @rpc_server.register("auth_is_user_authorized")
32
33
  async def is_user_having_permission(
33
- id: str, permission_name: Union[str, List[str]]
34
+ id: str, permission_name: Union[str, list[str]]
34
35
  ) -> Mapping[str, bool]:
35
36
  """
36
37
  Used by RPC Authenticator
@@ -1,4 +1,4 @@
1
- from typing import List, Optional
1
+ from typing import Optional
2
2
 
3
3
  from module.auth.integration.model.permission_model import permission_model
4
4
  from module.auth.schema.permission import PermissionData
@@ -14,7 +14,7 @@ ACTION_DESCRIPTION = {
14
14
 
15
15
 
16
16
  async def ensure_entity_permission(
17
- module_name: str, entity_name: str, action_names: Optional[List[str]] = None
17
+ module_name: str, entity_name: str, action_names: Optional[list[str]] = None
18
18
  ):
19
19
  if action_names is None:
20
20
  action_names = DEFAULT_ACTION_NAMES
@@ -1,5 +1,3 @@
1
- from typing import List
2
-
3
1
  from component.schema import BaseCountSchema, BaseDateTimeSchema
4
2
  from module.auth.schema.permission import Permission
5
3
 
@@ -10,7 +8,7 @@ class GroupBase(BaseDateTimeSchema):
10
8
 
11
9
 
12
10
  class GroupData(GroupBase):
13
- permissions: List[str]
11
+ permissions: list[str]
14
12
 
15
13
 
16
14
  class Group(GroupBase):
@@ -18,8 +16,8 @@ class Group(GroupBase):
18
16
  from_attributes = True
19
17
 
20
18
  id: str
21
- permissions: List[Permission] = []
19
+ permissions: list[Permission] = []
22
20
 
23
21
 
24
22
  class GroupResult(BaseCountSchema):
25
- data: List[Group]
23
+ data: list[Group]
@@ -1,5 +1,3 @@
1
- from typing import List
2
-
3
1
  from component.schema import BaseCountSchema, BaseDateTimeSchema
4
2
 
5
3
 
@@ -16,4 +14,4 @@ class Permission(PermissionData):
16
14
 
17
15
 
18
16
  class PermissionResult(BaseCountSchema):
19
- data: List[Permission]
17
+ data: list[Permission]
@@ -1,5 +1,3 @@
1
- from typing import List
2
-
3
1
  from pydantic import BaseModel
4
2
 
5
3
 
@@ -8,4 +6,4 @@ class RefreshTokenRequest(BaseModel):
8
6
 
9
7
 
10
8
  class IsAuthorizedRequest(BaseModel):
11
- permission_names: List[str]
9
+ permission_names: list[str]
@@ -1,5 +1,3 @@
1
- from typing import List
2
-
3
1
  from component.schema import BaseCountSchema, BaseDateTimeSchema
4
2
  from module.auth.schema.group import Group
5
3
  from module.auth.schema.permission import Permission
@@ -11,8 +9,8 @@ class UserBase(BaseDateTimeSchema):
11
9
  phone: str
12
10
  email: str
13
11
  description: str
14
- groups: List[str]
15
- permissions: List[str]
12
+ groups: list[str]
13
+ permissions: list[str]
16
14
 
17
15
 
18
16
  class UserData(UserBase):
@@ -21,15 +19,15 @@ class UserData(UserBase):
21
19
 
22
20
  class User(UserBase):
23
21
  id: str
24
- permissions: List[Permission] = []
25
- groups: List[Group] = []
22
+ permissions: list[Permission] = []
23
+ groups: list[Group] = []
26
24
 
27
25
  class Config:
28
26
  from_attributes = True
29
27
 
30
28
 
31
29
  class UserResult(BaseCountSchema):
32
- data: List[User]
30
+ data: list[User]
33
31
 
34
32
 
35
33
  class UserLogin(BaseModel):
@@ -1,5 +1,6 @@
1
+ from collections.abc import Mapping
1
2
  from logging import Logger
2
- from typing import Any, Mapping
3
+ from typing import Any
3
4
 
4
5
  from component.messagebus import Consumer, Publisher
5
6
  from component.rpc import Caller
@@ -1,5 +1,6 @@
1
+ from collections.abc import Mapping
1
2
  from logging import Logger
2
- from typing import Any, Mapping
3
+ from typing import Any
3
4
 
4
5
  from component.messagebus import Publisher
5
6
  from component.repo import SearchFilter
@@ -1,5 +1,3 @@
1
- from typing import List
2
-
3
1
  from component.schema import BaseCountSchema, BaseDateTimeSchema
4
2
 
5
3
 
@@ -17,4 +15,4 @@ class Activity(ActivityData):
17
15
 
18
16
 
19
17
  class ActivityResult(BaseCountSchema):
20
- data: List[Activity]
18
+ data: list[Activity]
@@ -1,4 +1,4 @@
1
- from typing import AsyncIterator
1
+ from collections.abc import AsyncIterator
2
2
 
3
3
  import pytest
4
4
  from httpx import AsyncClient
@@ -1,4 +1,4 @@
1
- from typing import AsyncIterator
1
+ from collections.abc import AsyncIterator
2
2
 
3
3
  import pytest
4
4
  from httpx import AsyncClient
@@ -1,4 +1,4 @@
1
- from typing import AsyncIterator
1
+ from collections.abc import AsyncIterator
2
2
 
3
3
  import pytest
4
4
  from httpx import AsyncClient
@@ -1,4 +1,4 @@
1
- from typing import AsyncIterator
1
+ from collections.abc import AsyncIterator
2
2
 
3
3
  import pytest
4
4
  from httpx import AsyncClient
@@ -1,4 +1,4 @@
1
- from typing import AsyncIterator
1
+ from collections.abc import AsyncIterator
2
2
 
3
3
  import pytest
4
4
  from httpx import AsyncClient
@@ -5,7 +5,6 @@ from zrb.builtin.project.add.fastapp.app._input import app_name_input
5
5
  from zrb.builtin.project.add.fastapp.crud._input import entity_name_input
6
6
  from zrb.builtin.project.add.fastapp.module._input import module_name_input
7
7
  from zrb.helper.typecheck import typechecked
8
- from zrb.helper.typing import List
9
8
  from zrb.task.any_task import AnyTask
10
9
  from zrb.task.cmd_task import CmdTask
11
10
 
@@ -20,7 +19,7 @@ _NAV_PERMISSION = "{{util.to_snake_case(input.module_name)}}:{{util.to_snake_cas
20
19
 
21
20
 
22
21
  @typechecked
23
- def create_add_navigation_task(upstreams: List[AnyTask]) -> AnyTask:
22
+ def create_add_navigation_task(upstreams: list[AnyTask]) -> AnyTask:
24
23
  return CmdTask(
25
24
  name="add-navigation",
26
25
  inputs=[
@@ -1,5 +1,6 @@
1
1
  import asyncio
2
2
  import os
3
+ from typing import Any
3
4
 
4
5
  from zrb.builtin.project._helper import validate_existing_project_dir
5
6
  from zrb.builtin.project._input import project_dir_input
@@ -21,7 +22,6 @@ from zrb.builtin.project.add.fastapp.crud._task_factory import (
21
22
  from zrb.builtin.project.add.fastapp.module._input import module_name_input
22
23
  from zrb.helper import util
23
24
  from zrb.helper.accessories.color import colored
24
- from zrb.helper.typing import Any
25
25
  from zrb.runner import runner
26
26
  from zrb.task.cmd_task import CmdTask
27
27
  from zrb.task.decorator import python_task
@@ -178,9 +178,9 @@
178
178
  }
179
179
  },
180
180
  "node_modules/micromatch": {
181
- "version": "4.0.7",
182
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
183
- "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
181
+ "version": "4.0.8",
182
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
183
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
184
184
  "dependencies": {
185
185
  "braces": "^3.0.3",
186
186
  "picomatch": "^2.3.1"
@@ -1,5 +1,6 @@
1
+ from collections.abc import Mapping
1
2
  from logging import Logger
2
- from typing import Any, Mapping
3
+ from typing import Any
3
4
 
4
5
  from component.messagebus import Publisher
5
6
  from component.repo import SearchFilter
@@ -1,5 +1,5 @@
1
1
  from datetime import date, datetime, time
2
- from typing import List, Optional
2
+ from typing import Optional
3
3
 
4
4
  from component.schema import BaseCountSchema, BaseDateTimeSchema
5
5
 
@@ -16,4 +16,4 @@ class PascalZrbEntityName(PascalZrbEntityNameData):
16
16
 
17
17
 
18
18
  class PascalZrbEntityNameResult(BaseCountSchema):
19
- data: List[PascalZrbEntityName]
19
+ data: list[PascalZrbEntityName]
@@ -1,5 +1,5 @@
1
+ from collections.abc import AsyncIterator
1
2
  from datetime import date, datetime, time
2
- from typing import AsyncIterator
3
3
 
4
4
  import pytest
5
5
  from config import APP_AUTH_ADMIN_PASSWORD, APP_AUTH_ADMIN_USERNAME
@@ -1,5 +1,6 @@
1
1
  import asyncio
2
2
  import os
3
+ from typing import Any
3
4
 
4
5
  from zrb.builtin.project._helper import validate_existing_project_dir
5
6
  from zrb.builtin.project._input import project_dir_input
@@ -23,7 +24,6 @@ from zrb.builtin.project.add.fastapp.field._input import (
23
24
  from zrb.builtin.project.add.fastapp.module._input import module_name_input
24
25
  from zrb.helper import util
25
26
  from zrb.helper.accessories.color import colored
26
- from zrb.helper.typing import Any
27
27
  from zrb.runner import runner
28
28
  from zrb.task.decorator import python_task
29
29
  from zrb.task.task import Task
@@ -1,5 +1,7 @@
1
1
  import asyncio
2
2
  import os
3
+ from collections.abc import Mapping
4
+ from typing import Any
3
5
 
4
6
  import jsons
5
7
  from dotenv import dotenv_values
@@ -11,7 +13,6 @@ from zrb.helper.file.text import (
11
13
  write_text_file_async,
12
14
  )
13
15
  from zrb.helper.typecheck import typechecked
14
- from zrb.helper.typing import Any, List, Mapping
15
16
  from zrb.helper.util import to_kebab_case, to_snake_case
16
17
  from zrb.task.task import Task
17
18
 
@@ -37,7 +38,7 @@ async def create_microservice_config(
37
38
 
38
39
  @typechecked
39
40
  async def _add_docker_compose_service(
40
- task: Task, modules: List[str], project_dir: str, app_name: str, module_name: str
41
+ task: Task, modules: list[str], project_dir: str, app_name: str, module_name: str
41
42
  ):
42
43
  kebab_app_name = to_kebab_case(app_name)
43
44
  snake_module_name = to_snake_case(module_name)
@@ -50,11 +51,9 @@ async def _add_docker_compose_service(
50
51
  app_container_port_env_name = f"APP_{upper_snake_module_name}_MODULE_PORT"
51
52
  app_container_port_env = (
52
53
  "${" + app_container_port_env_name + ":-" + module_app_port_str + "}"
53
- ) # noqa
54
+ )
54
55
  app_host_port_env_name = f"APP_{upper_snake_module_name}_HOST_MODULE_PORT"
55
- app_host_port_env = (
56
- "${" + app_host_port_env_name + ":-" + module_app_port_str + "}"
57
- ) # noqa
56
+ app_host_port_env = "${" + app_host_port_env_name + ":-" + module_app_port_str + "}"
58
57
  service_definition = _get_new_docker_compose_service_definition(
59
58
  app_name=app_name,
60
59
  module_name=module_name,
@@ -127,7 +126,7 @@ async def _create_automation_json_config(
127
126
  task.print_out(f"Read json config from: {json_modules_file_path}")
128
127
  json_str = await read_text_file_async(json_modules_file_path)
129
128
  task.print_out(f'Add "{snake_module_name}" to json config')
130
- modules: List[str] = jsons.loads(json_str)
129
+ modules: list[str] = jsons.loads(json_str)
131
130
  modules.append(snake_module_name)
132
131
  json_str = jsons.dumps(modules)
133
132
  task.print_out(f"Write new json config to: {json_modules_file_path}")
@@ -137,7 +136,7 @@ async def _create_automation_json_config(
137
136
 
138
137
  @typechecked
139
138
  async def _append_compose_env(
140
- task: Task, modules: List[str], project_dir: str, app_name: str, module_name: str
139
+ task: Task, modules: list[str], project_dir: str, app_name: str, module_name: str
141
140
  ):
142
141
  kebab_app_name = to_kebab_case(app_name)
143
142
  snake_module_name = to_snake_case(module_name)
@@ -1,5 +1,6 @@
1
1
  import asyncio
2
2
  import os
3
+ from typing import Any
3
4
 
4
5
  from zrb.builtin.project._helper import validate_existing_project_dir
5
6
  from zrb.builtin.project._input import project_dir_input
@@ -18,7 +19,6 @@ from zrb.builtin.project.add.fastapp.module._helper import (
18
19
  from zrb.builtin.project.add.fastapp.module._input import module_name_input
19
20
  from zrb.helper import util
20
21
  from zrb.helper.accessories.color import colored
21
- from zrb.helper.typing import Any
22
22
  from zrb.runner import runner
23
23
  from zrb.task.decorator import python_task
24
24
  from zrb.task.resource_maker import ResourceMaker
@@ -1,4 +1,5 @@
1
1
  import os
2
+ from typing import Any
2
3
 
3
4
  from zrb.builtin.project._helper import (
4
5
  create_register_module,
@@ -19,7 +20,6 @@ from zrb.builtin.project.add.plugin._input import (
19
20
  from zrb.builtin.project.add.project_task import add_project_tasks
20
21
  from zrb.config.config import VERSION
21
22
  from zrb.helper.accessories.color import colored
22
- from zrb.helper.typing import Any
23
23
  from zrb.runner import runner
24
24
  from zrb.task.decorator import python_task
25
25
  from zrb.task.resource_maker import ResourceMaker
@@ -1,11 +1,11 @@
1
1
  import os
2
+ from typing import Any
2
3
 
3
4
  from zrb.builtin.project._input import project_dir_input
4
5
  from zrb.helper.codemod.add_assert_resource import add_assert_resource
5
6
  from zrb.helper.codemod.add_import_module import add_import_module
6
7
  from zrb.helper.file.copy_tree import copy_tree
7
8
  from zrb.helper.file.text import read_text_file_async, write_text_file_async
8
- from zrb.helper.typing import Any
9
9
  from zrb.task.decorator import python_task
10
10
  from zrb.task.task import Task
11
11
 
@@ -1,7 +1,8 @@
1
+ from typing import Any
2
+
1
3
  from zrb import Task, python_task, runner
2
4
  from zrb.builtin import project_group
3
5
  from zrb.helper.accessories.color import colored
4
- from zrb.helper.typing import Any
5
6
 
6
7
 
7
8
  @python_task(
@@ -1,6 +1,7 @@
1
+ from typing import Any
2
+
1
3
  from zrb import Task, python_task, runner
2
4
  from zrb.helper.accessories.color import colored
3
- from zrb.helper.typing import Any
4
5
 
5
6
  from ._group import project_container_group
6
7
 
@@ -1,6 +1,7 @@
1
+ from typing import Any
2
+
1
3
  from zrb import Task, python_task, runner
2
4
  from zrb.helper.accessories.color import colored
3
- from zrb.helper.typing import Any
4
5
 
5
6
  from ._group import project_container_group
6
7
 
@@ -1,6 +1,7 @@
1
+ from typing import Any
2
+
1
3
  from zrb import Task, python_task, runner
2
4
  from zrb.helper.accessories.color import colored
3
- from zrb.helper.typing import Any
4
5
 
5
6
  from ._group import project_container_group
6
7
 
@@ -1,7 +1,8 @@
1
+ from typing import Any
2
+
1
3
  from zrb import Task, python_task, runner
2
4
  from zrb.builtin import project_group
3
5
  from zrb.helper.accessories.color import colored
4
- from zrb.helper.typing import Any
5
6
 
6
7
 
7
8
  @python_task(
@@ -1,7 +1,8 @@
1
+ from typing import Any
2
+
1
3
  from zrb import Task, python_task, runner
2
4
  from zrb.builtin import project_group
3
5
  from zrb.helper.accessories.color import colored
4
- from zrb.helper.typing import Any
5
6
 
6
7
 
7
8
  @python_task(
@@ -1,7 +1,8 @@
1
+ from typing import Any
2
+
1
3
  from zrb import BoolInput, python_task, runner
2
4
  from zrb.builtin import project_group
3
5
  from zrb.helper.env_map.fetch import fetch_env_map_from_group
4
- from zrb.helper.typing import Any, Mapping
5
6
 
6
7
 
7
8
  @python_task(
@@ -1,6 +1,7 @@
1
+ from typing import Any
2
+
1
3
  from zrb import Task, python_task, runner
2
4
  from zrb.helper.accessories.color import colored
3
- from zrb.helper.typing import Any
4
5
 
5
6
  from ._group import project_image_group
6
7
 
@@ -1,6 +1,7 @@
1
+ from typing import Any
2
+
1
3
  from zrb import Task, python_task, runner
2
4
  from zrb.helper.accessories.color import colored
3
- from zrb.helper.typing import Any
4
5
 
5
6
  from ._group import project_image_group
6
7
 
@@ -1,7 +1,8 @@
1
+ from typing import Any
2
+
1
3
  from zrb import Task, python_task, runner
2
4
  from zrb.builtin import project_group
3
5
  from zrb.helper.accessories.color import colored
4
- from zrb.helper.typing import Any
5
6
 
6
7
 
7
8
  @python_task(
@@ -1,7 +1,8 @@
1
+ from typing import Any
2
+
1
3
  from zrb import Task, python_task, runner
2
4
  from zrb.builtin import project_group
3
5
  from zrb.helper.accessories.color import colored
4
- from zrb.helper.typing import Any
5
6
 
6
7
 
7
8
  @python_task(
@@ -1,4 +1,5 @@
1
1
  import os
2
+ from typing import Any
2
3
 
3
4
  from zrb.builtin.project._helper import (
4
5
  create_register_module,
@@ -8,7 +9,6 @@ from zrb.builtin.project._helper import (
8
9
  from zrb.builtin.project._input import project_dir_input
9
10
  from zrb.builtin.project.add.task._group import project_add_task_group
10
11
  from zrb.builtin.project.add.task._input import task_name_input
11
- from zrb.helper.typing import Any
12
12
  from zrb.runner import runner
13
13
  from zrb.task.decorator import python_task
14
14
  from zrb.task.resource_maker import ResourceMaker
@@ -1,4 +1,5 @@
1
1
  import os
2
+ from typing import Any
2
3
 
3
4
  from zrb.builtin.project._helper import (
4
5
  create_register_module,
@@ -12,7 +13,6 @@ from zrb.builtin.project.add.task.docker_compose._input import (
12
13
  compose_command_input,
13
14
  http_port_input,
14
15
  )
15
- from zrb.helper.typing import Any
16
16
  from zrb.runner import runner
17
17
  from zrb.task.decorator import python_task
18
18
  from zrb.task.resource_maker import ResourceMaker
@@ -1,5 +1,3 @@
1
- version: '3'
2
-
3
1
  x-logging: &default-logging
4
2
  options:
5
3
  max-size: "100m"
@@ -1,4 +1,5 @@
1
1
  import os
2
+ from typing import Any
2
3
 
3
4
  from zrb.builtin.project._helper import (
4
5
  create_register_module,
@@ -8,7 +9,6 @@ from zrb.builtin.project._helper import (
8
9
  from zrb.builtin.project._input import project_dir_input
9
10
  from zrb.builtin.project.add.task._group import project_add_task_group
10
11
  from zrb.builtin.project.add.task._input import task_name_input
11
- from zrb.helper.typing import Any
12
12
  from zrb.runner import runner
13
13
  from zrb.task.decorator import python_task
14
14
  from zrb.task.resource_maker import ResourceMaker