zrb 0.23.4__py3-none-any.whl → 0.24.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/devtool/install/_input.py +2 -2
- 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 +5 -6
- zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/start.py +5 -6
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_helper.py +1 -52
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/start.py +5 -6
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/start.py +5 -6
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/start.py +4 -6
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/loadtest/locustfile.py +1 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/loadtest/template.env +1 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/config.py +59 -61
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app.py +28 -28
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app_lifespan.py +15 -15
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app_state.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/db_connection.py +14 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/frontend_index.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/log.py +6 -6
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/messagebus.py +33 -33
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/rpc.py +9 -9
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/access_token_scheme.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/access_token_util.py +7 -7
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/model/user_model.py +6 -6
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/refresh_token_util.py +7 -7
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/user.py +18 -18
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/migrate.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/register_module.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/migrate.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/register_module.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/template.env +5 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_group_crud.py +7 -7
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_permission_crud.py +7 -7
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_user_crud.py +7 -7
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_user_login.py +14 -14
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/test_liveness_and_readiness.py +3 -3
- zrb/builtin/project/add/fastapp/crud/_helper/__init__.py +7 -0
- zrb/builtin/project/add/fastapp/crud/_helper/_common.py +8 -0
- zrb/builtin/project/add/fastapp/crud/_helper/register_api.py +45 -0
- zrb/builtin/project/add/fastapp/crud/_helper/register_permission.py +40 -0
- zrb/builtin/project/add/fastapp/crud/_helper/register_rpc.py +45 -0
- zrb/builtin/project/add/fastapp/crud/crud.py +3 -24
- zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/repo.py +12 -1
- zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/schema/snake_zrb_entity_name.py +1 -0
- zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/test/snake_zrb_module_name/test_snake_zrb_entity_name.py +8 -7
- zrb/builtin/project/add/fastapp/field/_helper/__init__.py +17 -0
- zrb/builtin/project/add/fastapp/field/_helper/_common.py +102 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_delete_page.py +49 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_detail_page.py +49 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_insert_page.py +62 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_list_page.py +47 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_repo.py +47 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_schema.py +45 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_test.py +49 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_update_page.py +50 -0
- zrb/builtin/project/add/fastapp/field/_input.py +14 -2
- zrb/builtin/project/add/fastapp/field/field.py +51 -69
- zrb/builtin/project/add/fastapp/module/_helper/__init__.py +17 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_all_disabled_env.py +22 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_all_enabled_env.py +22 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_deployment_template_env.py +25 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_src_template_env.py +25 -0
- zrb/builtin/project/add/fastapp/module/_helper/create_app_config.py +29 -0
- zrb/builtin/project/add/fastapp/module/_helper/create_microservice_config.py +158 -0
- zrb/builtin/project/add/fastapp/module/_helper/register_migration.py +35 -0
- zrb/builtin/project/add/fastapp/module/_helper/register_module.py +33 -0
- zrb/builtin/project/add/fastapp/module/module.py +8 -37
- zrb/builtin/project/add/fastapp/module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/migrate.py +2 -2
- zrb/builtin/project/add/fastapp/module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/register_module.py +8 -8
- zrb/builtin/project/add/plugin/plugin.py +2 -2
- zrb/builtin/project/create/create.py +2 -2
- zrb/builtin/version.py +3 -3
- zrb/config/config.py +14 -14
- zrb/helper/callable.py +3 -1
- zrb/helper/cli.py +4 -4
- zrb/helper/log.py +3 -3
- zrb/helper/typecheck.py +2 -2
- zrb/helper/typing.py +2 -2
- zrb/helper/util.py +12 -0
- zrb/runner.py +2 -2
- zrb/task/base_task/base_task.py +3 -3
- zrb/task/base_task/component/base_task_model.py +9 -9
- zrb/task/cmd_task.py +4 -4
- zrb/task/docker_compose_start_task.py +151 -0
- zrb/task/docker_compose_task.py +32 -15
- zrb/task_input/base_input.py +2 -2
- zrb/task_input/multiline_input.py +2 -2
- {zrb-0.23.4.dist-info → zrb-0.24.0.dist-info}/METADATA +2 -2
- {zrb-0.23.4.dist-info → zrb-0.24.0.dist-info}/RECORD +90 -73
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/init.py +0 -34
- zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/init.py +0 -34
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/init.py +0 -36
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/init.py +0 -36
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/init.py +0 -26
- zrb/builtin/project/add/fastapp/crud/_helper.py +0 -118
- zrb/builtin/project/add/fastapp/field/_helper.py +0 -328
- zrb/builtin/project/add/fastapp/module/_helper.py +0 -313
- {zrb-0.23.4.dist-info → zrb-0.24.0.dist-info}/LICENSE +0 -0
- {zrb-0.23.4.dist-info → zrb-0.24.0.dist-info}/WHEEL +0 -0
- {zrb-0.23.4.dist-info → zrb-0.24.0.dist-info}/entry_points.txt +0 -0
@@ -4,7 +4,7 @@ import os
|
|
4
4
|
import sys
|
5
5
|
from functools import lru_cache
|
6
6
|
|
7
|
-
from zrb.config.config import
|
7
|
+
from zrb.config.config import ENV_PREFIX, LOGGING_LEVEL, SHOW_TIME
|
8
8
|
from zrb.helper.accessories.color import colored
|
9
9
|
from zrb.helper.log import logger
|
10
10
|
from zrb.helper.string.conversion import to_variable_name
|
@@ -118,35 +118,35 @@ class BaseTaskModel(CommonTaskModel, PidModel, TimeTracker):
|
|
118
118
|
self.__kwargs = kwargs
|
119
119
|
|
120
120
|
def log_debug(self, message: Any):
|
121
|
-
if
|
121
|
+
if LOGGING_LEVEL > logging.DEBUG:
|
122
122
|
return
|
123
123
|
prefix = self.__get_log_prefix()
|
124
124
|
colored_message = colored(f"{prefix} • {message}", attrs=["dark"])
|
125
125
|
logger.debug(colored_message)
|
126
126
|
|
127
127
|
def log_warn(self, message: Any):
|
128
|
-
if
|
128
|
+
if LOGGING_LEVEL > logging.WARNING:
|
129
129
|
return
|
130
130
|
prefix = self.__get_log_prefix()
|
131
131
|
colored_message = colored(f"{prefix} • {message}", attrs=["dark"])
|
132
132
|
logger.warning(colored_message)
|
133
133
|
|
134
134
|
def log_info(self, message: Any):
|
135
|
-
if
|
135
|
+
if LOGGING_LEVEL > logging.INFO:
|
136
136
|
return
|
137
137
|
prefix = self.__get_log_prefix()
|
138
138
|
colored_message = colored(f"{prefix} • {message}", attrs=["dark"])
|
139
139
|
logger.info(colored_message)
|
140
140
|
|
141
141
|
def log_error(self, message: Any):
|
142
|
-
if
|
142
|
+
if LOGGING_LEVEL > logging.ERROR:
|
143
143
|
return
|
144
144
|
prefix = self.__get_log_prefix()
|
145
145
|
colored_message = colored(f"{prefix} • {message}", color="red", attrs=["bold"])
|
146
146
|
logger.error(colored_message, exc_info=True)
|
147
147
|
|
148
148
|
def log_critical(self, message: Any):
|
149
|
-
if
|
149
|
+
if LOGGING_LEVEL > logging.CRITICAL:
|
150
150
|
return
|
151
151
|
prefix = self.__get_log_prefix()
|
152
152
|
colored_message = colored(f"{prefix} • {message}", color="red", attrs=["bold"])
|
@@ -192,9 +192,9 @@ class BaseTaskModel(CommonTaskModel, PidModel, TimeTracker):
|
|
192
192
|
self._play_bell()
|
193
193
|
|
194
194
|
def _show_env_prefix(self):
|
195
|
-
if
|
195
|
+
if ENV_PREFIX == "":
|
196
196
|
return
|
197
|
-
colored_env_prefix = colored(
|
197
|
+
colored_env_prefix = colored(ENV_PREFIX, color="yellow")
|
198
198
|
colored_label = colored("Your current environment: ", attrs=["dark"])
|
199
199
|
print(colored(f"{colored_label}{colored_env_prefix}"), file=sys.stderr)
|
200
200
|
|
@@ -225,7 +225,7 @@ class BaseTaskModel(CommonTaskModel, PidModel, TimeTracker):
|
|
225
225
|
return colored(text, color=self.get_color())
|
226
226
|
|
227
227
|
def __get_print_prefix(self) -> str:
|
228
|
-
common_prefix = self.__get_common_prefix(show_time=
|
228
|
+
common_prefix = self.__get_common_prefix(show_time=SHOW_TIME)
|
229
229
|
icon = self.get_icon()
|
230
230
|
length = LOG_NAME_LENGTH - len(icon)
|
231
231
|
rjust_cli_name = self.__get_rjust_full_cli_name(length)
|
zrb/task/cmd_task.py
CHANGED
@@ -8,7 +8,7 @@ import subprocess
|
|
8
8
|
import sys
|
9
9
|
import time
|
10
10
|
|
11
|
-
from zrb.config.config import
|
11
|
+
from zrb.config.config import DEFAULT_SHELL, LOGGING_LEVEL
|
12
12
|
from zrb.helper.accessories.color import colored
|
13
13
|
from zrb.helper.log import logger
|
14
14
|
from zrb.helper.typecheck import typechecked
|
@@ -57,7 +57,7 @@ def _reset_stty():
|
|
57
57
|
|
58
58
|
|
59
59
|
def _log_error(message: Any):
|
60
|
-
if
|
60
|
+
if LOGGING_LEVEL > logging.ERROR:
|
61
61
|
return
|
62
62
|
colored_message = colored(f"{message}", color="red", attrs=["bold"])
|
63
63
|
logger.error(colored_message, exc_info=True)
|
@@ -187,8 +187,8 @@ class CmdTask(BaseTask):
|
|
187
187
|
self._max_error_size = max_error_line
|
188
188
|
self._output_buffer: Iterable[str] = []
|
189
189
|
self._error_buffer: Iterable[str] = []
|
190
|
-
if executable is None and
|
191
|
-
executable =
|
190
|
+
if executable is None and DEFAULT_SHELL != "":
|
191
|
+
executable = DEFAULT_SHELL
|
192
192
|
self._executable = executable
|
193
193
|
self._process: Optional[asyncio.subprocess.Process]
|
194
194
|
self._preexec_fn = preexec_fn
|
@@ -0,0 +1,151 @@
|
|
1
|
+
import os
|
2
|
+
import pathlib
|
3
|
+
|
4
|
+
from zrb.helper.accessories.color import colored
|
5
|
+
from zrb.helper.log import logger
|
6
|
+
from zrb.helper.typecheck import typechecked
|
7
|
+
from zrb.helper.typing import (
|
8
|
+
Any,
|
9
|
+
Callable,
|
10
|
+
Iterable,
|
11
|
+
JinjaTemplate,
|
12
|
+
Mapping,
|
13
|
+
Optional,
|
14
|
+
Union,
|
15
|
+
)
|
16
|
+
from zrb.task.any_task import AnyTask
|
17
|
+
from zrb.task.any_task_event_handler import (
|
18
|
+
OnFailed,
|
19
|
+
OnReady,
|
20
|
+
OnRetry,
|
21
|
+
OnSkipped,
|
22
|
+
OnStarted,
|
23
|
+
OnTriggered,
|
24
|
+
OnWaiting,
|
25
|
+
)
|
26
|
+
from zrb.task.cmd_task import CmdVal
|
27
|
+
from zrb.task.docker_compose_task import DockerComposeTask, ServiceConfig
|
28
|
+
from zrb.task_env.env import Env
|
29
|
+
from zrb.task_env.env_file import EnvFile
|
30
|
+
from zrb.task_group.group import Group
|
31
|
+
from zrb.task_input.any_input import AnyInput
|
32
|
+
|
33
|
+
logger.debug(colored("Loading zrb.task.docker_compose_task", attrs=["dark"]))
|
34
|
+
|
35
|
+
|
36
|
+
@typechecked
|
37
|
+
class DockerComposeStartTask(DockerComposeTask):
|
38
|
+
def __init__(
|
39
|
+
self,
|
40
|
+
name: str,
|
41
|
+
group: Optional[Group] = None,
|
42
|
+
inputs: Iterable[AnyInput] = [],
|
43
|
+
envs: Iterable[Env] = [],
|
44
|
+
env_files: Iterable[EnvFile] = [],
|
45
|
+
icon: Optional[str] = None,
|
46
|
+
color: Optional[str] = None,
|
47
|
+
description: str = "",
|
48
|
+
executable: Optional[str] = None,
|
49
|
+
compose_service_configs: Mapping[str, ServiceConfig] = {},
|
50
|
+
compose_file: Optional[str] = None,
|
51
|
+
compose_options: Mapping[JinjaTemplate, JinjaTemplate] = {},
|
52
|
+
compose_flags: Iterable[JinjaTemplate] = [],
|
53
|
+
compose_args: Iterable[JinjaTemplate] = [],
|
54
|
+
compose_env_prefix: str = "",
|
55
|
+
setup_cmd: CmdVal = "",
|
56
|
+
setup_cmd_path: CmdVal = "",
|
57
|
+
cwd: Optional[Union[JinjaTemplate, pathlib.Path]] = None,
|
58
|
+
should_render_cwd: bool = True,
|
59
|
+
upstreams: Iterable[AnyTask] = [],
|
60
|
+
fallbacks: Iterable[AnyTask] = [],
|
61
|
+
on_triggered: Optional[OnTriggered] = None,
|
62
|
+
on_waiting: Optional[OnWaiting] = None,
|
63
|
+
on_skipped: Optional[OnSkipped] = None,
|
64
|
+
on_started: Optional[OnStarted] = None,
|
65
|
+
on_ready: Optional[OnReady] = None,
|
66
|
+
on_retry: Optional[OnRetry] = None,
|
67
|
+
on_failed: Optional[OnFailed] = None,
|
68
|
+
checkers: Iterable[AnyTask] = [],
|
69
|
+
checking_interval: Union[float, int] = 0.05,
|
70
|
+
retry: int = 2,
|
71
|
+
retry_interval: Union[float, int] = 1,
|
72
|
+
max_output_line: int = 1000,
|
73
|
+
max_error_line: int = 1000,
|
74
|
+
preexec_fn: Optional[Callable[[], Any]] = os.setsid,
|
75
|
+
should_execute: Union[bool, str, Callable[..., bool]] = True,
|
76
|
+
return_upstream_result: bool = False,
|
77
|
+
should_print_cmd_result: bool = True,
|
78
|
+
should_show_cmd: bool = True,
|
79
|
+
should_show_working_directory: bool = True,
|
80
|
+
):
|
81
|
+
DockerComposeTask.__init__(
|
82
|
+
self,
|
83
|
+
name=name,
|
84
|
+
group=group,
|
85
|
+
inputs=inputs,
|
86
|
+
envs=envs,
|
87
|
+
env_files=env_files,
|
88
|
+
icon=icon,
|
89
|
+
color=color,
|
90
|
+
description=description,
|
91
|
+
executable=executable,
|
92
|
+
compose_service_configs=compose_service_configs,
|
93
|
+
compose_file=compose_file,
|
94
|
+
compose_options=compose_options,
|
95
|
+
compose_flags=compose_flags,
|
96
|
+
compose_args=compose_args,
|
97
|
+
compose_env_prefix=compose_env_prefix,
|
98
|
+
setup_cmd=setup_cmd,
|
99
|
+
setup_cmd_path=setup_cmd_path,
|
100
|
+
cwd=cwd,
|
101
|
+
should_render_cwd=should_render_cwd,
|
102
|
+
upstreams=upstreams,
|
103
|
+
fallbacks=fallbacks,
|
104
|
+
on_triggered=on_triggered,
|
105
|
+
on_waiting=on_waiting,
|
106
|
+
on_skipped=on_skipped,
|
107
|
+
on_started=on_started,
|
108
|
+
on_ready=on_ready,
|
109
|
+
on_retry=on_retry,
|
110
|
+
on_failed=on_failed,
|
111
|
+
checkers=checkers,
|
112
|
+
checking_interval=checking_interval,
|
113
|
+
retry=retry,
|
114
|
+
retry_interval=retry_interval,
|
115
|
+
max_output_line=max_output_line,
|
116
|
+
max_error_line=max_error_line,
|
117
|
+
preexec_fn=preexec_fn,
|
118
|
+
should_execute=should_execute,
|
119
|
+
return_upstream_result=return_upstream_result,
|
120
|
+
should_print_cmd_result=should_print_cmd_result,
|
121
|
+
should_show_cmd=should_show_cmd,
|
122
|
+
should_show_working_directory=should_show_working_directory,
|
123
|
+
)
|
124
|
+
|
125
|
+
def get_cmd_script(self, *args: Any, **kwargs: Any) -> str:
|
126
|
+
cmd_str = "\n".join(
|
127
|
+
[
|
128
|
+
# setup
|
129
|
+
self._create_cmd_script(
|
130
|
+
self._setup_cmd_path, self._setup_cmd, *args, **kwargs
|
131
|
+
),
|
132
|
+
# compose start
|
133
|
+
self._get_docker_compose_cmd_script(
|
134
|
+
compose_cmd="up",
|
135
|
+
compose_options=self._compose_options,
|
136
|
+
compose_flags=list(self._compose_flags) + ["-d"],
|
137
|
+
compose_args=self._compose_args,
|
138
|
+
*args,
|
139
|
+
),
|
140
|
+
# compose log
|
141
|
+
self._get_docker_compose_cmd_script(
|
142
|
+
compose_cmd="logs",
|
143
|
+
compose_options={},
|
144
|
+
compose_flags=["-f"],
|
145
|
+
compose_args=[],
|
146
|
+
*args,
|
147
|
+
),
|
148
|
+
]
|
149
|
+
)
|
150
|
+
self.log_info(f"Command: {cmd_str}")
|
151
|
+
return cmd_str
|
zrb/task/docker_compose_task.py
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import os
|
2
2
|
import pathlib
|
3
3
|
|
4
|
-
from zrb.config.config import
|
4
|
+
from zrb.config.config import CONTAINER_BACKEND
|
5
5
|
from zrb.helper.accessories.color import colored
|
6
6
|
from zrb.helper.accessories.name import get_random_name
|
7
7
|
from zrb.helper.docker_compose.fetch_external_env import fetch_compose_file_env_map
|
@@ -66,7 +66,7 @@ def _get_ensure_zrb_network_task(backend: str):
|
|
66
66
|
|
67
67
|
|
68
68
|
TDockerComposeTask = TypeVar("TDockerComposeTask", bound="DockerComposeTask")
|
69
|
-
ensure_zrb_network_task = _get_ensure_zrb_network_task(
|
69
|
+
ensure_zrb_network_task = _get_ensure_zrb_network_task(CONTAINER_BACKEND)
|
70
70
|
|
71
71
|
|
72
72
|
@typechecked
|
@@ -341,10 +341,34 @@ class DockerComposeTask(CmdTask):
|
|
341
341
|
raise Exception(f"Invalid compose file: {compose_file}")
|
342
342
|
|
343
343
|
def get_cmd_script(self, *args: Any, **kwargs: Any) -> str:
|
344
|
-
|
345
|
-
|
344
|
+
cmd_str = "\n".join(
|
345
|
+
[
|
346
|
+
# setup
|
347
|
+
self._create_cmd_script(
|
348
|
+
self._setup_cmd_path, self._setup_cmd, *args, **kwargs
|
349
|
+
),
|
350
|
+
# compose
|
351
|
+
self._get_docker_compose_cmd_script(
|
352
|
+
compose_cmd=self._compose_cmd,
|
353
|
+
compose_options=self._compose_options,
|
354
|
+
compose_flags=self._compose_flags,
|
355
|
+
compose_args=self._compose_args,
|
356
|
+
*args,
|
357
|
+
),
|
358
|
+
]
|
346
359
|
)
|
347
|
-
|
360
|
+
self.log_info(f"Command: {cmd_str}")
|
361
|
+
return cmd_str
|
362
|
+
|
363
|
+
def _get_docker_compose_cmd_script(
|
364
|
+
self,
|
365
|
+
compose_cmd: str,
|
366
|
+
compose_options: Mapping[JinjaTemplate, JinjaTemplate],
|
367
|
+
compose_flags: Iterable[JinjaTemplate],
|
368
|
+
compose_args: Iterable[JinjaTemplate],
|
369
|
+
*args: Any,
|
370
|
+
) -> str:
|
371
|
+
command_options = dict(compose_options)
|
348
372
|
command_options["--file"] = self._compose_runtime_file
|
349
373
|
options = " ".join(
|
350
374
|
[
|
@@ -356,22 +380,15 @@ class DockerComposeTask(CmdTask):
|
|
356
380
|
flags = " ".join(
|
357
381
|
[
|
358
382
|
self.render_str(flag)
|
359
|
-
for flag in
|
383
|
+
for flag in compose_flags
|
360
384
|
if self.render_str(flag) != ""
|
361
385
|
]
|
362
386
|
)
|
363
387
|
args = " ".join(
|
364
388
|
[
|
365
389
|
double_quote(self.render_str(arg))
|
366
|
-
for arg in
|
390
|
+
for arg in compose_args
|
367
391
|
if self.render_str(arg) != ""
|
368
392
|
]
|
369
393
|
)
|
370
|
-
|
371
|
-
[
|
372
|
-
setup_cmd_str,
|
373
|
-
f"{container_backend} compose {options} {self._compose_cmd} {flags} {args}", # noqa
|
374
|
-
]
|
375
|
-
)
|
376
|
-
self.log_info(f"Command: {cmd_str}")
|
377
|
-
return cmd_str
|
394
|
+
return f"{CONTAINER_BACKEND} compose {options} {compose_cmd} {flags} {args}"
|
zrb/task_input/base_input.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
from zrb.config.config import
|
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
4
|
from zrb.helper.string.conversion import to_variable_name
|
@@ -141,7 +141,7 @@ class BaseInput(AnyInput):
|
|
141
141
|
"callback": self._wrapped_callback,
|
142
142
|
"default": self._wrapped_default,
|
143
143
|
}
|
144
|
-
if
|
144
|
+
if SHOW_PROMPT:
|
145
145
|
options["prompt"] = self._prompt
|
146
146
|
return options
|
147
147
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from zrb.config.config import
|
1
|
+
from zrb.config.config import DEFAULT_EDITOR
|
2
2
|
from zrb.helper.accessories.color import colored
|
3
3
|
from zrb.helper.log import logger
|
4
4
|
from zrb.helper.multiline import edit
|
@@ -56,7 +56,7 @@ class MultilineInput(BaseInput):
|
|
56
56
|
shortcut: Optional[str] = None,
|
57
57
|
comment_prefix: str = "//",
|
58
58
|
comment_suffix: str = "",
|
59
|
-
editor: str =
|
59
|
+
editor: str = DEFAULT_EDITOR,
|
60
60
|
extension: str = "txt",
|
61
61
|
default: Optional[Union[Any, InputDefault]] = None,
|
62
62
|
callback: Optional[InputCallback] = None,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: zrb
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.24.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
|
@@ -257,7 +257,7 @@ zrb project add fastapp crud --project-dir . --app-name "fastapp" --module-name
|
|
257
257
|
|
258
258
|
# Add column to the entity
|
259
259
|
zrb project add fastapp field --project-dir . --app-name "fastapp" --module-name "library" \
|
260
|
-
--entity-name "book" --column-name "title" --column-type "
|
260
|
+
--entity-name "book" --column-name "title" --column-type "string"
|
261
261
|
|
262
262
|
# Run Fastapp as monolith
|
263
263
|
zrb project fastapp monolith start
|