zrb 0.15.1__py3-none-any.whl → 0.16.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 +3 -0
- zrb/builtin/devtool/install/helix/resource/config.toml +2 -1
- zrb/builtin/process/pid/get_by_name.py +1 -1
- zrb/builtin/schedule.py +16 -10
- zrb/builtin/watch_changes.py +17 -14
- zrb/task/base_task/base_task.py +1 -1
- zrb/task/recurring_task.py +1 -0
- zrb/task/server.py +192 -0
- {zrb-0.15.1.dist-info → zrb-0.16.0.dist-info}/METADATA +1 -1
- {zrb-0.15.1.dist-info → zrb-0.16.0.dist-info}/RECORD +13 -12
- {zrb-0.15.1.dist-info → zrb-0.16.0.dist-info}/LICENSE +0 -0
- {zrb-0.15.1.dist-info → zrb-0.16.0.dist-info}/WHEEL +0 -0
- {zrb-0.15.1.dist-info → zrb-0.16.0.dist-info}/entry_points.txt +0 -0
zrb/__init__.py
CHANGED
@@ -32,6 +32,7 @@ from zrb.task.resource_maker import (
|
|
32
32
|
get_default_resource_skip_parsing,
|
33
33
|
)
|
34
34
|
from zrb.task.rsync_task import RsyncTask
|
35
|
+
from zrb.task.server import Controller, Server
|
35
36
|
from zrb.task.task import Task
|
36
37
|
from zrb.task.time_watcher import TimeWatcher
|
37
38
|
from zrb.task.wiki_task import create_wiki_tasks
|
@@ -74,6 +75,8 @@ assert HTTPChecker
|
|
74
75
|
assert PortChecker
|
75
76
|
assert PathChecker
|
76
77
|
assert PathWatcher
|
78
|
+
assert Controller
|
79
|
+
assert Server
|
77
80
|
assert TimeWatcher
|
78
81
|
assert ResourceMaker
|
79
82
|
assert FlowTask
|
@@ -3,6 +3,7 @@ theme = "gruvbox_transparent"
|
|
3
3
|
[editor]
|
4
4
|
line-number = "relative"
|
5
5
|
mouse = true
|
6
|
+
bufferline = "always"
|
6
7
|
|
7
8
|
[editor.cursor-shape]
|
8
9
|
insert = "bar"
|
@@ -16,4 +17,4 @@ enable = true
|
|
16
17
|
hidden = false
|
17
18
|
git-ignore = false
|
18
19
|
git-global = false
|
19
|
-
git-exclude = false
|
20
|
+
git-exclude = false
|
zrb/builtin/schedule.py
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
from zrb.builtin._helper.reccuring_action import create_recurring_action
|
2
2
|
from zrb.runner import runner
|
3
|
-
from zrb.task.
|
3
|
+
from zrb.task.server import Controller, Server
|
4
4
|
from zrb.task.time_watcher import TimeWatcher
|
5
5
|
from zrb.task_input.str_input import StrInput
|
6
6
|
|
7
|
-
schedule =
|
7
|
+
schedule = Server(
|
8
8
|
name="schedule",
|
9
9
|
icon="📅",
|
10
10
|
color="yellow",
|
@@ -17,15 +17,21 @@ schedule = RecurringTask(
|
|
17
17
|
description="Schedule cron pattern to show the message",
|
18
18
|
),
|
19
19
|
],
|
20
|
-
|
21
|
-
|
22
|
-
name="
|
20
|
+
controllers=[
|
21
|
+
Controller(
|
22
|
+
name="periodic",
|
23
|
+
trigger=TimeWatcher(
|
24
|
+
name="watch-time",
|
25
|
+
color="cyan",
|
26
|
+
icon="⏰",
|
27
|
+
schedule="{{input.schedule}}",
|
28
|
+
),
|
29
|
+
action=create_recurring_action(
|
30
|
+
notif_title="Schedule",
|
31
|
+
trigger_caption="Schedule",
|
32
|
+
trigger_xcom_key="watch-time.scheduled-time",
|
33
|
+
),
|
23
34
|
)
|
24
35
|
],
|
25
|
-
task=create_recurring_action(
|
26
|
-
notif_title="Schedule",
|
27
|
-
trigger_caption="Schedule",
|
28
|
-
trigger_xcom_key="watch-time.scheduled-time",
|
29
|
-
),
|
30
36
|
)
|
31
37
|
runner.register(schedule)
|
zrb/builtin/watch_changes.py
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
from zrb.builtin._helper.reccuring_action import create_recurring_action
|
2
2
|
from zrb.runner import runner
|
3
3
|
from zrb.task.path_watcher import PathWatcher
|
4
|
-
from zrb.task.
|
4
|
+
from zrb.task.server import Controller, Server
|
5
5
|
from zrb.task_input.str_input import StrInput
|
6
6
|
|
7
|
-
watch_changes =
|
7
|
+
watch_changes = Server(
|
8
8
|
name="watch-changes",
|
9
9
|
icon="🕵️",
|
10
10
|
color="yellow",
|
@@ -23,19 +23,22 @@ watch_changes = RecurringTask(
|
|
23
23
|
description="Ignored file pattern",
|
24
24
|
),
|
25
25
|
],
|
26
|
-
|
27
|
-
|
28
|
-
name="watch
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
26
|
+
controllers=[
|
27
|
+
Controller(
|
28
|
+
name="watch",
|
29
|
+
trigger=PathWatcher(
|
30
|
+
name="watch-path",
|
31
|
+
color="cyan",
|
32
|
+
icon="👀",
|
33
|
+
path="{{input.pattern}}",
|
34
|
+
ignored_path="{{input.ignored_pattern}}",
|
35
|
+
),
|
36
|
+
action=create_recurring_action(
|
37
|
+
notif_title="Watch",
|
38
|
+
trigger_caption="File changes",
|
39
|
+
trigger_xcom_key="watch-path.file",
|
40
|
+
),
|
33
41
|
)
|
34
42
|
],
|
35
|
-
task=create_recurring_action(
|
36
|
-
notif_title="Watch",
|
37
|
-
trigger_caption="File changes",
|
38
|
-
trigger_xcom_key="watch-path.file",
|
39
|
-
),
|
40
43
|
)
|
41
44
|
runner.register(watch_changes)
|
zrb/task/base_task/base_task.py
CHANGED
@@ -140,7 +140,7 @@ class BaseTask(FinishTracker, AttemptTracker, Renderer, BaseTaskModel, AnyTask):
|
|
140
140
|
xcom_dir = self.__get_xcom_dir()
|
141
141
|
xcom_file = os.path.join(xcom_dir, key)
|
142
142
|
with open(xcom_file, "w") as f:
|
143
|
-
f.write(value)
|
143
|
+
f.write(f"{value}")
|
144
144
|
|
145
145
|
def get_xcom(self, key: str) -> str:
|
146
146
|
self.__ensure_xcom_dir_exists()
|
zrb/task/recurring_task.py
CHANGED
@@ -115,6 +115,7 @@ class RecurringTask(BaseTask):
|
|
115
115
|
self._triggers: List[AnyTask] = [trigger.copy() for trigger in triggers]
|
116
116
|
self._run_configs: List[RunConfig] = []
|
117
117
|
self._single_execution = single_execution
|
118
|
+
self.print_err("Deprecated, please use Server instead")
|
118
119
|
|
119
120
|
async def _set_keyval(self, kwargs: Mapping[str, Any], env_prefix: str):
|
120
121
|
await super()._set_keyval(kwargs=kwargs, env_prefix=env_prefix)
|
zrb/task/server.py
ADDED
@@ -0,0 +1,192 @@
|
|
1
|
+
import asyncio
|
2
|
+
|
3
|
+
from zrb.helper.accessories.color import colored
|
4
|
+
from zrb.helper.accessories.name import get_random_name
|
5
|
+
from zrb.helper.log import logger
|
6
|
+
from zrb.helper.typecheck import typechecked
|
7
|
+
from zrb.helper.typing import Any, Callable, Iterable, List, Mapping, Optional, Union
|
8
|
+
from zrb.helper.util import to_kebab_case
|
9
|
+
from zrb.task.any_task import AnyTask
|
10
|
+
from zrb.task.any_task_event_handler import (
|
11
|
+
OnFailed,
|
12
|
+
OnReady,
|
13
|
+
OnRetry,
|
14
|
+
OnSkipped,
|
15
|
+
OnStarted,
|
16
|
+
OnTriggered,
|
17
|
+
OnWaiting,
|
18
|
+
)
|
19
|
+
from zrb.task.base_task.base_task import BaseTask
|
20
|
+
from zrb.task.flow_task import FlowTask
|
21
|
+
from zrb.task_env.env import Env
|
22
|
+
from zrb.task_env.env_file import EnvFile
|
23
|
+
from zrb.task_group.group import Group
|
24
|
+
from zrb.task_input.any_input import AnyInput
|
25
|
+
|
26
|
+
logger.debug(colored("Loading zrb.task.server", attrs=["dark"]))
|
27
|
+
|
28
|
+
|
29
|
+
@typechecked
|
30
|
+
class Controller:
|
31
|
+
def __init__(
|
32
|
+
self,
|
33
|
+
trigger: Union[AnyTask, List[AnyTask]],
|
34
|
+
action: Union[AnyTask, List[AnyTask]],
|
35
|
+
name: Optional[str] = None,
|
36
|
+
):
|
37
|
+
self._name = get_random_name() if name is None else name
|
38
|
+
self._triggers = [trigger] if isinstance(trigger, AnyTask) else trigger
|
39
|
+
self._actions = [action] if isinstance(action, AnyTask) else action
|
40
|
+
self._args: List[Any] = []
|
41
|
+
self._kwargs: Mapping[str, Any] = {}
|
42
|
+
self._inputs: List[AnyInput] = []
|
43
|
+
self._envs: List[Env] = []
|
44
|
+
self._env_files: List[EnvFile] = []
|
45
|
+
|
46
|
+
def set_args(self, args: List[Any]):
|
47
|
+
self._args = args
|
48
|
+
|
49
|
+
def set_kwargs(self, kwargs: Mapping[str, Any]):
|
50
|
+
self._kwargs = kwargs
|
51
|
+
|
52
|
+
def set_inputs(self, inputs: List[AnyInput]):
|
53
|
+
self._inputs = inputs
|
54
|
+
|
55
|
+
def set_envs(self, envs: List[Env]):
|
56
|
+
self._envs = envs
|
57
|
+
|
58
|
+
def set_env_files(self, env_files: List[EnvFile]):
|
59
|
+
self._env_files = env_files
|
60
|
+
|
61
|
+
def get_sub_env_files(self) -> Iterable[EnvFile]:
|
62
|
+
env_files = []
|
63
|
+
for trigger in self._triggers:
|
64
|
+
env_files += trigger.copy()._get_env_files()
|
65
|
+
for action in self._actions:
|
66
|
+
env_files += action.copy()._get_env_files()
|
67
|
+
return env_files
|
68
|
+
|
69
|
+
def get_sub_envs(self) -> Iterable[Env]:
|
70
|
+
envs = []
|
71
|
+
for trigger in self._triggers:
|
72
|
+
envs += trigger.copy()._get_envs()
|
73
|
+
for action in self._actions:
|
74
|
+
envs += action.copy()._get_envs()
|
75
|
+
return envs
|
76
|
+
|
77
|
+
def get_sub_inputs(self) -> Iterable[AnyInput]:
|
78
|
+
inputs = []
|
79
|
+
for trigger in self._triggers:
|
80
|
+
inputs += trigger.copy()._get_combined_inputs()
|
81
|
+
for action in self._actions:
|
82
|
+
inputs += action.copy()._get_combined_inputs()
|
83
|
+
return inputs
|
84
|
+
|
85
|
+
def to_function(self) -> Callable[..., Any]:
|
86
|
+
task = self._get_task()
|
87
|
+
|
88
|
+
async def fn() -> Any:
|
89
|
+
task_fn = task.to_function(is_async=True)
|
90
|
+
return await task_fn(*self._args, **self._kwargs)
|
91
|
+
|
92
|
+
return fn
|
93
|
+
|
94
|
+
def _get_task(self) -> AnyTask:
|
95
|
+
kebab_name = to_kebab_case(self._name)
|
96
|
+
actions = self._actions
|
97
|
+
actions.insert(0, self._get_reschedule_task())
|
98
|
+
task: AnyTask = FlowTask(
|
99
|
+
name=f"{kebab_name}-flow",
|
100
|
+
inputs=self._inputs,
|
101
|
+
envs=self._envs,
|
102
|
+
env_files=self._env_files,
|
103
|
+
steps=[self._triggers, actions],
|
104
|
+
)
|
105
|
+
return task
|
106
|
+
|
107
|
+
def _get_reschedule_task(self) -> AnyTask:
|
108
|
+
kebab_name = to_kebab_case(self._name)
|
109
|
+
|
110
|
+
async def on_ready(task: AnyTask):
|
111
|
+
task = self._get_task()
|
112
|
+
fn = task.to_function(is_async=True)
|
113
|
+
await fn()
|
114
|
+
|
115
|
+
return BaseTask(
|
116
|
+
name=f"{kebab_name}-reschedule",
|
117
|
+
on_ready=on_ready,
|
118
|
+
)
|
119
|
+
|
120
|
+
|
121
|
+
@typechecked
|
122
|
+
class Server(BaseTask):
|
123
|
+
|
124
|
+
def __init__(
|
125
|
+
self,
|
126
|
+
name: str,
|
127
|
+
controllers: List[Controller],
|
128
|
+
group: Optional[Group] = None,
|
129
|
+
inputs: Iterable[AnyInput] = [],
|
130
|
+
envs: Iterable[Env] = [],
|
131
|
+
env_files: Iterable[EnvFile] = [],
|
132
|
+
icon: Optional[str] = None,
|
133
|
+
color: Optional[str] = None,
|
134
|
+
description: str = "",
|
135
|
+
upstreams: Iterable[AnyTask] = [],
|
136
|
+
fallbacks: Iterable[AnyTask] = [],
|
137
|
+
on_triggered: Optional[OnTriggered] = None,
|
138
|
+
on_waiting: Optional[OnWaiting] = None,
|
139
|
+
on_skipped: Optional[OnSkipped] = None,
|
140
|
+
on_started: Optional[OnStarted] = None,
|
141
|
+
on_ready: Optional[OnReady] = None,
|
142
|
+
on_retry: Optional[OnRetry] = None,
|
143
|
+
on_failed: Optional[OnFailed] = None,
|
144
|
+
checkers: Iterable[AnyTask] = [],
|
145
|
+
checking_interval: float = 0,
|
146
|
+
retry: int = 0,
|
147
|
+
retry_interval: float = 1,
|
148
|
+
should_execute: Union[bool, str, Callable[..., bool]] = True,
|
149
|
+
return_upstream_result: bool = False,
|
150
|
+
):
|
151
|
+
inputs, envs, env_files = list(inputs), list(envs), list(env_files)
|
152
|
+
for controller in controllers:
|
153
|
+
inputs += controller.get_sub_inputs()
|
154
|
+
envs += controller.get_sub_envs()
|
155
|
+
env_files += controller.get_sub_env_files()
|
156
|
+
BaseTask.__init__(
|
157
|
+
self,
|
158
|
+
name=name,
|
159
|
+
group=group,
|
160
|
+
inputs=inputs,
|
161
|
+
envs=envs,
|
162
|
+
env_files=env_files,
|
163
|
+
icon=icon,
|
164
|
+
color=color,
|
165
|
+
description=description,
|
166
|
+
upstreams=upstreams,
|
167
|
+
fallbacks=fallbacks,
|
168
|
+
on_triggered=on_triggered,
|
169
|
+
on_waiting=on_waiting,
|
170
|
+
on_skipped=on_skipped,
|
171
|
+
on_started=on_started,
|
172
|
+
on_ready=on_ready,
|
173
|
+
on_retry=on_retry,
|
174
|
+
on_failed=on_failed,
|
175
|
+
checkers=checkers,
|
176
|
+
checking_interval=checking_interval,
|
177
|
+
retry=retry,
|
178
|
+
retry_interval=retry_interval,
|
179
|
+
should_execute=should_execute,
|
180
|
+
return_upstream_result=return_upstream_result,
|
181
|
+
)
|
182
|
+
self._controllers = controllers
|
183
|
+
|
184
|
+
async def run(self, *args: Any, **kwargs: Any):
|
185
|
+
for controller in self._controllers:
|
186
|
+
controller.set_envs(self._get_envs())
|
187
|
+
controller.set_env_files(self._get_env_files())
|
188
|
+
controller.set_inputs(self._get_inputs())
|
189
|
+
controller.set_args(args)
|
190
|
+
controller.set_kwargs(kwargs)
|
191
|
+
functions = [controller.to_function() for controller in self._controllers]
|
192
|
+
await asyncio.gather(*[fn() for fn in functions])
|
@@ -1,4 +1,4 @@
|
|
1
|
-
zrb/__init__.py,sha256=
|
1
|
+
zrb/__init__.py,sha256=x6qsXjDRBqBjW6EP1HXy3GlaJfeJxOJrmi7iTTjBINw,2762
|
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=Z_Rh60DA0U_HqO4t_NzWTmXvHVfdgaL5RQJfTnEZiFQ,4951
|
@@ -30,7 +30,7 @@ zrb/builtin/devtool/install/gvm/resource/config.sh,sha256=M_r6XjtoYZjx8rJaT3FIwV
|
|
30
30
|
zrb/builtin/devtool/install/helix/helix.py,sha256=W0Xm_eq0wIHcoq0CzG9WrQIH9tPByT-AZ-zi4Z72-U0,2098
|
31
31
|
zrb/builtin/devtool/install/helix/install-language-server.sh,sha256=ZkV_ARwhTnLjjbAhJe8Pvp1hyRYVn176DYwg7ObkQ1w,1040
|
32
32
|
zrb/builtin/devtool/install/helix/install.sh,sha256=Dsg65aEnpU8YnlvHwiKoxRpj8Jo8j3mejB4bTi2eeKo,1375
|
33
|
-
zrb/builtin/devtool/install/helix/resource/config.toml,sha256=
|
33
|
+
zrb/builtin/devtool/install/helix/resource/config.toml,sha256=35IwzDzXGfSnUH3O3nyd2IzDVOWyKqj6Kb3QuympXCE,305
|
34
34
|
zrb/builtin/devtool/install/helix/resource/themes/gruvbox_transparent.toml,sha256=Kz6AhxXKVHrP5mpFI99uPFyfUOvB_0x2fapj0tUkIaA,56
|
35
35
|
zrb/builtin/devtool/install/helm/helm.py,sha256=Y2Iklrcw4-OQYNIjeuKmuIzpdAqGGcl82ZSHMFWck_E,762
|
36
36
|
zrb/builtin/devtool/install/helm/install.sh,sha256=fqjaTsO25B2MV7134sriSY5hQ2A1VRsaLc3WmD5jKu4,228
|
@@ -90,7 +90,7 @@ zrb/builtin/process/__init__.py,sha256=dWM1zIehY65rkJvEAFvX6HGJHL8kb1gkzaSz0Woay
|
|
90
90
|
zrb/builtin/process/_group.py,sha256=KY7iQ_pvqe5iVsRFeLWs-O-xuSyqlTXVj47_TCnu7zQ,118
|
91
91
|
zrb/builtin/process/pid/__init__.py,sha256=Rcb3bYgR_oVNOlaggYjcRipHRehrumZuQyadrguXdR0,293
|
92
92
|
zrb/builtin/process/pid/_group.py,sha256=SUe7G8tmfg_Q-X3nHOqCUMjDXlTE_hb9gAKVie2wQ2A,195
|
93
|
-
zrb/builtin/process/pid/get_by_name.py,sha256=
|
93
|
+
zrb/builtin/process/pid/get_by_name.py,sha256=cW4c9l4JUGa9w5VHUFWi_3tUyx55t7-6i12Gm_hCkhQ,637
|
94
94
|
zrb/builtin/process/pid/get_by_port.py,sha256=_yz0jBAV7qIo-eU33peDgVhtzYhMAxAHOc6xQtDwXyc,640
|
95
95
|
zrb/builtin/project/__init__.py,sha256=i1YF08_6UjNznYeL0iGTbU8o5yz7iw41RYd8UgeB8U4,887
|
96
96
|
zrb/builtin/project/_group.py,sha256=RPWt2YOLIqF7ZznzkSeFm9dozz1oCKmpCWCA1jjgsl4,112
|
@@ -1280,7 +1280,7 @@ zrb/builtin/project/create/template/src/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeu
|
|
1280
1280
|
zrb/builtin/project/create/template/template.env,sha256=Y_11yIi7fA5aIOHxrcexFXNxz1UqXaEiIgqUHBazy0w,102
|
1281
1281
|
zrb/builtin/project/create/template/zrb_init.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1282
1282
|
zrb/builtin/say.py,sha256=KHuzgwitmWQy5g7N11qqs9iV-66vvAl0Uyke9hdc-Eg,3859
|
1283
|
-
zrb/builtin/schedule.py,sha256
|
1283
|
+
zrb/builtin/schedule.py,sha256=DtAhHhG56LuneLo9xENPkaP91tOD3Hb1pwBSmkr2eLo,1154
|
1284
1284
|
zrb/builtin/ubuntu/__init__.py,sha256=79JyTzx6pyhtEa7hrsUTNaAQ7xlrgDX1KU74OG8mhic,486
|
1285
1285
|
zrb/builtin/ubuntu/_group.py,sha256=6VhCi-wZRuwvmELlvqvVSOfYLnibP8SQIT2GpaDPtOA,115
|
1286
1286
|
zrb/builtin/ubuntu/install/__init__.py,sha256=AoGq7pPn8FWoRXrEwiaX1ZBBQTzFpqIjpwIx4aajpa8,472
|
@@ -1292,7 +1292,7 @@ zrb/builtin/ubuntu/install/toys.py,sha256=VlWb8_aHW1kRK6vpjpAveNByc1FlsMPLFXl1X9
|
|
1292
1292
|
zrb/builtin/ubuntu/update.py,sha256=m3UREE6DhwlbdkQpuug2sfEM6fBLZn0ZGClt_EOsZ_I,372
|
1293
1293
|
zrb/builtin/update.py,sha256=89i_fPUlL27IXczLI7Lr7k4STMpnxyw2je8daCKUTQo,225
|
1294
1294
|
zrb/builtin/version.py,sha256=vjbmSeOSEjT0SgdeQHGslwFCQMukwVZkOOkusZGZNcU,394
|
1295
|
-
zrb/builtin/watch_changes.py,sha256=
|
1295
|
+
zrb/builtin/watch_changes.py,sha256=ifDs6sXAMaOmCas0j8RRb5_u8v9_V2zMVzyYH3Dz364,1320
|
1296
1296
|
zrb/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1297
1297
|
zrb/config/config.py,sha256=6uDxOLmHHstLCosj2miBVxlO9dMTIoXYedqaff8EVBU,1567
|
1298
1298
|
zrb/helper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -1359,7 +1359,7 @@ zrb/task/any_task.py,sha256=WHsEUfWjRvvDqF0fxHh4_q2LmdJcnfVC9y0HFleiBZ0,39393
|
|
1359
1359
|
zrb/task/any_task_event_handler.py,sha256=AjTC6lIcprutRusNBGl83EifQe4TbZzxdlVIR4ndWN4,524
|
1360
1360
|
zrb/task/base_remote_cmd_task.py,sha256=tZi3jODMXfTkDAmWiFR2YdA-b4-TDTP1uLtO0ulmM34,10101
|
1361
1361
|
zrb/task/base_task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1362
|
-
zrb/task/base_task/base_task.py,sha256=
|
1362
|
+
zrb/task/base_task/base_task.py,sha256=i7WEsvTImjzYDxYUb1VifAunkJfiYQx2I4e3NKOOqY8,20212
|
1363
1363
|
zrb/task/base_task/component/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1364
1364
|
zrb/task/base_task/component/base_task_model.py,sha256=YlEuvYSzlrK83Kds07bu2drKSw3rKyl7qIR1qwIPNZk,10376
|
1365
1365
|
zrb/task/base_task/component/common_task_model.py,sha256=JoAAf8EvuPx31fCK_TBxX_TBeHZrZyFDjLeK8ts0w3A,12285
|
@@ -1377,10 +1377,11 @@ zrb/task/parallel.py,sha256=-coMuiFlS29GpBgW6plPVaCLesgzzD0bYib29OvhXFg,1193
|
|
1377
1377
|
zrb/task/path_checker.py,sha256=65GpplGing3QeBPDtc1A_-PWXXiNItCXqabMLcgzm6s,4384
|
1378
1378
|
zrb/task/path_watcher.py,sha256=UR-XMEB-Kly76T4QgGZSTeLxCk_sIiNi__Pm8FfO-yA,6499
|
1379
1379
|
zrb/task/port_checker.py,sha256=uvOJPQqcZ_YQ1TTOxTfgfSc-7rAnSCWTYTgnY-eG4HY,4303
|
1380
|
-
zrb/task/recurring_task.py,sha256=
|
1380
|
+
zrb/task/recurring_task.py,sha256=FNxV7n4h9AzUCU8oKXwAS_A9j1newS-esWjmMsC33vE,7430
|
1381
1381
|
zrb/task/remote_cmd_task.py,sha256=rmLB5uCcbbfZBy8-nAZI8mgnNd-J2d4SBemLEDwSlV4,3951
|
1382
1382
|
zrb/task/resource_maker.py,sha256=vY55cBCJMYQzkVKygkb6aNTJT6kfSjPunJqHKGA2N2Y,7355
|
1383
1383
|
zrb/task/rsync_task.py,sha256=bgCeZQTG-4isvjZGGs_05oOEkkwGc930NTyuUYUm_cg,4187
|
1384
|
+
zrb/task/server.py,sha256=w99_9cCEitf6k2sZfLTAc9CgEOsBlcK6yO1SjU3FdWQ,6398
|
1384
1385
|
zrb/task/task.py,sha256=dHv4cmnd0QFPT9PwrfmHpxTaXj86mm8xf7_jAj_engI,329
|
1385
1386
|
zrb/task/time_watcher.py,sha256=c5IPxUs4b5BsgGqyvjRVpeqXFJCHgCV-ke6uIvZ-_7A,4139
|
1386
1387
|
zrb/task/wiki_task.py,sha256=Mcugk_6Pd7pzubi2ZP4eegJs8e9niYKh-9mCrNHXE_g,4330
|
@@ -1400,8 +1401,8 @@ zrb/task_input/int_input.py,sha256=d2fXcm5fCo09472eMAm6PdzLQD82ZBV9ARq5CjKepAo,4
|
|
1400
1401
|
zrb/task_input/password_input.py,sha256=g_g8ZWAzDaHx4h2EHY3UCGvTigC6esAUBzXU0T9nDUk,4192
|
1401
1402
|
zrb/task_input/str_input.py,sha256=BNflOhrJvST9bWK0rGdCi7C7y-QDvHj9ISQMRmujIWU,4200
|
1402
1403
|
zrb/task_input/task_input.py,sha256=x1sGHsoSYAYMdQBrCLmcvZa_ZmGggMPj3goAQzewUKI,2181
|
1403
|
-
zrb-0.
|
1404
|
-
zrb-0.
|
1405
|
-
zrb-0.
|
1406
|
-
zrb-0.
|
1407
|
-
zrb-0.
|
1404
|
+
zrb-0.16.0.dist-info/LICENSE,sha256=WfnGCl8G60EYOPAEkuc8C9m9pdXWDe08NsKj3TBbxsM,728
|
1405
|
+
zrb-0.16.0.dist-info/METADATA,sha256=jDQM9ixJuvZpigI0o7T6LhNsL15-71CxyWhgAdbyfCQ,16460
|
1406
|
+
zrb-0.16.0.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
1407
|
+
zrb-0.16.0.dist-info/entry_points.txt,sha256=xTgXc1kBKYhJHEujdaSPHUcJT3-hbyP1mLgwkv-5sSk,40
|
1408
|
+
zrb-0.16.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|