zrb 0.18.1__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.
- zrb/__init__.py +2 -0
- zrb/builtin/project/add/app/generator/generator.py +1 -0
- 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
- 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
- zrb/builtin/project/add/app/python/python.py +1 -0
- zrb/builtin/project/add/fastapp/app/_input.py +8 -4
- zrb/builtin/project/add/fastapp/app/app.py +1 -0
- zrb/builtin/project/add/fastapp/crud/_input.py +1 -1
- zrb/builtin/project/add/fastapp/crud/crud.py +1 -0
- zrb/builtin/project/add/fastapp/crud/nodejs/codemod/package-lock.json +33 -24
- zrb/builtin/project/add/fastapp/field/field.py +1 -0
- zrb/builtin/project/add/plugin/plugin.py +5 -1
- zrb/builtin/project/add/task/cmd/add.py +1 -0
- zrb/builtin/project/add/task/docker_compose/add.py +1 -0
- zrb/builtin/project/add/task/python/add.py +1 -0
- zrb/config/config.py +1 -0
- zrb/helper/multilline.py +11 -0
- zrb/task_input/base_input.py +56 -6
- zrb/task_input/bool_input.py +9 -6
- zrb/task_input/choice_input.py +8 -5
- zrb/task_input/float_input.py +8 -5
- zrb/task_input/int_input.py +8 -5
- zrb/task_input/multiline_input.py +113 -0
- zrb/task_input/password_input.py +8 -5
- zrb/task_input/str_input.py +8 -5
- zrb/task_input/task_input.py +3 -2
- {zrb-0.18.1.dist-info → zrb-0.20.0.dist-info}/METADATA +1 -1
- {zrb-0.18.1.dist-info → zrb-0.20.0.dist-info}/RECORD +31 -29
- {zrb-0.18.1.dist-info → zrb-0.20.0.dist-info}/LICENSE +0 -0
- {zrb-0.18.1.dist-info → zrb-0.20.0.dist-info}/WHEEL +0 -0
- {zrb-0.18.1.dist-info → zrb-0.20.0.dist-info}/entry_points.txt +0 -0
zrb/__init__.py
CHANGED
@@ -45,6 +45,7 @@ from zrb.task_input.bool_input import BoolInput
|
|
45
45
|
from zrb.task_input.choice_input import ChoiceInput
|
46
46
|
from zrb.task_input.float_input import FloatInput
|
47
47
|
from zrb.task_input.int_input import IntInput
|
48
|
+
from zrb.task_input.multiline_input import MultilineInput
|
48
49
|
from zrb.task_input.password_input import PasswordInput
|
49
50
|
from zrb.task_input.str_input import StrInput
|
50
51
|
from zrb.task_input.task_input import Input
|
@@ -93,6 +94,7 @@ assert BoolInput
|
|
93
94
|
assert ChoiceInput
|
94
95
|
assert FloatInput
|
95
96
|
assert IntInput
|
97
|
+
assert MultilineInput
|
96
98
|
assert PasswordInput
|
97
99
|
assert StrInput
|
98
100
|
assert Env
|
@@ -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=
|
45
|
-
|
46
|
-
|
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=
|
62
|
+
default=lambda m: to_snake_case(
|
63
|
+
coalesce(m.get("app_name"), m.get("task_name"), "MY")
|
64
|
+
).upper(),
|
62
65
|
)
|
@@ -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=
|
45
|
-
|
46
|
-
|
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=
|
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 @@ _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")
|
@@ -60,10 +60,13 @@
|
|
60
60
|
}
|
61
61
|
},
|
62
62
|
"node_modules/@types/node": {
|
63
|
-
"version": "20.
|
64
|
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.
|
65
|
-
"integrity": "sha512-
|
66
|
-
"dev": true
|
63
|
+
"version": "20.14.2",
|
64
|
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz",
|
65
|
+
"integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==",
|
66
|
+
"dev": true,
|
67
|
+
"dependencies": {
|
68
|
+
"undici-types": "~5.26.4"
|
69
|
+
}
|
67
70
|
},
|
68
71
|
"node_modules/balanced-match": {
|
69
72
|
"version": "1.0.2",
|
@@ -79,11 +82,11 @@
|
|
79
82
|
}
|
80
83
|
},
|
81
84
|
"node_modules/braces": {
|
82
|
-
"version": "3.0.
|
83
|
-
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.
|
84
|
-
"integrity": "sha512-
|
85
|
+
"version": "3.0.3",
|
86
|
+
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
87
|
+
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
|
85
88
|
"dependencies": {
|
86
|
-
"fill-range": "^7.
|
89
|
+
"fill-range": "^7.1.1"
|
87
90
|
},
|
88
91
|
"engines": {
|
89
92
|
"node": ">=8"
|
@@ -95,9 +98,9 @@
|
|
95
98
|
"integrity": "sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w=="
|
96
99
|
},
|
97
100
|
"node_modules/fast-glob": {
|
98
|
-
"version": "3.3.
|
99
|
-
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.
|
100
|
-
"integrity": "sha512-
|
101
|
+
"version": "3.3.2",
|
102
|
+
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
|
103
|
+
"integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
|
101
104
|
"dependencies": {
|
102
105
|
"@nodelib/fs.stat": "^2.0.2",
|
103
106
|
"@nodelib/fs.walk": "^1.2.3",
|
@@ -110,17 +113,17 @@
|
|
110
113
|
}
|
111
114
|
},
|
112
115
|
"node_modules/fastq": {
|
113
|
-
"version": "1.
|
114
|
-
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.
|
115
|
-
"integrity": "sha512-
|
116
|
+
"version": "1.17.1",
|
117
|
+
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
|
118
|
+
"integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
|
116
119
|
"dependencies": {
|
117
120
|
"reusify": "^1.0.4"
|
118
121
|
}
|
119
122
|
},
|
120
123
|
"node_modules/fill-range": {
|
121
|
-
"version": "7.
|
122
|
-
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.
|
123
|
-
"integrity": "sha512-
|
124
|
+
"version": "7.1.1",
|
125
|
+
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
126
|
+
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
|
124
127
|
"dependencies": {
|
125
128
|
"to-regex-range": "^5.0.1"
|
126
129
|
},
|
@@ -175,11 +178,11 @@
|
|
175
178
|
}
|
176
179
|
},
|
177
180
|
"node_modules/micromatch": {
|
178
|
-
"version": "4.0.
|
179
|
-
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.
|
180
|
-
"integrity": "sha512-
|
181
|
+
"version": "4.0.7",
|
182
|
+
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
|
183
|
+
"integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
|
181
184
|
"dependencies": {
|
182
|
-
"braces": "^3.0.
|
185
|
+
"braces": "^3.0.3",
|
183
186
|
"picomatch": "^2.3.1"
|
184
187
|
},
|
185
188
|
"engines": {
|
@@ -301,9 +304,9 @@
|
|
301
304
|
}
|
302
305
|
},
|
303
306
|
"node_modules/typescript": {
|
304
|
-
"version": "5.
|
305
|
-
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.
|
306
|
-
"integrity": "sha512-
|
307
|
+
"version": "5.4.5",
|
308
|
+
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
|
309
|
+
"integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
|
307
310
|
"dev": true,
|
308
311
|
"bin": {
|
309
312
|
"tsc": "bin/tsc",
|
@@ -312,6 +315,12 @@
|
|
312
315
|
"engines": {
|
313
316
|
"node": ">=14.17"
|
314
317
|
}
|
318
|
+
},
|
319
|
+
"node_modules/undici-types": {
|
320
|
+
"version": "5.26.5",
|
321
|
+
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
|
322
|
+
"integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
|
323
|
+
"dev": true
|
315
324
|
}
|
316
325
|
}
|
317
326
|
}
|
@@ -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(
|
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)
|
zrb/config/config.py
CHANGED
@@ -32,6 +32,7 @@ def _get_default_tmp_dir() -> str:
|
|
32
32
|
|
33
33
|
tmp_dir = os.getenv("ZRB_TMP_DIR", _get_default_tmp_dir())
|
34
34
|
default_shell = os.getenv("ZRB_SHELL", _get_current_shell())
|
35
|
+
default_editor = os.getenv("ZRB_EDITOR", "nano")
|
35
36
|
init_script_str = os.getenv("ZRB_INIT_SCRIPTS", "")
|
36
37
|
init_scripts = init_script_str.split(":") if init_script_str != "" else []
|
37
38
|
logging_level = untyped_to_logging_level(os.getenv("ZRB_LOGGING_LEVEL", "WARNING"))
|
zrb/helper/multilline.py
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
import click
|
2
|
+
|
3
|
+
from zrb.helper.typecheck import typechecked
|
4
|
+
|
5
|
+
|
6
|
+
@typechecked
|
7
|
+
def edit(editor: str, mark_comment: str, text: str) -> str:
|
8
|
+
result = click.edit(text="\n".join([mark_comment, text]), editor=editor)
|
9
|
+
if result is None:
|
10
|
+
result = text
|
11
|
+
return "\n".join(result.split(mark_comment)).strip()
|
zrb/task_input/base_input.py
CHANGED
@@ -1,8 +1,10 @@
|
|
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
|
-
from zrb.helper.typing import Any, List, Mapping, Optional, Union
|
7
|
+
from zrb.helper.typing import Any, Callable, List, Mapping, Optional, Union
|
6
8
|
from zrb.task_input.any_input import AnyInput
|
7
9
|
from zrb.task_input.constant import RESERVED_INPUT_NAMES
|
8
10
|
|
@@ -10,6 +12,9 @@ logger.debug(colored("Loading zrb.task_input.base_input", attrs=["dark"]))
|
|
10
12
|
|
11
13
|
# flake8: noqa E501
|
12
14
|
|
15
|
+
InputCallback = Callable[[Mapping[str, Any], Any], Any]
|
16
|
+
InputDefault = Callable[[Mapping[str, Any]], Any]
|
17
|
+
|
13
18
|
|
14
19
|
@typechecked
|
15
20
|
class BaseInput(AnyInput):
|
@@ -22,8 +27,9 @@ class BaseInput(AnyInput):
|
|
22
27
|
name (str): The name of the input, used as a unique identifier.
|
23
28
|
shortcut (Optional[str]): An optional single-character shortcut for the input.
|
24
29
|
default (Optional[Any]): The default value of the input.
|
30
|
+
callback (Optional[Any]): The default value of the input.
|
25
31
|
description (Optional[str]): A brief description of what the input is for.
|
26
|
-
show_default (Union[bool, JinjaTemplate, None]): Determines
|
32
|
+
show_default (Union[bool, JinjaTemplate, None]): Determines the default value to be shown.
|
27
33
|
prompt (Union[bool, str]): The prompt text to be displayed when asking for the input.
|
28
34
|
confirmation_prompt (Union[bool, str]): A prompt for confirmation if required.
|
29
35
|
prompt_required (bool): Indicates whether a prompt is required.
|
@@ -50,13 +56,17 @@ class BaseInput(AnyInput):
|
|
50
56
|
>>> )
|
51
57
|
"""
|
52
58
|
|
59
|
+
__value_cache: Mapping[str, Any] = {}
|
60
|
+
__default_cache: Mapping[str, Any] = {}
|
61
|
+
|
53
62
|
def __init__(
|
54
63
|
self,
|
55
64
|
name: str,
|
56
65
|
shortcut: Optional[str] = None,
|
57
|
-
default: Optional[Any] = None,
|
66
|
+
default: Optional[Union[Any, InputDefault]] = None,
|
67
|
+
callback: Optional[InputCallback] = None,
|
58
68
|
description: Optional[str] = None,
|
59
|
-
show_default: Union[bool, str
|
69
|
+
show_default: Union[bool, str] = True,
|
60
70
|
prompt: Union[bool, str] = True,
|
61
71
|
confirmation_prompt: Union[bool, str] = False,
|
62
72
|
prompt_required: bool = True,
|
@@ -79,9 +89,12 @@ class BaseInput(AnyInput):
|
|
79
89
|
self._shortcut = shortcut
|
80
90
|
self._prompt = prompt
|
81
91
|
self._default = default
|
92
|
+
self._callback = callback
|
82
93
|
self._help = description if description is not None else name
|
83
94
|
self._type = type
|
84
|
-
self._show_default =
|
95
|
+
self._show_default = self.__get_calculated_show_default(
|
96
|
+
show_default, should_render, default
|
97
|
+
)
|
85
98
|
self._confirmation_prompt = confirmation_prompt
|
86
99
|
self._prompt_required = prompt_required
|
87
100
|
self._hide_input = hide_input
|
@@ -96,10 +109,24 @@ class BaseInput(AnyInput):
|
|
96
109
|
self._nargs = nargs
|
97
110
|
self.__should_render = should_render
|
98
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
|
+
|
99
124
|
def get_name(self) -> str:
|
100
125
|
return self._name
|
101
126
|
|
102
127
|
def get_default(self) -> Any:
|
128
|
+
if callable(self._default):
|
129
|
+
return self._default(self.__value_cache)
|
103
130
|
return self._default
|
104
131
|
|
105
132
|
def get_param_decl(self) -> List[str]:
|
@@ -110,7 +137,6 @@ class BaseInput(AnyInput):
|
|
110
137
|
|
111
138
|
def get_options(self) -> Mapping[str, Any]:
|
112
139
|
options: Mapping[str, Any] = {
|
113
|
-
"default": self._default,
|
114
140
|
"help": self._help,
|
115
141
|
"type": self._type,
|
116
142
|
"show_default": self._show_default,
|
@@ -126,11 +152,35 @@ class BaseInput(AnyInput):
|
|
126
152
|
"show_choices": self._show_choices,
|
127
153
|
"show_envvar": self._show_envvar,
|
128
154
|
"nargs": self._nargs,
|
155
|
+
"callback": self._wrapped_callback,
|
156
|
+
"default": self._wrapped_default,
|
129
157
|
}
|
130
158
|
if show_prompt:
|
131
159
|
options["prompt"] = self._prompt
|
132
160
|
return options
|
133
161
|
|
162
|
+
def _wrapped_callback(self, ctx, param, value) -> Any:
|
163
|
+
var_name = to_variable_name(self.get_name())
|
164
|
+
if var_name not in self.__value_cache:
|
165
|
+
if callable(self._callback):
|
166
|
+
result = self._callback(self.__value_cache, value)
|
167
|
+
self.__value_cache[var_name] = result
|
168
|
+
return result
|
169
|
+
self.__value_cache[var_name] = value
|
170
|
+
return value
|
171
|
+
return self.__value_cache[var_name]
|
172
|
+
|
173
|
+
def _wrapped_default(self) -> Any:
|
174
|
+
var_name = to_variable_name(self.get_name())
|
175
|
+
if var_name not in self.__default_cache:
|
176
|
+
if callable(self._default):
|
177
|
+
default = self._default(self.__value_cache)
|
178
|
+
self.__default_cache[var_name] = default
|
179
|
+
return default
|
180
|
+
self.__default_cache[var_name] = self._default
|
181
|
+
return self._default
|
182
|
+
return self.__default_cache[var_name]
|
183
|
+
|
134
184
|
def should_render(self) -> bool:
|
135
185
|
return self.__should_render
|
136
186
|
|
zrb/task_input/bool_input.py
CHANGED
@@ -2,7 +2,7 @@ from zrb.helper.accessories.color import colored
|
|
2
2
|
from zrb.helper.log import logger
|
3
3
|
from zrb.helper.typecheck import typechecked
|
4
4
|
from zrb.helper.typing import Any, Optional, Union
|
5
|
-
from zrb.task_input.base_input import BaseInput
|
5
|
+
from zrb.task_input.base_input import BaseInput, InputCallback, InputDefault
|
6
6
|
|
7
7
|
logger.debug(colored("Loading zrb.task_input.bool_input", attrs=["dark"]))
|
8
8
|
|
@@ -20,9 +20,10 @@ class BoolInput(BaseInput):
|
|
20
20
|
Args:
|
21
21
|
name (str): The name of the input.
|
22
22
|
shortcut (Optional[str]): A shortcut string for the input.
|
23
|
-
default (Optional[Any]): The default value
|
24
|
-
|
25
|
-
|
23
|
+
default (Optional[Any]): The default value of the input.
|
24
|
+
callback (Optional[Any]): The default value of the input.
|
25
|
+
description (Optional[str]): A brief description of what the input is for.
|
26
|
+
show_default (Union[bool, JinjaTemplate, None]): Determines the default value to be shown.
|
26
27
|
prompt (Union[bool, str]): A boolean or string to prompt the user for input. If `True`, uses the default prompt.
|
27
28
|
confirmation_prompt (Union[bool, str]): If set to `True`, the user is asked to confirm the input.
|
28
29
|
prompt_required (bool): If `True`, the prompt for input is mandatory.
|
@@ -48,9 +49,10 @@ class BoolInput(BaseInput):
|
|
48
49
|
self,
|
49
50
|
name: str,
|
50
51
|
shortcut: Optional[str] = None,
|
51
|
-
default: Optional[Any] = None,
|
52
|
+
default: Optional[Union[Any, InputDefault]] = None,
|
53
|
+
callback: Optional[InputCallback] = None,
|
52
54
|
description: Optional[str] = None,
|
53
|
-
show_default: Union[bool, str
|
55
|
+
show_default: Union[bool, str] = True,
|
54
56
|
prompt: Union[bool, str] = True,
|
55
57
|
confirmation_prompt: Union[bool, str] = False,
|
56
58
|
prompt_required: bool = True,
|
@@ -71,6 +73,7 @@ class BoolInput(BaseInput):
|
|
71
73
|
name=name,
|
72
74
|
shortcut=shortcut,
|
73
75
|
default=default,
|
76
|
+
callback=callback,
|
74
77
|
description=description,
|
75
78
|
show_default=show_default,
|
76
79
|
prompt=prompt,
|
zrb/task_input/choice_input.py
CHANGED
@@ -4,7 +4,7 @@ from zrb.helper.accessories.color import colored
|
|
4
4
|
from zrb.helper.log import logger
|
5
5
|
from zrb.helper.typecheck import typechecked
|
6
6
|
from zrb.helper.typing import Any, Iterable, Optional, Union
|
7
|
-
from zrb.task_input.base_input import BaseInput
|
7
|
+
from zrb.task_input.base_input import BaseInput, InputCallback, InputDefault
|
8
8
|
|
9
9
|
logger.debug(colored("Loading zrb.task_input.choice_input", attrs=["dark"]))
|
10
10
|
|
@@ -25,8 +25,9 @@ class ChoiceInput(BaseInput):
|
|
25
25
|
shortcut (Optional[str]): An optional shortcut string for the input.
|
26
26
|
choices (Iterable[Any]): An iterable of choices from which the user can select.
|
27
27
|
default (Optional[Any]): The default value for the input. Should be one of the choices if set.
|
28
|
-
|
29
|
-
|
28
|
+
callback (Optional[Any]): The default value of the input.
|
29
|
+
description (Optional[str]): A brief description of what the input is for.
|
30
|
+
show_default (Union[bool, JinjaTemplate, None]): Determines the default value to be shown.
|
30
31
|
prompt (Union[bool, str]): A boolean or string to prompt the user for input. If `True`, uses the default prompt.
|
31
32
|
confirmation_prompt (Union[bool, str]): If set to `True`, the user is asked to confirm the input.
|
32
33
|
prompt_required (bool): If `True`, the prompt for input is mandatory.
|
@@ -53,9 +54,10 @@ class ChoiceInput(BaseInput):
|
|
53
54
|
name: str,
|
54
55
|
shortcut: Optional[str] = None,
|
55
56
|
choices: Iterable[Any] = [],
|
56
|
-
default: Optional[Any] = None,
|
57
|
+
default: Optional[Union[Any, InputDefault]] = None,
|
58
|
+
callback: Optional[InputCallback] = None,
|
57
59
|
description: Optional[str] = None,
|
58
|
-
show_default: Union[bool, str
|
60
|
+
show_default: Union[bool, str] = True,
|
59
61
|
prompt: Union[bool, str] = True,
|
60
62
|
confirmation_prompt: Union[bool, str] = False,
|
61
63
|
prompt_required: bool = True,
|
@@ -76,6 +78,7 @@ class ChoiceInput(BaseInput):
|
|
76
78
|
name=name,
|
77
79
|
shortcut=shortcut,
|
78
80
|
default=default,
|
81
|
+
callback=callback,
|
79
82
|
description=description,
|
80
83
|
show_default=show_default,
|
81
84
|
prompt=prompt,
|
zrb/task_input/float_input.py
CHANGED
@@ -2,7 +2,7 @@ from zrb.helper.accessories.color import colored
|
|
2
2
|
from zrb.helper.log import logger
|
3
3
|
from zrb.helper.typecheck import typechecked
|
4
4
|
from zrb.helper.typing import Any, Optional, Union
|
5
|
-
from zrb.task_input.base_input import BaseInput
|
5
|
+
from zrb.task_input.base_input import BaseInput, InputCallback, InputDefault
|
6
6
|
|
7
7
|
logger.debug(colored("Loading zrb.task_input.float_input", attrs=["dark"]))
|
8
8
|
|
@@ -21,8 +21,9 @@ class FloatInput(BaseInput):
|
|
21
21
|
name (str): The name of the input.
|
22
22
|
shortcut (Optional[str]): An optional shortcut string for the input.
|
23
23
|
default (Optional[Any]): The default value for the input, expected to be a float if set.
|
24
|
-
|
25
|
-
|
24
|
+
callback (Optional[Any]): The default value of the input.
|
25
|
+
description (Optional[str]): A brief description of what the input is for.
|
26
|
+
show_default (Union[bool, JinjaTemplate, None]): Determines the default value to be shown.
|
26
27
|
prompt (Union[bool, str]): A boolean or string to prompt the user for input. If `True`, uses the default prompt.
|
27
28
|
confirmation_prompt (Union[bool, str]): If `True`, the user is asked to confirm the input.
|
28
29
|
prompt_required (bool): If `True`, the prompt for input is mandatory.
|
@@ -48,9 +49,10 @@ class FloatInput(BaseInput):
|
|
48
49
|
self,
|
49
50
|
name: str,
|
50
51
|
shortcut: Optional[str] = None,
|
51
|
-
default: Optional[Any] = None,
|
52
|
+
default: Optional[Union[Any, InputDefault]] = None,
|
53
|
+
callback: Optional[InputCallback] = None,
|
52
54
|
description: Optional[str] = None,
|
53
|
-
show_default: Union[bool, str
|
55
|
+
show_default: Union[bool, str] = True,
|
54
56
|
prompt: Union[bool, str] = True,
|
55
57
|
confirmation_prompt: Union[bool, str] = False,
|
56
58
|
prompt_required: bool = True,
|
@@ -71,6 +73,7 @@ class FloatInput(BaseInput):
|
|
71
73
|
name=name,
|
72
74
|
shortcut=shortcut,
|
73
75
|
default=default,
|
76
|
+
callback=callback,
|
74
77
|
description=description,
|
75
78
|
show_default=show_default,
|
76
79
|
prompt=prompt,
|
zrb/task_input/int_input.py
CHANGED
@@ -2,7 +2,7 @@ from zrb.helper.accessories.color import colored
|
|
2
2
|
from zrb.helper.log import logger
|
3
3
|
from zrb.helper.typecheck import typechecked
|
4
4
|
from zrb.helper.typing import Any, Optional, Union
|
5
|
-
from zrb.task_input.base_input import BaseInput
|
5
|
+
from zrb.task_input.base_input import BaseInput, InputCallback, InputDefault
|
6
6
|
|
7
7
|
logger.debug(colored("Loading zrb.task_input.int_input", attrs=["dark"]))
|
8
8
|
|
@@ -22,8 +22,9 @@ class IntInput(BaseInput):
|
|
22
22
|
name (str): The name of the input, serving as an identifier.
|
23
23
|
shortcut (Optional[str]): An optional shortcut for easier reference to the input.
|
24
24
|
default (Optional[Any]): The default value for the input, should be an integer if provided.
|
25
|
-
|
26
|
-
|
25
|
+
callback (Optional[Any]): The default value of the input.
|
26
|
+
description (Optional[str]): A brief description of what the input is for.
|
27
|
+
show_default (Union[bool, JinjaTemplate, None]): Determines the default value to be shown.
|
27
28
|
prompt (Union[bool, str]): A boolean or string to determine the prompt for user input. If `True`, uses a default prompt.
|
28
29
|
confirmation_prompt (Union[bool, str]): If `True`, the user will be asked to confirm their input.
|
29
30
|
prompt_required (bool): If `True`, makes the input prompt mandatory.
|
@@ -49,9 +50,10 @@ class IntInput(BaseInput):
|
|
49
50
|
self,
|
50
51
|
name: str,
|
51
52
|
shortcut: Optional[str] = None,
|
52
|
-
default: Optional[Any] = None,
|
53
|
+
default: Optional[Union[Any, InputDefault]] = None,
|
54
|
+
callback: Optional[InputCallback] = None,
|
53
55
|
description: Optional[str] = None,
|
54
|
-
show_default: Union[bool, str
|
56
|
+
show_default: Union[bool, str] = True,
|
55
57
|
prompt: Union[bool, str] = True,
|
56
58
|
confirmation_prompt: Union[bool, str] = False,
|
57
59
|
prompt_required: bool = True,
|
@@ -72,6 +74,7 @@ class IntInput(BaseInput):
|
|
72
74
|
name=name,
|
73
75
|
shortcut=shortcut,
|
74
76
|
default=default,
|
77
|
+
callback=callback,
|
75
78
|
description=description,
|
76
79
|
show_default=show_default,
|
77
80
|
prompt=prompt,
|
@@ -0,0 +1,113 @@
|
|
1
|
+
from zrb.config.config import default_editor
|
2
|
+
from zrb.helper.accessories.color import colored
|
3
|
+
from zrb.helper.log import logger
|
4
|
+
from zrb.helper.multilline import edit
|
5
|
+
from zrb.helper.typecheck import typechecked
|
6
|
+
from zrb.helper.typing import Any, Mapping, Optional, Union
|
7
|
+
from zrb.task_input.base_input import BaseInput, InputCallback, InputDefault
|
8
|
+
|
9
|
+
logger.debug(colored("Loading zrb.task_input.multiline_input", attrs=["dark"]))
|
10
|
+
|
11
|
+
# flake8: noqa E501
|
12
|
+
|
13
|
+
|
14
|
+
@typechecked
|
15
|
+
class MultilineInput(BaseInput):
|
16
|
+
"""
|
17
|
+
A specialized input class for handling string-based inputs in various tasks.
|
18
|
+
|
19
|
+
`StrInput` extends `BaseInput` to manage string-type inputs, supporting features like
|
20
|
+
default values, prompts, flags, and other customization options. This class is useful
|
21
|
+
for tasks requiring textual input, such as names, descriptions, or any other string parameters.
|
22
|
+
|
23
|
+
Args:
|
24
|
+
name (str): The name of the input, used as an identifier.
|
25
|
+
shortcut (Optional[str]): An optional shortcut string for the input.
|
26
|
+
default (Optional[Any]): The default value for the input, expected to be a string if set.
|
27
|
+
callback (Optional[Any]): The default value of the input.
|
28
|
+
description (Optional[str]): A brief description of what the input is for.
|
29
|
+
show_default (Union[bool, JinjaTemplate, None]): Determines the default value to be shown.
|
30
|
+
prompt (Union[bool, str]): A boolean or string to prompt the user for input. If `True`, uses the default prompt.
|
31
|
+
confirmation_prompt (Union[bool, str]): If `True`, the user is asked to confirm the input.
|
32
|
+
prompt_required (bool): If `True’, the prompt for input is mandatory.
|
33
|
+
hide_input (bool): If `True’, hides the input value, typically used for sensitive data.
|
34
|
+
is_flag (Optional[bool]): Indicates if the input is a flag. If `True’, the input accepts boolean flag values.
|
35
|
+
flag_value (Optional[Any]): The value associated with the flag if `is_flag` is `True`.
|
36
|
+
multiple (bool): If `True’, allows multiple string values for the input.
|
37
|
+
count (bool): If `True’, counts the occurrences of the input.
|
38
|
+
allow_from_autoenv (bool): If `True’, enables automatic population of the input from environment variables.
|
39
|
+
hidden (bool): If `True’, keeps the input hidden in help messages or documentation.
|
40
|
+
show_choices (bool): If `True’, shows any restricted choices for the input value.
|
41
|
+
show_envvar (bool): If `True’, displays the associated environment variable, if applicable.
|
42
|
+
nargs (int): The number of arguments that the input can accept.
|
43
|
+
should_render (bool): If `True’, renders the input in the user interface or command-line interface.
|
44
|
+
|
45
|
+
Examples:
|
46
|
+
>>> multiline_input = StrInput(name='username', default='user123', description='Enter your username')
|
47
|
+
>>> multiline_input.get_default()
|
48
|
+
'user123'
|
49
|
+
"""
|
50
|
+
|
51
|
+
__default: Mapping[str, Any] = {}
|
52
|
+
|
53
|
+
def __init__(
|
54
|
+
self,
|
55
|
+
name: str,
|
56
|
+
shortcut: Optional[str] = None,
|
57
|
+
comment_start="#",
|
58
|
+
editor=default_editor,
|
59
|
+
default: Optional[Union[Any, InputDefault]] = None,
|
60
|
+
callback: Optional[InputCallback] = None,
|
61
|
+
description: Optional[str] = None,
|
62
|
+
show_default: Union[bool, str] = True,
|
63
|
+
prompt: Union[bool, str] = True,
|
64
|
+
confirmation_prompt: Union[bool, str] = False,
|
65
|
+
prompt_required: bool = True,
|
66
|
+
hide_input: bool = False,
|
67
|
+
is_flag: Optional[bool] = None,
|
68
|
+
flag_value: Optional[Any] = None,
|
69
|
+
multiple: bool = False,
|
70
|
+
count: bool = False,
|
71
|
+
allow_from_autoenv: bool = True,
|
72
|
+
hidden: bool = False,
|
73
|
+
show_choices: bool = True,
|
74
|
+
show_envvar: bool = False,
|
75
|
+
nargs: int = 1,
|
76
|
+
should_render: bool = True,
|
77
|
+
):
|
78
|
+
BaseInput.__init__(
|
79
|
+
self,
|
80
|
+
name=name,
|
81
|
+
shortcut=shortcut,
|
82
|
+
default=default,
|
83
|
+
callback=callback,
|
84
|
+
description=description,
|
85
|
+
show_default=show_default,
|
86
|
+
prompt=prompt,
|
87
|
+
confirmation_prompt=confirmation_prompt,
|
88
|
+
prompt_required=prompt_required,
|
89
|
+
hide_input=hide_input,
|
90
|
+
is_flag=is_flag,
|
91
|
+
flag_value=flag_value,
|
92
|
+
multiple=multiple,
|
93
|
+
count=count,
|
94
|
+
allow_from_autoenv=allow_from_autoenv,
|
95
|
+
type=str,
|
96
|
+
hidden=hidden,
|
97
|
+
show_choices=show_choices,
|
98
|
+
show_envvar=show_envvar,
|
99
|
+
nargs=nargs,
|
100
|
+
should_render=should_render,
|
101
|
+
)
|
102
|
+
self._comment_start = comment_start
|
103
|
+
self._editor = editor
|
104
|
+
|
105
|
+
def _wrapped_default(self) -> Any:
|
106
|
+
if self.get_name() not in self.__default:
|
107
|
+
text = super()._wrapped_default()
|
108
|
+
prompt = self._prompt if isinstance(self._prompt, str) else self.get_name()
|
109
|
+
mark_comment = " ".join([self._comment_start, prompt])
|
110
|
+
self.__default[self.get_name()] = edit(
|
111
|
+
editor=self._editor, mark_comment=mark_comment, text=text
|
112
|
+
)
|
113
|
+
return self.__default[self.get_name()]
|
zrb/task_input/password_input.py
CHANGED
@@ -2,7 +2,7 @@ from zrb.helper.accessories.color import colored
|
|
2
2
|
from zrb.helper.log import logger
|
3
3
|
from zrb.helper.typecheck import typechecked
|
4
4
|
from zrb.helper.typing import Any, Optional, Union
|
5
|
-
from zrb.task_input.base_input import BaseInput
|
5
|
+
from zrb.task_input.base_input import BaseInput, InputCallback, InputDefault
|
6
6
|
|
7
7
|
logger.debug(colored("Loading zrb.task_input.password_input", attrs=["dark"]))
|
8
8
|
|
@@ -23,8 +23,9 @@ class PasswordInput(BaseInput):
|
|
23
23
|
name (str): The name of the input, serving as an identifier.
|
24
24
|
shortcut (Optional[str]): An optional shortcut string for the input.
|
25
25
|
default (Optional[Any]): The default value for the input, expected to be a string if set.
|
26
|
-
|
27
|
-
|
26
|
+
callback (Optional[Any]): The default value of the input.
|
27
|
+
description (Optional[str]): A brief description of what the input is for.
|
28
|
+
show_default (Union[bool, JinjaTemplate, None]): Determines the default value to be shown.
|
28
29
|
prompt (Union[bool, str]): A boolean or string to prompt the user for input. If `True`, uses the default prompt.
|
29
30
|
confirmation_prompt (Union[bool, str]): If `True`, the user is asked to confirm the input.
|
30
31
|
prompt_required (bool): If `True`, the prompt for input is mandatory.
|
@@ -49,9 +50,10 @@ class PasswordInput(BaseInput):
|
|
49
50
|
self,
|
50
51
|
name: str,
|
51
52
|
shortcut: Optional[str] = None,
|
52
|
-
default: Optional[Any] = None,
|
53
|
+
default: Optional[Union[Any, InputDefault]] = None,
|
54
|
+
callback: Optional[InputCallback] = None,
|
53
55
|
description: Optional[str] = None,
|
54
|
-
show_default: Union[bool, str
|
56
|
+
show_default: Union[bool, str] = True,
|
55
57
|
prompt: Union[bool, str] = True,
|
56
58
|
confirmation_prompt: Union[bool, str] = False,
|
57
59
|
prompt_required: bool = True,
|
@@ -71,6 +73,7 @@ class PasswordInput(BaseInput):
|
|
71
73
|
name=name,
|
72
74
|
shortcut=shortcut,
|
73
75
|
default=default,
|
76
|
+
callback=callback,
|
74
77
|
description=description,
|
75
78
|
show_default=show_default,
|
76
79
|
prompt=prompt,
|
zrb/task_input/str_input.py
CHANGED
@@ -2,7 +2,7 @@ from zrb.helper.accessories.color import colored
|
|
2
2
|
from zrb.helper.log import logger
|
3
3
|
from zrb.helper.typecheck import typechecked
|
4
4
|
from zrb.helper.typing import Any, Optional, Union
|
5
|
-
from zrb.task_input.base_input import BaseInput
|
5
|
+
from zrb.task_input.base_input import BaseInput, InputCallback, InputDefault
|
6
6
|
|
7
7
|
logger.debug(colored("Loading zrb.task_input.str_input", attrs=["dark"]))
|
8
8
|
|
@@ -22,8 +22,9 @@ class StrInput(BaseInput):
|
|
22
22
|
name (str): The name of the input, used as an identifier.
|
23
23
|
shortcut (Optional[str]): An optional shortcut string for the input.
|
24
24
|
default (Optional[Any]): The default value for the input, expected to be a string if set.
|
25
|
-
|
26
|
-
|
25
|
+
callback (Optional[Any]): The default value of the input.
|
26
|
+
description (Optional[str]): A brief description of what the input is for.
|
27
|
+
show_default (Union[bool, JinjaTemplate, None]): Determines the default value to be shown.
|
27
28
|
prompt (Union[bool, str]): A boolean or string to prompt the user for input. If `True`, uses the default prompt.
|
28
29
|
confirmation_prompt (Union[bool, str]): If `True`, the user is asked to confirm the input.
|
29
30
|
prompt_required (bool): If `True’, the prompt for input is mandatory.
|
@@ -49,9 +50,10 @@ class StrInput(BaseInput):
|
|
49
50
|
self,
|
50
51
|
name: str,
|
51
52
|
shortcut: Optional[str] = None,
|
52
|
-
default: Optional[Any] = None,
|
53
|
+
default: Optional[Union[Any, InputDefault]] = None,
|
54
|
+
callback: Optional[InputCallback] = None,
|
53
55
|
description: Optional[str] = None,
|
54
|
-
show_default: Union[bool, str
|
56
|
+
show_default: Union[bool, str] = True,
|
55
57
|
prompt: Union[bool, str] = True,
|
56
58
|
confirmation_prompt: Union[bool, str] = False,
|
57
59
|
prompt_required: bool = True,
|
@@ -72,6 +74,7 @@ class StrInput(BaseInput):
|
|
72
74
|
name=name,
|
73
75
|
shortcut=shortcut,
|
74
76
|
default=default,
|
77
|
+
callback=callback,
|
75
78
|
description=description,
|
76
79
|
show_default=show_default,
|
77
80
|
prompt=prompt,
|
zrb/task_input/task_input.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
from zrb.helper.accessories.color import colored
|
2
2
|
from zrb.helper.log import logger
|
3
|
-
from zrb.task_input.base_input import BaseInput
|
3
|
+
from zrb.task_input.base_input import BaseInput, InputCallback, InputDefault
|
4
4
|
|
5
5
|
logger.debug(colored("Loading zrb.task_input.task_input", attrs=["dark"]))
|
6
6
|
|
@@ -15,8 +15,9 @@ class Input(BaseInput):
|
|
15
15
|
name (str): The name of the input, used as a unique identifier.
|
16
16
|
shortcut (Optional[str]): An optional single-character shortcut for the input.
|
17
17
|
default (Optional[Any]): The default value of the input.
|
18
|
+
callback (Optional[Any]): The default value of the input.
|
18
19
|
description (Optional[str]): A brief description of what the input is for.
|
19
|
-
show_default (Union[bool, JinjaTemplate, None]): Determines
|
20
|
+
show_default (Union[bool, JinjaTemplate, None]): Determines the default value to be shown.
|
20
21
|
prompt (Union[bool, str]): The prompt text to be displayed when asking for the input.
|
21
22
|
confirmation_prompt (Union[bool, str]): A prompt for confirmation if required.
|
22
23
|
prompt_required (bool): Indicates whether a prompt is required.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
zrb/__init__.py,sha256=
|
1
|
+
zrb/__init__.py,sha256=JHeTmm8QkMcg1FhI4eEL4jOGqF1sJ774eR-m8_0KtP8,2894
|
2
2
|
zrb/__main__.py,sha256=-_k0XOahDF-06n41Uly-oUMkZ8XDSxO-WUUImWz6GiA,171
|
3
3
|
zrb/action/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
4
|
zrb/action/runner.py,sha256=oizUiLa4wa4CjXppbw_YUFlkAUSwapfoQ1YAo9TEY30,5079
|
@@ -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=
|
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=
|
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=
|
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=
|
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=
|
201
|
-
zrb/builtin/project/add/fastapp/app/app.py,sha256=
|
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,11 +1153,11 @@ 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=
|
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=
|
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
|
-
zrb/builtin/project/add/fastapp/crud/nodejs/codemod/package-lock.json,sha256=
|
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
|
1162
1162
|
zrb/builtin/project/add/fastapp/crud/nodejs/codemod/src/addNav.ts,sha256=LeiRM_woR2rA6Se9zuZgBuo0WgtEFyYqHXQRufltEQ4,1460
|
1163
1163
|
zrb/builtin/project/add/fastapp/crud/nodejs/codemod/src/fastapp/src/frontend/src/lib/config/navData.ts,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -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=
|
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
|
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=
|
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=
|
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=
|
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
|
@@ -1294,7 +1294,7 @@ zrb/builtin/update.py,sha256=89i_fPUlL27IXczLI7Lr7k4STMpnxyw2je8daCKUTQo,225
|
|
1294
1294
|
zrb/builtin/version.py,sha256=vjbmSeOSEjT0SgdeQHGslwFCQMukwVZkOOkusZGZNcU,394
|
1295
1295
|
zrb/builtin/watch_changes.py,sha256=Vr__e_T31nnbefcPftvyn78dT3-UXqNRpH0KO-COeKQ,1220
|
1296
1296
|
zrb/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1297
|
-
zrb/config/config.py,sha256=
|
1297
|
+
zrb/config/config.py,sha256=pba-BbPFjfeH-U_cZyi3L8lElf1nyCFTYbKAzFJrWaQ,1616
|
1298
1298
|
zrb/helper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1299
1299
|
zrb/helper/accessories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1300
1300
|
zrb/helper/accessories/color.py,sha256=E5OxlSOaN9skojG4gpD9tlBYyHDFC-YhLi_DoPCBbcg,948
|
@@ -1332,6 +1332,7 @@ zrb/helper/loader/load_module.py,sha256=qLYFTBKnrxlmgEA_-uepAM16LwpIx3XyfvXSIvJE
|
|
1332
1332
|
zrb/helper/log.py,sha256=lQBWNWc5UUz4BOzixWOMWjldcCRgycn1Pnn2nTJ7hlg,544
|
1333
1333
|
zrb/helper/map/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1334
1334
|
zrb/helper/map/conversion.py,sha256=I4VTrtv5c9OpfQ2lc7icxCgduWB46_qBtOh1RdjaPq0,603
|
1335
|
+
zrb/helper/multilline.py,sha256=hVbl1eqItrB211j-A9MROltC5tVm8ORttQ1rTlZghBA,313
|
1335
1336
|
zrb/helper/python_task.py,sha256=8FSMK5wHkNQUILUkDa-wNjfTYfQYFbItdKDPL35gRZ0,625
|
1336
1337
|
zrb/helper/render_data.py,sha256=sWQIQtdP61RDOoSh2_0ZJkKzDRmEsDLN18ADlhNWoAo,835
|
1337
1338
|
zrb/helper/string/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -1394,17 +1395,18 @@ zrb/task_group/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1394
1395
|
zrb/task_group/group.py,sha256=uF3tyLABTyyBNyE9FUCfJeYSDnaLFQCis3tuEn5FYho,6109
|
1395
1396
|
zrb/task_input/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1396
1397
|
zrb/task_input/any_input.py,sha256=-uOq1ONXdhW20FRkC3pzqX081tbfmWjvCc_-d-gCNGY,2087
|
1397
|
-
zrb/task_input/base_input.py,sha256=
|
1398
|
-
zrb/task_input/bool_input.py,sha256=
|
1399
|
-
zrb/task_input/choice_input.py,sha256=
|
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
|
1400
1401
|
zrb/task_input/constant.py,sha256=VEsnrI0BDdCJ1Z58EJgxXUhZBe5CA8TfURo0cNu5CaQ,200
|
1401
|
-
zrb/task_input/float_input.py,sha256=
|
1402
|
-
zrb/task_input/int_input.py,sha256=
|
1403
|
-
zrb/task_input/
|
1404
|
-
zrb/task_input/
|
1405
|
-
zrb/task_input/
|
1406
|
-
zrb
|
1407
|
-
zrb-0.
|
1408
|
-
zrb-0.
|
1409
|
-
zrb-0.
|
1410
|
-
zrb-0.
|
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
|
+
zrb/task_input/task_input.py,sha256=WTj_qIQyRs-04-VotjNTcVyIuf6b2afInVoCQHoRmr0,2327
|
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
|
File without changes
|