zrb 0.19.0__py3-none-any.whl → 0.20.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 (26) hide show
  1. zrb/builtin/project/add/app/generator/generator.py +1 -0
  2. zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/_input.py +7 -4
  3. 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 -0
  4. zrb/builtin/project/add/app/python/python.py +1 -0
  5. zrb/builtin/project/add/fastapp/app/_input.py +8 -4
  6. zrb/builtin/project/add/fastapp/app/app.py +1 -0
  7. zrb/builtin/project/add/fastapp/crud/_input.py +1 -1
  8. zrb/builtin/project/add/fastapp/crud/crud.py +1 -0
  9. zrb/builtin/project/add/fastapp/field/field.py +1 -0
  10. zrb/builtin/project/add/plugin/plugin.py +5 -1
  11. zrb/builtin/project/add/task/cmd/add.py +1 -0
  12. zrb/builtin/project/add/task/docker_compose/add.py +1 -0
  13. zrb/builtin/project/add/task/python/add.py +1 -0
  14. zrb/task_input/base_input.py +34 -14
  15. zrb/task_input/bool_input.py +1 -1
  16. zrb/task_input/choice_input.py +1 -1
  17. zrb/task_input/float_input.py +1 -1
  18. zrb/task_input/int_input.py +1 -1
  19. zrb/task_input/multiline_input.py +1 -1
  20. zrb/task_input/password_input.py +1 -1
  21. zrb/task_input/str_input.py +1 -1
  22. {zrb-0.19.0.dist-info → zrb-0.20.0.dist-info}/METADATA +1 -1
  23. {zrb-0.19.0.dist-info → zrb-0.20.0.dist-info}/RECORD +26 -26
  24. {zrb-0.19.0.dist-info → zrb-0.20.0.dist-info}/LICENSE +0 -0
  25. {zrb-0.19.0.dist-info → zrb-0.20.0.dist-info}/WHEEL +0 -0
  26. {zrb-0.19.0.dist-info → zrb-0.20.0.dist-info}/entry_points.txt +0 -0
@@ -26,6 +26,7 @@ _CURRENT_DIR = os.path.dirname(__file__)
26
26
  @python_task(
27
27
  name="validate",
28
28
  inputs=[project_dir_input, package_name_input],
29
+ retry=0,
29
30
  )
30
31
  async def validate(*args: Any, **kwargs: Any):
31
32
  project_dir = kwargs.get("project_dir")
@@ -1,5 +1,6 @@
1
1
  import os
2
2
 
3
+ from zrb.helper.util import coalesce, to_kebab_case, to_snake_case
3
4
  from zrb.task_input.int_input import IntInput
4
5
  from zrb.task_input.str_input import StrInput
5
6
 
@@ -41,9 +42,9 @@ app_image_name_input = StrInput(
41
42
  name="app-image-name",
42
43
  description="App image name",
43
44
  prompt="App image name",
44
- default=app_image_default_namespace
45
- + "/"
46
- + "{{util.to_kebab_case(input.app_name)}}", # noqa
45
+ default=lambda m: "/".join(
46
+ [app_image_default_namespace, to_kebab_case(m.get("app_name"))]
47
+ ),
47
48
  )
48
49
 
49
50
  http_port_input = IntInput(
@@ -58,5 +59,7 @@ env_prefix_input = StrInput(
58
59
  name="env-prefix",
59
60
  description="OS environment prefix",
60
61
  prompt="OS environment prefix",
61
- default='{{util.to_snake_case(util.coalesce(input.app_name, input.task_name, "MY")).upper()}}', # noqa
62
+ default=lambda m: to_snake_case(
63
+ coalesce(m.get("app_name"), m.get("task_name"), "MY")
64
+ ).upper(),
62
65
  )
@@ -32,6 +32,7 @@ _snake_app_name_tpl = "{{util.to_snake_case(input.app_name)}}"
32
32
  @python_task(
33
33
  name="validate",
34
34
  inputs=[project_dir_input, app_name_input],
35
+ retry=0,
35
36
  )
36
37
  async def validate(*args: Any, **kwargs: Any):
37
38
  project_dir = kwargs.get("project_dir")
@@ -31,6 +31,7 @@ _snake_app_name_tpl = "{{util.to_snake_case(input.app_name)}}"
31
31
  @python_task(
32
32
  name="validate",
33
33
  inputs=[project_dir_input, app_name_input],
34
+ retry=0,
34
35
  )
35
36
  async def validate(*args: Any, **kwargs: Any):
36
37
  project_dir = kwargs.get("project_dir")
@@ -1,5 +1,6 @@
1
1
  import os
2
2
 
3
+ from zrb.helper.util import coalesce, to_kebab_case, to_snake_case
3
4
  from zrb.task_input.int_input import IntInput
4
5
  from zrb.task_input.str_input import StrInput
5
6
 
@@ -37,13 +38,14 @@ app_description_input = StrInput(
37
38
  app_image_default_namespace = os.getenv(
38
39
  "PROJECT_IMAGE_DEFAULT_NAMESPACE", "docker.io/" + SYSTEM_USER
39
40
  )
41
+
40
42
  app_image_name_input = StrInput(
41
43
  name="app-image-name",
42
44
  description="App image name",
43
45
  prompt="App image name",
44
- default=app_image_default_namespace
45
- + "/"
46
- + "{{util.to_kebab_case(input.app_name)}}", # noqa
46
+ default=lambda m: "/".join(
47
+ [app_image_default_namespace, to_kebab_case(m.get("app_name"))]
48
+ ),
47
49
  )
48
50
 
49
51
  http_port_input = IntInput(
@@ -58,5 +60,7 @@ env_prefix_input = StrInput(
58
60
  name="env-prefix",
59
61
  description="OS environment prefix",
60
62
  prompt="OS environment prefix",
61
- default='{{util.to_snake_case(util.coalesce(input.app_name, input.task_name, "MY")).upper()}}', # noqa
63
+ default=lambda m: to_snake_case(
64
+ coalesce(m.get("app_name"), m.get("task_name"), "MY")
65
+ ).upper(),
62
66
  )
@@ -35,6 +35,7 @@ _snake_app_name_tpl = "{{util.to_snake_case(input.app_name)}}"
35
35
  @python_task(
36
36
  name="validate",
37
37
  inputs=[project_dir_input, app_name_input],
38
+ retry=0,
38
39
  )
39
40
  async def validate(*args: Any, **kwargs: Any):
40
41
  project_dir = kwargs.get("project_dir")
@@ -12,7 +12,7 @@ plural_entity_name_input = StrInput(
12
12
  name="plural-entity-name",
13
13
  description="Plural entity name",
14
14
  prompt="Plural entity name",
15
- default="books",
15
+ default=lambda m: m.get("entity_name") + "s",
16
16
  )
17
17
 
18
18
  main_column_name_input = StrInput(
@@ -35,6 +35,7 @@ _CODEMOD_DIR = os.path.join(_CURRENT_DIR, "nodejs", "codemod")
35
35
  @python_task(
36
36
  name="validate",
37
37
  inputs=[project_dir_input, app_name_input, module_name_input, entity_name_input],
38
+ retry=0,
38
39
  )
39
40
  async def validate(*args: Any, **kwargs: Any):
40
41
  project_dir = kwargs.get("project_dir")
@@ -32,6 +32,7 @@ from zrb.task.task import Task
32
32
  @python_task(
33
33
  name="validate",
34
34
  inputs=[project_dir_input, app_name_input, module_name_input, entity_name_input],
35
+ retry=0,
35
36
  )
36
37
  async def validate(*args: Any, **kwargs: Any):
37
38
  project_dir = kwargs.get("project_dir")
@@ -28,7 +28,11 @@ from zrb.task.task import Task
28
28
  _CURRENT_DIR = os.path.dirname(__file__)
29
29
 
30
30
 
31
- @python_task(name="validate", inputs=[project_dir_input, package_name_input])
31
+ @python_task(
32
+ name="validate",
33
+ inputs=[project_dir_input, package_name_input],
34
+ retry=0,
35
+ )
32
36
  async def validate(*args: Any, **kwargs: Any):
33
37
  project_dir = kwargs.get("project_dir")
34
38
  validate_existing_project_dir(project_dir)
@@ -23,6 +23,7 @@ _CURRENT_DIR = os.path.dirname(__file__)
23
23
  project_dir_input,
24
24
  task_name_input,
25
25
  ],
26
+ retry=0,
26
27
  )
27
28
  async def validate(*args: Any, **kwargs: Any):
28
29
  project_dir = kwargs.get("project_dir")
@@ -27,6 +27,7 @@ _CURRENT_DIR = os.path.dirname(__file__)
27
27
  project_dir_input,
28
28
  task_name_input,
29
29
  ],
30
+ retry=0,
30
31
  )
31
32
  async def validate(*args: Any, **kwargs: Any):
32
33
  project_dir = kwargs.get("project_dir")
@@ -23,6 +23,7 @@ _CURRENT_DIR = os.path.dirname(__file__)
23
23
  project_dir_input,
24
24
  task_name_input,
25
25
  ],
26
+ retry=0,
26
27
  )
27
28
  async def validate(*args: Any, **kwargs: Any):
28
29
  project_dir = kwargs.get("project_dir")
@@ -1,6 +1,8 @@
1
1
  from zrb.config.config import show_prompt
2
2
  from zrb.helper.accessories.color import colored
3
3
  from zrb.helper.log import logger
4
+ from zrb.helper.string.conversion import to_variable_name
5
+ from zrb.helper.string.jinja import is_probably_jinja
4
6
  from zrb.helper.typecheck import typechecked
5
7
  from zrb.helper.typing import Any, Callable, List, Mapping, Optional, Union
6
8
  from zrb.task_input.any_input import AnyInput
@@ -54,8 +56,8 @@ class BaseInput(AnyInput):
54
56
  >>> )
55
57
  """
56
58
 
57
- __input_value_map: Mapping[str, Any] = {}
58
- __default: Mapping[str, Any] = {}
59
+ __value_cache: Mapping[str, Any] = {}
60
+ __default_cache: Mapping[str, Any] = {}
59
61
 
60
62
  def __init__(
61
63
  self,
@@ -64,7 +66,7 @@ class BaseInput(AnyInput):
64
66
  default: Optional[Union[Any, InputDefault]] = None,
65
67
  callback: Optional[InputCallback] = None,
66
68
  description: Optional[str] = None,
67
- show_default: Union[bool, str, None] = None,
69
+ show_default: Union[bool, str] = True,
68
70
  prompt: Union[bool, str] = True,
69
71
  confirmation_prompt: Union[bool, str] = False,
70
72
  prompt_required: bool = True,
@@ -90,7 +92,9 @@ class BaseInput(AnyInput):
90
92
  self._callback = callback
91
93
  self._help = description if description is not None else name
92
94
  self._type = type
93
- self._show_default = show_default
95
+ self._show_default = self.__get_calculated_show_default(
96
+ show_default, should_render, default
97
+ )
94
98
  self._confirmation_prompt = confirmation_prompt
95
99
  self._prompt_required = prompt_required
96
100
  self._hide_input = hide_input
@@ -105,10 +109,24 @@ class BaseInput(AnyInput):
105
109
  self._nargs = nargs
106
110
  self.__should_render = should_render
107
111
 
112
+ def __get_calculated_show_default(
113
+ self,
114
+ show_default: Union[bool, str, None],
115
+ should_render: bool,
116
+ default: Optional[Union[Any, InputDefault]],
117
+ ) -> str:
118
+ if show_default != True:
119
+ return show_default
120
+ if callable(default) or (should_render and is_probably_jinja(default)):
121
+ return colored("Autogenerated", color="yellow")
122
+ return f"{default}"
123
+
108
124
  def get_name(self) -> str:
109
125
  return self._name
110
126
 
111
127
  def get_default(self) -> Any:
128
+ if callable(self._default):
129
+ return self._default(self.__value_cache)
112
130
  return self._default
113
131
 
114
132
  def get_param_decl(self) -> List[str]:
@@ -142,24 +160,26 @@ class BaseInput(AnyInput):
142
160
  return options
143
161
 
144
162
  def _wrapped_callback(self, ctx, param, value) -> Any:
145
- if self.get_name() not in self.__input_value_map:
163
+ var_name = to_variable_name(self.get_name())
164
+ if var_name not in self.__value_cache:
146
165
  if callable(self._callback):
147
- result = self._callback(self.__input_value_map, value)
148
- self.__input_value_map[self.get_name()] = result
166
+ result = self._callback(self.__value_cache, value)
167
+ self.__value_cache[var_name] = result
149
168
  return result
150
- self.__input_value_map[self.get_name()] = value
169
+ self.__value_cache[var_name] = value
151
170
  return value
152
- return self.__input_value_map[self.get_name()]
171
+ return self.__value_cache[var_name]
153
172
 
154
173
  def _wrapped_default(self) -> Any:
155
- if self.get_name() not in self.__default:
174
+ var_name = to_variable_name(self.get_name())
175
+ if var_name not in self.__default_cache:
156
176
  if callable(self._default):
157
- default = self._default(self.__input_value_map)
158
- self.__default[self.get_name()] = default
177
+ default = self._default(self.__value_cache)
178
+ self.__default_cache[var_name] = default
159
179
  return default
160
- self.__default[self.get_name()] = self._default
180
+ self.__default_cache[var_name] = self._default
161
181
  return self._default
162
- return self.__default[self.get_name()]
182
+ return self.__default_cache[var_name]
163
183
 
164
184
  def should_render(self) -> bool:
165
185
  return self.__should_render
@@ -52,7 +52,7 @@ class BoolInput(BaseInput):
52
52
  default: Optional[Union[Any, InputDefault]] = None,
53
53
  callback: Optional[InputCallback] = None,
54
54
  description: Optional[str] = None,
55
- show_default: Union[bool, str, None] = None,
55
+ show_default: Union[bool, str] = True,
56
56
  prompt: Union[bool, str] = True,
57
57
  confirmation_prompt: Union[bool, str] = False,
58
58
  prompt_required: bool = True,
@@ -57,7 +57,7 @@ class ChoiceInput(BaseInput):
57
57
  default: Optional[Union[Any, InputDefault]] = None,
58
58
  callback: Optional[InputCallback] = None,
59
59
  description: Optional[str] = None,
60
- show_default: Union[bool, str, None] = None,
60
+ show_default: Union[bool, str] = True,
61
61
  prompt: Union[bool, str] = True,
62
62
  confirmation_prompt: Union[bool, str] = False,
63
63
  prompt_required: bool = True,
@@ -52,7 +52,7 @@ class FloatInput(BaseInput):
52
52
  default: Optional[Union[Any, InputDefault]] = None,
53
53
  callback: Optional[InputCallback] = None,
54
54
  description: Optional[str] = None,
55
- show_default: Union[bool, str, None] = None,
55
+ show_default: Union[bool, str] = True,
56
56
  prompt: Union[bool, str] = True,
57
57
  confirmation_prompt: Union[bool, str] = False,
58
58
  prompt_required: bool = True,
@@ -53,7 +53,7 @@ class IntInput(BaseInput):
53
53
  default: Optional[Union[Any, InputDefault]] = None,
54
54
  callback: Optional[InputCallback] = None,
55
55
  description: Optional[str] = None,
56
- show_default: Union[bool, str, None] = None,
56
+ show_default: Union[bool, str] = True,
57
57
  prompt: Union[bool, str] = True,
58
58
  confirmation_prompt: Union[bool, str] = False,
59
59
  prompt_required: bool = True,
@@ -59,7 +59,7 @@ class MultilineInput(BaseInput):
59
59
  default: Optional[Union[Any, InputDefault]] = None,
60
60
  callback: Optional[InputCallback] = None,
61
61
  description: Optional[str] = None,
62
- show_default: Union[bool, str, None] = None,
62
+ show_default: Union[bool, str] = True,
63
63
  prompt: Union[bool, str] = True,
64
64
  confirmation_prompt: Union[bool, str] = False,
65
65
  prompt_required: bool = True,
@@ -53,7 +53,7 @@ class PasswordInput(BaseInput):
53
53
  default: Optional[Union[Any, InputDefault]] = None,
54
54
  callback: Optional[InputCallback] = None,
55
55
  description: Optional[str] = None,
56
- show_default: Union[bool, str, None] = None,
56
+ show_default: Union[bool, str] = True,
57
57
  prompt: Union[bool, str] = True,
58
58
  confirmation_prompt: Union[bool, str] = False,
59
59
  prompt_required: bool = True,
@@ -53,7 +53,7 @@ class StrInput(BaseInput):
53
53
  default: Optional[Union[Any, InputDefault]] = None,
54
54
  callback: Optional[InputCallback] = None,
55
55
  description: Optional[str] = None,
56
- show_default: Union[bool, str, None] = None,
56
+ show_default: Union[bool, str] = True,
57
57
  prompt: Union[bool, str] = True,
58
58
  confirmation_prompt: Union[bool, str] = False,
59
59
  prompt_required: bool = True,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 0.19.0
3
+ Version: 0.20.0
4
4
  Summary: A Framework to Enhance Your Workflow
5
5
  Home-page: https://github.com/state-alchemists/zrb
6
6
  License: AGPL-3.0-or-later
@@ -103,10 +103,10 @@ zrb/builtin/project/add/app/_group.py,sha256=PZ6bTuINeTHdMaLKwjSO2eKBIfl5It7xGlo
103
103
  zrb/builtin/project/add/app/generator/__init__.py,sha256=xknJrqir2XpXXnKtNTE1lCXOQKVtOGyF3dnJiU7XGjU,104
104
104
  zrb/builtin/project/add/app/generator/_helper.py,sha256=eX0qrjuReCGZNPMowKd54k8X-PyREgsLU0WZPQ4-yow,549
105
105
  zrb/builtin/project/add/app/generator/_input.py,sha256=Do-bLbYwgGOm6gPvp8FzBgUdteVwssR17_0VK55F14s,774
106
- zrb/builtin/project/add/app/generator/generator.py,sha256=5B877i4q9ns1s28E7Rt9ZkEZ6rUl2W4rB_Z8qw0AFmQ,3470
106
+ zrb/builtin/project/add/app/generator/generator.py,sha256=cYWbHq8BLY3TSdergDMdPfI9pHfn8u1pXp-q5DrIPUk,3483
107
107
  zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/__init__.py,sha256=1Uq88Nt3aQ95WZaOn5HXcc-AEeqS9uj7N52jByUHHgM,104
108
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/_input.py,sha256=uOmx2uEbPVRyxGwGta0tqciUjGSUb988YxtF70YbD5k,1519
109
- 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,sha256=toYaniDV9-eIT0OqyOl1pl-TXEHS6GJh3DAerjf4Vsw,3180
108
+ zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/_input.py,sha256=KDL3HCrecgJ3PeHhhoBP5jSjMzWHw3hH1pz9nSOHe6U,1597
109
+ 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,sha256=3qJwdWn29ZaG6egtMygkGK6srrLYRTnUwcqzVPiV5Ds,3193
110
110
  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/__init__.py,sha256=LJJca1_tGcuc65sgtXS_Y2XqU5q3QGClVnoPKcnws_c,913
111
111
  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/_constant.py,sha256=we1m5OznG3Pi806XMBbA0PN2w3xg9CGloZuo5d8CibY,405
112
112
  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/_env.py,sha256=JlXWhwfnyVuwVnp_7HQfR6EZVoKCkY8_QIGucknNUZY,847
@@ -151,7 +151,7 @@ zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/sn
151
151
  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/src/template.env,sha256=vtoZ0LV8OKAU1EUWBiB8PIKbf1FaNfm-49j7aXvKsgs,87
152
152
  zrb/builtin/project/add/app/python/__init__.py,sha256=0hKakEPFI1SqMV3LrL34ACeLSd6Pt72DP2i1H1QRNL0,92
153
153
  zrb/builtin/project/add/app/python/_input.py,sha256=drsQ1B83oF2IEmhB2rnO02KLrlR4wugPMHpP01cW2pM,1502
154
- zrb/builtin/project/add/app/python/python.py,sha256=Z1Tdtzu9Hc5r7iUYy3TdeWLv5lgTes_sBCitkRgGat8,3142
154
+ zrb/builtin/project/add/app/python/python.py,sha256=H_88WbK7JGTQ6el22UpTqi4qnaQJeEvkaVwlkM2ZlA8,3155
155
155
  zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/__init__.py,sha256=LJJca1_tGcuc65sgtXS_Y2XqU5q3QGClVnoPKcnws_c,913
156
156
  zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/_constant.py,sha256=we1m5OznG3Pi806XMBbA0PN2w3xg9CGloZuo5d8CibY,405
157
157
  zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/_env.py,sha256=JlXWhwfnyVuwVnp_7HQfR6EZVoKCkY8_QIGucknNUZY,847
@@ -197,8 +197,8 @@ zrb/builtin/project/add/app/python/template/src/kebab-zrb-app-name/src/template.
197
197
  zrb/builtin/project/add/fastapp/__init__.py,sha256=NynNDb_8LTEh5oP-NIu5DqZ0wb2t6JaPcCjW2kaeWhQ,493
198
198
  zrb/builtin/project/add/fastapp/_group.py,sha256=3qzRS2H89PKv5TONiIbxjkbkB6nMqKf243CQd-89dos,220
199
199
  zrb/builtin/project/add/fastapp/app/__init__.py,sha256=j_xb5_uWHzmaY7io_LX1tmRPWacpPtg0-jhuxtDtFiY,108
200
- zrb/builtin/project/add/fastapp/app/_input.py,sha256=drsQ1B83oF2IEmhB2rnO02KLrlR4wugPMHpP01cW2pM,1502
201
- zrb/builtin/project/add/fastapp/app/app.py,sha256=NWLag2YQTyV0PCLh2Q2DSEiKp_U2GCbRR_UQozYVabI,3789
200
+ zrb/builtin/project/add/fastapp/app/_input.py,sha256=Ly9ljRQTxZC77rZKRsTaCU_1-JYO59mxxF5md0xYRyM,1581
201
+ zrb/builtin/project/add/fastapp/app/app.py,sha256=un3MeXMaRFhZXDcEzvzQPTiUmvhPLhIu74KbwkZfjdM,3802
202
202
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/__init__.py,sha256=QRe37qDhoG9f6BmXs0ZOO_14sw3PzuToar7PINqJ-1M,2485
203
203
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/_checker.py,sha256=NXBWH5ZnwY7XiessNf74MoUer5c4mTC1zzfS3QSt7QQ,2296
204
204
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/_constant.py,sha256=fnbDK9FAG8nRf3SNVkQRn98SgNSHQaDnEwkgQFrcXRA,1022
@@ -1153,9 +1153,9 @@ zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/helper.
1153
1153
  zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/test_liveness_and_readiness.py,sha256=BHX1NEZKu8WLmENOGQBPoRnx01eQ64b__PbGaq_qYzQ,1232
1154
1154
  zrb/builtin/project/add/fastapp/crud/__init__.py,sha256=IMTN_eQRAAUW9P_e0RlJFm_-BqxoCys1dpCNFuIW5lI,96
1155
1155
  zrb/builtin/project/add/fastapp/crud/_helper.py,sha256=8awMQTTLB3wziBrddny60ypGPFSIJ1jeIvUFMogfHbQ,4057
1156
- zrb/builtin/project/add/fastapp/crud/_input.py,sha256=LL9qR92qoMS_Tw_rdUTbYmNzHnqlfSNdguZtb_MyKxI,850
1156
+ zrb/builtin/project/add/fastapp/crud/_input.py,sha256=aQUhDB275vAwpwmibj19I0v33jFqmwoq0LGgcK7ny20,879
1157
1157
  zrb/builtin/project/add/fastapp/crud/_task_factory.py,sha256=xfH5C0KkuhJvilrIzNBJ6LvrcG71lhM3N7ZPm6CW8Js,1481
1158
- zrb/builtin/project/add/fastapp/crud/crud.py,sha256=w1XeYB4RyMeieYVxA8nJ2oWb0nzNOOK6rL8MU-VdVCQ,5184
1158
+ zrb/builtin/project/add/fastapp/crud/crud.py,sha256=22jsigh-fnY7oDO6yd794m-WZuNLRPX6o6i_xovTP6c,5197
1159
1159
  zrb/builtin/project/add/fastapp/crud/nodejs/codemod/.gitignore,sha256=FtMORGIYn7FN1hG9twjFEGMMV2ofNbk4PomkNS2jbJc,13
1160
1160
  zrb/builtin/project/add/fastapp/crud/nodejs/codemod/package-lock.json,sha256=yWd9ww6RHHhAZBi5V01sbSKF6D8owxHoR1ebHGHs-2A,11620
1161
1161
  zrb/builtin/project/add/fastapp/crud/nodejs/codemod/package.json,sha256=uqz8LlyK32NyMkH2rYAgZYi29pymj_zN5j46YiTDJ2w,369
@@ -1183,7 +1183,7 @@ zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/test/snake_
1183
1183
  zrb/builtin/project/add/fastapp/field/__init__.py,sha256=ahiH_AlkbyDj_OsmyU1DMr3FL2XLe2MZRbuawWaIko4,100
1184
1184
  zrb/builtin/project/add/fastapp/field/_helper.py,sha256=7GkYi9Ud8HW3RoVWSMg2Q78kKDMCWrgipBGQ_8xS7dE,11041
1185
1185
  zrb/builtin/project/add/fastapp/field/_input.py,sha256=zx0n229UT_Pk1SQfdK7a3DfA8QXVWBRa3hmEfWOU7VM,350
1186
- zrb/builtin/project/add/fastapp/field/field.py,sha256=MBPqbKFMEC0RsQWsRBTbDn94siKqAmSvPfVk3nBj9zk,6509
1186
+ zrb/builtin/project/add/fastapp/field/field.py,sha256=xN9y4Ovn-kJFzgVUBQfVHVL5lQW49w_yaV2kGMTYKBs,6522
1187
1187
  zrb/builtin/project/add/fastapp/module/__init__.py,sha256=alSeJepmhsb8Op21K_ttP5FIDk84v2KsBpiCKkwVE0A,104
1188
1188
  zrb/builtin/project/add/fastapp/module/_helper.py,sha256=8x9tM_51EzMdle9ri8IaydKXYPLmqZNRNQPRtGXdd4o,10945
1189
1189
  zrb/builtin/project/add/fastapp/module/_input.py,sha256=X13ZS0n4ZgUc3sbJtoEyFWUw8Jpbm2EDKsv0tvE5uZo,201
@@ -1204,7 +1204,7 @@ zrb/builtin/project/add/fastapp/module/template/src/kebab-zrb-app-name/src/modul
1204
1204
  zrb/builtin/project/add/fastapp/module/template/src/kebab-zrb-app-name/test/snake_zrb_module_name/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1205
1205
  zrb/builtin/project/add/plugin/__init__.py,sha256=7KlTMVikpaHb5X35ZmZaipsubCglsD0fSYlg9LcoZfM,80
1206
1206
  zrb/builtin/project/add/plugin/_input.py,sha256=AG8lyq-CCdreoxrGeXyGYyk0iF9G370zAmZn2gAMjZc,1800
1207
- zrb/builtin/project/add/plugin/plugin.py,sha256=-OCnwEQzcI76Nk7MSF_tlL-BeGWraw0oFAK-5SDe_0M,3158
1207
+ zrb/builtin/project/add/plugin/plugin.py,sha256=yxkgp2QPStinDCjIdIYOHmh4AHkp9yid7G8RGkR88As,3182
1208
1208
  zrb/builtin/project/add/plugin/template/_automate/snake_zrb_package_name/__init__.py,sha256=jyOjBLjUIZxYB17P5LXBvrTOZ84raQxO6AOp3QRNQSg,768
1209
1209
  zrb/builtin/project/add/plugin/template/_automate/snake_zrb_package_name/_group.py,sha256=hqZ818Z3wRGBNqfW9Fu9IKej11aE3kK-XyA8YWeA2Sc,220
1210
1210
  zrb/builtin/project/add/plugin/template/_automate/snake_zrb_package_name/activate-venv.sh,sha256=DWgQyDPqIhvTKIwQKRr1OxqzUmuOP5m1IkNbM3eKhSQ,334
@@ -1246,11 +1246,11 @@ zrb/builtin/project/add/task/__init__.py,sha256=3kwq5jk5zFFy_K1zoECXxOCSqkqa9hXP
1246
1246
  zrb/builtin/project/add/task/_group.py,sha256=ZtrWSBI2vP4C8O9pOWrYuMWjWUFuHccxhqLD4uH5dUk,212
1247
1247
  zrb/builtin/project/add/task/_input.py,sha256=NPyr1fTIs-EJ9D62eTSVO8yVVEiyckR9SPPA10DBvKI,266
1248
1248
  zrb/builtin/project/add/task/cmd/__init__.py,sha256=rzpuW5oi0i5gt44WJnwBRUNyKxyXViNmac-_5N058yM,83
1249
- zrb/builtin/project/add/task/cmd/add.py,sha256=siNVp3GoWnlP6xxmUGSHd_lHxAfwTsVFaoRR8K6h5RQ,1771
1249
+ zrb/builtin/project/add/task/cmd/add.py,sha256=O5NBBSH2UrcfjAxrUGLYpt7X9S42ay85Kq3ctIMTf2c,1784
1250
1250
  zrb/builtin/project/add/task/cmd/template/_automate/snake_zrb_task_name.py,sha256=mKaNvkIvis-ma-GiKRrkjLur2CdJwUUaxJZRu0OEhrY,293
1251
1251
  zrb/builtin/project/add/task/docker_compose/__init__.py,sha256=s7nh3JYxrrn8Bsre3eaveYrkSBhem5xxGvRaA2KEaug,116
1252
1252
  zrb/builtin/project/add/task/docker_compose/_input.py,sha256=XtdU4FqnvUZbxzziizPT3YSKPeRfezUvHIIFkznWUwI,400
1253
- zrb/builtin/project/add/task/docker_compose/add.py,sha256=xfDe79X4JI0Z-A07QyIFSqZvkQtxdPDj4lyl_AfJWrQ,2209
1253
+ zrb/builtin/project/add/task/docker_compose/add.py,sha256=hz2BBFU8XKfwLirvug301YuEvGRVFe7ASaOsgeiYPLw,2222
1254
1254
  zrb/builtin/project/add/task/docker_compose/template/_automate/snake_zrb_task_name.py,sha256=uAlrjbmj_fcE-6E4L4Qz7EYBjIMTe2YHXee5lxbEH-o,958
1255
1255
  zrb/builtin/project/add/task/docker_compose/template/src/kebab-zrb-task-name/.dockerignore,sha256=LxhNL1suXmDgt_uwGsgUlRmb8ELu2fr8Rx9ryk-0OUY,12
1256
1256
  zrb/builtin/project/add/task/docker_compose/template/src/kebab-zrb-task-name/.gitignore,sha256=ix0-K99TQUKck1g7GDugxn4sh7JtZQjRa0zlmY6rWQY,30
@@ -1260,7 +1260,7 @@ zrb/builtin/project/add/task/docker_compose/template/src/kebab-zrb-task-name/ima
1260
1260
  zrb/builtin/project/add/task/docker_compose/template/src/kebab-zrb-task-name/image/main.py,sha256=9oXlXs0J3d2fhm9flhVGA-H_XxCDsOj_dFRhyhWEjvc,511
1261
1261
  zrb/builtin/project/add/task/docker_compose/template/src/kebab-zrb-task-name/image/pyproject.toml,sha256=lCuHzvgZ541o8vm-9I_hnSIL4YP_LWd4PA9jS6GRB9Y,525
1262
1262
  zrb/builtin/project/add/task/python/__init__.py,sha256=LCBBPaEI8pGvY5UG9jls3VnDD-NoC4v3mIONPJQxI-E,92
1263
- zrb/builtin/project/add/task/python/add.py,sha256=v8zhfLt_7xFpGdi-2q7TPIDS4Yl_7b19XqKtg4sWUcY,1790
1263
+ zrb/builtin/project/add/task/python/add.py,sha256=cvkJgPwHYnfnj1Rf0htUrQt56sixzdVc_Mzx26kXrfg,1803
1264
1264
  zrb/builtin/project/add/task/python/template/_automate/snake_zrb_task_name.py,sha256=yrlLdEAfuhdCyvAXdGB9ecp1LrOATBXk-dFmcYypOQQ,569
1265
1265
  zrb/builtin/project/create/__init__.py,sha256=AIEtCGl3XtqtGAD73-9FOP3ROcazFFY726WLMeZmPz0,84
1266
1266
  zrb/builtin/project/create/_helper.py,sha256=c7jRcpyR9COq3ATA_Q3YurIKGQf5AU9uYawn_5UutDs,491
@@ -1395,18 +1395,18 @@ zrb/task_group/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1395
1395
  zrb/task_group/group.py,sha256=uF3tyLABTyyBNyE9FUCfJeYSDnaLFQCis3tuEn5FYho,6109
1396
1396
  zrb/task_input/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1397
1397
  zrb/task_input/any_input.py,sha256=-uOq1ONXdhW20FRkC3pzqX081tbfmWjvCc_-d-gCNGY,2087
1398
- zrb/task_input/base_input.py,sha256=STWgAY4lE8JSIavXsYPlNbGuz_5TVvZiicdCJOZIgeQ,6796
1399
- zrb/task_input/bool_input.py,sha256=8InE55L9ht06q8SBOqdS5Miga59GNidebTCXLXBX8lQ,4192
1400
- zrb/task_input/choice_input.py,sha256=sIu5cT27MpMufVhmV1Qs2WX9V5aml_ymcPb1NItf04Y,4471
1398
+ zrb/task_input/base_input.py,sha256=EamIEhApUNTiVlrQilRC-HYVXjgUxAsvbbG7Vm6ow2k,7554
1399
+ zrb/task_input/bool_input.py,sha256=HUxCphYcyd7YyBsymnUrBtzBMISkL_Mpz502Hl4cTvs,4186
1400
+ zrb/task_input/choice_input.py,sha256=qfrEzbs2g0CZeE2TzvfN0IOla_1B8Tikn-eIgMpLuPo,4465
1401
1401
  zrb/task_input/constant.py,sha256=VEsnrI0BDdCJ1Z58EJgxXUhZBe5CA8TfURo0cNu5CaQ,200
1402
- zrb/task_input/float_input.py,sha256=Y_pLd0oj1k5FjFqQuTNEIuupGpxzSQfwLfnFD12lvto,4308
1403
- zrb/task_input/int_input.py,sha256=-4GFaTV2E-p_FMGqXWYmXmTeymqGYPd4gMvHAmEQSR8,4361
1404
- zrb/task_input/multiline_input.py,sha256=5EWKdOBmzi8IiVFSBJ9owuShb-UL1IFCwTvmMu1UvcY,5152
1405
- zrb/task_input/password_input.py,sha256=MPNXcrC5A1Qf-QIZ2LIBakdosaHFQ-DpjgkrA0SvCs0,4378
1406
- zrb/task_input/str_input.py,sha256=AzbVbuEebGeQcIrE9lMmJLOVwADmLcngx6cK_GXpo5I,4386
1402
+ zrb/task_input/float_input.py,sha256=bf2dhmbpmHMQiJFKYQEfTYmqpwyOEFh6CFM1r1dGTuw,4302
1403
+ zrb/task_input/int_input.py,sha256=P7lDQ0-x5lP_ZTfFeyc-aybub9oikBN4J13HZvWuw0A,4355
1404
+ zrb/task_input/multiline_input.py,sha256=4tx9IHyEUdIa_SpcA4N3we9wrdhS4mIX_Fh51zjMmPI,5146
1405
+ zrb/task_input/password_input.py,sha256=IAQUJ-bKcFgUcWAGx6_vl49jRosHG7Gi0xc5wQlpPTU,4372
1406
+ zrb/task_input/str_input.py,sha256=w2HM_j7AiKjbLWk67xjtn16RrlaMn8GYKH2JPF-GBts,4380
1407
1407
  zrb/task_input/task_input.py,sha256=WTj_qIQyRs-04-VotjNTcVyIuf6b2afInVoCQHoRmr0,2327
1408
- zrb-0.19.0.dist-info/LICENSE,sha256=WfnGCl8G60EYOPAEkuc8C9m9pdXWDe08NsKj3TBbxsM,728
1409
- zrb-0.19.0.dist-info/METADATA,sha256=ISpBH4PJyfyGdbQqKVPVIJSW84k15VMrepAGQy1DWXE,17076
1410
- zrb-0.19.0.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
1411
- zrb-0.19.0.dist-info/entry_points.txt,sha256=xTgXc1kBKYhJHEujdaSPHUcJT3-hbyP1mLgwkv-5sSk,40
1412
- zrb-0.19.0.dist-info/RECORD,,
1408
+ zrb-0.20.0.dist-info/LICENSE,sha256=WfnGCl8G60EYOPAEkuc8C9m9pdXWDe08NsKj3TBbxsM,728
1409
+ zrb-0.20.0.dist-info/METADATA,sha256=8iKR7SGuY-dY5QmriGnLD-sSUcAZY6tIn8NnR1uaRQ4,17076
1410
+ zrb-0.20.0.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
1411
+ zrb-0.20.0.dist-info/entry_points.txt,sha256=xTgXc1kBKYhJHEujdaSPHUcJT3-hbyP1mLgwkv-5sSk,40
1412
+ zrb-0.20.0.dist-info/RECORD,,
File without changes
File without changes