zrb 0.26.0__py3-none-any.whl → 0.26.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,15 @@
1
+ log_info() {
2
+ echo -e "🤖 \e[0;33m${1}\e[0;0m"
3
+ }
4
+
5
+ log_error() {
6
+ echo -e "\e[1;31m${1}\e[0;0m" >&2
7
+ }
8
+
9
+ log_conflict_error() {
10
+ log_error "Action blocked by unresolved conflicts."
11
+ log_error "You need to resolve the conflict(s) and commit the changes."
12
+ log_error "Unresolved conflict(s) detected:"
13
+ log_error "$1"
14
+ }
15
+
@@ -2,8 +2,8 @@ import json
2
2
  import os
3
3
  from collections.abc import Mapping
4
4
 
5
- _PROJECT_DIR = os.getenv("ZRB_PROJECT_DIR", ".")
6
- MONOREPO_CONFIG_FILE = os.path.join(_PROJECT_DIR, "monorepo.zrb.json")
5
+ PROJECT_DIR = os.getenv("ZRB_PROJECT_DIR", ".")
6
+ MONOREPO_CONFIG_FILE = os.path.join(PROJECT_DIR, "monorepo.zrb.json")
7
7
  MONOREPO_CONFIG: Mapping[str, Mapping[str, str]] = {}
8
8
 
9
9
  if os.path.isfile(MONOREPO_CONFIG_FILE):
@@ -0,0 +1,140 @@
1
+ import os
2
+
3
+ from zrb.builtin.monorepo._config import PROJECT_DIR
4
+ from zrb.task.cmd_task import CmdTask
5
+ from zrb.task_env.env import Env
6
+ from zrb.task_input.any_input import AnyInput
7
+ from zrb.task_input.str_input import StrInput
8
+
9
+ _CURRENT_DIR = os.path.dirname(__file__)
10
+
11
+
12
+ def create_pull_monorepo_task(
13
+ task_name: str = "pull-monorepo",
14
+ ) -> CmdTask:
15
+ return CmdTask(
16
+ name=task_name,
17
+ envs=[
18
+ Env("TIME", os_name="", default="{{datetime.datetime.now()}}"),
19
+ ],
20
+ cmd_path=[
21
+ os.path.join(_CURRENT_DIR, "_common.sh"),
22
+ os.path.join(_CURRENT_DIR, "pull-monorepo.sh"),
23
+ ],
24
+ cwd=PROJECT_DIR,
25
+ should_show_cmd=False,
26
+ should_show_working_directory=False,
27
+ should_print_cmd_result=False,
28
+ retry=0,
29
+ )
30
+
31
+
32
+ def create_push_monorepo_task(
33
+ task_name: str = "push-monorepo", default_commit_message: str = "Save changes"
34
+ ) -> CmdTask:
35
+ return CmdTask(
36
+ name=task_name,
37
+ inputs=[_create_commit_message_input(default_commit_message)],
38
+ envs=[
39
+ Env("MESSAGE", os_name="", default="{{input.message}}"),
40
+ ],
41
+ cmd_path=[
42
+ os.path.join(_CURRENT_DIR, "_common.sh"),
43
+ os.path.join(_CURRENT_DIR, "push-monorepo.sh"),
44
+ ],
45
+ cwd=PROJECT_DIR,
46
+ should_show_cmd=False,
47
+ should_show_working_directory=False,
48
+ should_print_cmd_result=False,
49
+ retry=0,
50
+ )
51
+
52
+
53
+ def create_add_subrepo_task(
54
+ origin: str,
55
+ folder: str,
56
+ branch: str,
57
+ task_name: str = "add",
58
+ ) -> CmdTask:
59
+ return CmdTask(
60
+ name=task_name,
61
+ envs=[
62
+ Env("ORIGIN", os_name="", default=origin),
63
+ Env("FOLDER", os_name="", default=folder),
64
+ Env("BRANCH", os_name="", default=branch),
65
+ Env("TIME", os_name="", default="{{datetime.datetime.now()}}"),
66
+ ],
67
+ cmd_path=[
68
+ os.path.join(_CURRENT_DIR, "_common.sh"),
69
+ os.path.join(_CURRENT_DIR, "add-subrepo.sh"),
70
+ ],
71
+ cwd=PROJECT_DIR,
72
+ should_show_cmd=False,
73
+ should_show_working_directory=False,
74
+ should_print_cmd_result=False,
75
+ retry=0,
76
+ )
77
+
78
+
79
+ def create_pull_subrepo_task(
80
+ origin: str,
81
+ folder: str,
82
+ branch: str,
83
+ task_name: str = "pull",
84
+ ) -> CmdTask:
85
+ return CmdTask(
86
+ name=task_name,
87
+ envs=[
88
+ Env("ORIGIN", os_name="", default=origin),
89
+ Env("FOLDER", os_name="", default=folder),
90
+ Env("BRANCH", os_name="", default=branch),
91
+ Env("TIME", os_name="", default="{{datetime.datetime.now()}}"),
92
+ ],
93
+ cmd_path=[
94
+ os.path.join(_CURRENT_DIR, "_common.sh"),
95
+ os.path.join(_CURRENT_DIR, "pull-subrepo.sh"),
96
+ ],
97
+ cwd=PROJECT_DIR,
98
+ should_show_cmd=False,
99
+ should_show_working_directory=False,
100
+ should_print_cmd_result=False,
101
+ retry=0,
102
+ )
103
+
104
+
105
+ def create_push_subrepo_task(
106
+ origin: str,
107
+ folder: str,
108
+ branch: str,
109
+ task_name: str = "push",
110
+ default_commit_message: str = "Commit",
111
+ ) -> CmdTask:
112
+ return CmdTask(
113
+ name=task_name,
114
+ inputs=[_create_commit_message_input(default_commit_message)],
115
+ envs=[
116
+ Env("ORIGIN", os_name="", default=origin),
117
+ Env("FOLDER", os_name="", default=folder),
118
+ Env("BRANCH", os_name="", default=branch),
119
+ Env("TIME", os_name="", default="{{datetime.datetime.now()}}"),
120
+ Env("MESSAGE", os_name="", default="{{input.message}}"),
121
+ ],
122
+ cmd_path=[
123
+ os.path.join(_CURRENT_DIR, "_common.sh"),
124
+ os.path.join(_CURRENT_DIR, "push-subrepo.sh"),
125
+ ],
126
+ cwd=PROJECT_DIR,
127
+ should_show_cmd=False,
128
+ should_show_working_directory=False,
129
+ should_print_cmd_result=False,
130
+ retry=0,
131
+ )
132
+
133
+
134
+ def _create_commit_message_input(default: str) -> AnyInput:
135
+ return StrInput(
136
+ name="message",
137
+ shortcut="m",
138
+ prompt="Commit Message",
139
+ default=default,
140
+ )
@@ -1,27 +1,18 @@
1
- import os
2
- from datetime import datetime
3
-
4
1
  from zrb.builtin.monorepo._config import MONOREPO_CONFIG
5
2
  from zrb.builtin.monorepo._group import monorepo_group
3
+ from zrb.builtin.monorepo._helper import (
4
+ create_add_subrepo_task,
5
+ create_pull_monorepo_task,
6
+ create_pull_subrepo_task,
7
+ create_push_monorepo_task,
8
+ create_push_subrepo_task,
9
+ )
6
10
  from zrb.helper.util import to_kebab_case
7
11
  from zrb.runner import runner
8
- from zrb.task.cmd_task import CmdTask
12
+ from zrb.task.flow_task import FlowTask
9
13
  from zrb.task_group.group import Group
10
- from zrb.task_input.str_input import StrInput
11
14
 
12
- _PROJECT_DIR = os.getenv("ZRB_PROJECT_DIR", ".")
13
-
14
- _pull_monorepo = CmdTask(
15
- name="pull-monorepo",
16
- inputs=[StrInput(name="message")],
17
- cwd=_PROJECT_DIR,
18
- cmd=[
19
- "git add . -A",
20
- 'git commit -m "{{input.message}}"',
21
- 'git pull origin "$(git branch --show-current)"',
22
- ],
23
- retry=0,
24
- )
15
+ _pull_monorepo = create_pull_monorepo_task()
25
16
 
26
17
  PULL_SUBREPO_UPSTREAM = _pull_monorepo
27
18
  PUSH_SUBREPO_UPSTREAM = _pull_monorepo
@@ -30,70 +21,106 @@ for name, config in MONOREPO_CONFIG.items():
30
21
  group = Group(
31
22
  name=kebab_name, parent=monorepo_group, description=f"Subrepo {name} management"
32
23
  )
33
- subrepo_origin = config.get("origin", "")
34
- subrepo_folder = config.get("folder", "")
35
- subrepo_branch = config.get("branch", "main")
24
+ origin = config.get("origin", "")
25
+ folder = config.get("folder", "")
26
+ branch = config.get("branch", "main")
36
27
 
37
- # define pull subrepo
38
- pull_subrepo = CmdTask(
28
+ pull_subrepo = FlowTask(
39
29
  name="pull",
40
30
  group=group,
41
- inputs=[
42
- StrInput(
43
- name="message",
44
- shortcut="m",
45
- prompt="Commit Messsage",
46
- default=lambda m: f"Pulling from subrepo at {datetime.now().strftime('%Y-%m-%d %I:%M:%p')}", # noqa
47
- )
31
+ upstreams=[_pull_monorepo],
32
+ steps=[
33
+ create_add_subrepo_task(
34
+ origin=origin,
35
+ folder=folder,
36
+ branch=branch,
37
+ task_name=f"add-{kebab_name}-subrepo",
38
+ ),
39
+ create_pull_subrepo_task(
40
+ origin=origin,
41
+ folder=folder,
42
+ branch=branch,
43
+ task_name=f"pull-{kebab_name}-subrepo",
44
+ ),
48
45
  ],
49
- cmd=[
50
- f'if [ ! -d "{subrepo_folder}" ]',
51
- "then",
52
- " echo Run subtree add",
53
- f' git subtree add --prefix "{subrepo_folder}" "{subrepo_origin}" "{subrepo_branch}"', # noqa
54
- "fi",
55
- "echo Run subtree pull",
56
- "set -e",
57
- f'git subtree pull --prefix "{subrepo_folder}" "{subrepo_origin}" "{subrepo_branch}"', # noqa
46
+ )
47
+ runner.register(pull_subrepo)
48
+
49
+ linked_pull_subrepo = FlowTask(
50
+ name=f"pull-{kebab_name}",
51
+ upstreams=[PULL_SUBREPO_UPSTREAM],
52
+ steps=[
53
+ create_add_subrepo_task(
54
+ origin=origin,
55
+ folder=folder,
56
+ branch=branch,
57
+ task_name=f"add-{kebab_name}-subrepo",
58
+ ),
59
+ create_pull_subrepo_task(
60
+ origin=origin,
61
+ folder=folder,
62
+ branch=branch,
63
+ task_name=f"pull-{kebab_name}-subrepo",
64
+ ),
58
65
  ],
59
- retry=0,
60
66
  )
61
- _pull_monorepo >> pull_subrepo
62
- linked_pull_subrepo = pull_subrepo.copy()
63
- PULL_SUBREPO_UPSTREAM >> linked_pull_subrepo
64
67
  PULL_SUBREPO_UPSTREAM = linked_pull_subrepo
65
- runner.register(pull_subrepo)
66
68
 
67
- # define push subrepo
68
- push_subrepo = CmdTask(
69
+ push_subrepo = FlowTask(
69
70
  name="push",
70
71
  group=group,
71
- inputs=[
72
- StrInput(
73
- name="message",
74
- shortcut="m",
75
- prompt="Commit Messsage",
76
- default=lambda m: f"Pushing to subrepo at {datetime.now().strftime('%Y-%m-%d %I:%M:%p')}", # noqa
77
- )
72
+ upstreams=[_pull_monorepo],
73
+ steps=[
74
+ create_add_subrepo_task(
75
+ origin=origin,
76
+ folder=folder,
77
+ branch=branch,
78
+ task_name=f"add-{kebab_name}-subrepo",
79
+ ),
80
+ create_pull_subrepo_task(
81
+ origin=origin,
82
+ folder=folder,
83
+ branch=branch,
84
+ task_name=f"pull-{kebab_name}-subrepo",
85
+ ),
86
+ create_push_subrepo_task(
87
+ origin=origin,
88
+ folder=folder,
89
+ branch=branch,
90
+ task_name=f"push-{kebab_name}-subrepo",
91
+ ),
92
+ create_push_monorepo_task(task_name="push-monorepo"),
78
93
  ],
79
- cmd=[
80
- f'if [ ! -d "{subrepo_folder}" ]',
81
- "then",
82
- " echo Run subtree add",
83
- f' git subtree add --prefix "{subrepo_folder}" "{subrepo_origin}" "{subrepo_branch}"', # noqa
84
- "fi",
85
- "echo Run subtree pull",
86
- "set -e",
87
- f'git subtree pull --prefix "{subrepo_folder}" "{subrepo_origin}" "{subrepo_branch}"', # noqa
88
- "set +e",
89
- "git add . -A",
90
- 'git commit -m "{{input.message}}"',
91
- f'git subtree push --prefix "{subrepo_folder}" "{subrepo_origin}" "{subrepo_branch}"', # noqa
94
+ )
95
+ runner.register(push_subrepo)
96
+
97
+ linked_push_subrepo = FlowTask(
98
+ name=f"push-{kebab_name}",
99
+ upstreams=[PUSH_SUBREPO_UPSTREAM],
100
+ steps=[
101
+ create_add_subrepo_task(
102
+ origin=origin,
103
+ folder=folder,
104
+ branch=branch,
105
+ task_name=f"add-{kebab_name}-subrepo",
106
+ ),
107
+ create_pull_subrepo_task(
108
+ origin=origin,
109
+ folder=folder,
110
+ branch=branch,
111
+ task_name=f"pull-{kebab_name}-subrepo",
112
+ ),
113
+ create_push_subrepo_task(
114
+ origin=origin,
115
+ folder=folder,
116
+ branch=branch,
117
+ task_name=f"push-{kebab_name}-subrepo",
118
+ ),
92
119
  ],
93
- retry=0,
94
120
  )
95
- _pull_monorepo >> push_subrepo
96
- linked_push_subrepo = push_subrepo.copy()
97
- PUSH_SUBREPO_UPSTREAM >> push_subrepo
98
121
  PUSH_SUBREPO_UPSTREAM = linked_push_subrepo
99
- runner.register(push_subrepo)
122
+
123
+
124
+ _push_monorepo = create_push_monorepo_task(task_name="push-monorepo")
125
+ PUSH_SUBREPO_UPSTREAM >> _push_monorepo
126
+ PUSH_SUBREPO_UPSTREAM = _push_monorepo
@@ -0,0 +1,22 @@
1
+ set -e
2
+
3
+ if [ -d "${FOLDER}" ]
4
+ then
5
+ exit 0
6
+ fi
7
+
8
+ CONFLICT="$(git diff --name-only --diff-filter=U)"
9
+ if [ -n "${CONFLICT}" ]
10
+ then
11
+ log_conflict_error "${CONFLICT}"
12
+ exit 1
13
+ fi
14
+
15
+ log_info "Adding subtree: ${FOLDER}"
16
+ git subtree add --prefix "${FOLDER}" "${ORIGIN}" "${BRANCH}"
17
+ git add . -A
18
+ if [ -n "$(git status --porcelain)" ]
19
+ then
20
+ log_info "Commit changes"
21
+ git commit -m "Adding subtree: ${FOLDER} at ${TIME}"
22
+ fi
@@ -1,7 +1,12 @@
1
1
  import json
2
+ import os
2
3
  from collections.abc import Mapping
3
4
 
4
- from zrb.builtin.monorepo._config import MONOREPO_CONFIG, MONOREPO_CONFIG_FILE
5
+ from zrb.builtin.monorepo._config import (
6
+ MONOREPO_CONFIG,
7
+ MONOREPO_CONFIG_FILE,
8
+ PROJECT_DIR,
9
+ )
5
10
  from zrb.builtin.monorepo._group import monorepo_group
6
11
  from zrb.runner import runner
7
12
  from zrb.task.any_task import AnyTask
@@ -30,6 +35,9 @@ from zrb.task_input.str_input import StrInput
30
35
  def add_to_monorepo(*args, **kwargs):
31
36
  task: AnyTask = kwargs.get("_task")
32
37
  input_map: Mapping[str, str] = task.get_input_map()
38
+ abs_folder = os.path.join(PROJECT_DIR, input_map.get("folder", ""))
39
+ if os.path.isdir(abs_folder):
40
+ raise ValueError(f"Directory exists: {abs_folder}")
33
41
  config = dict(MONOREPO_CONFIG)
34
42
  config[input_map.get("alias", "")] = {
35
43
  "folder": input_map.get("folder", ""),
@@ -0,0 +1,18 @@
1
+ set -e
2
+
3
+ CONFLICT="$(git diff --name-only --diff-filter=U)"
4
+ if [ -n "${CONFLICT}" ]
5
+ then
6
+ log_conflict_error "${CONFLICT}"
7
+ exit 1
8
+ fi
9
+
10
+ git add . -A
11
+ if [ -n "$(git status --porcelain)" ]
12
+ then
13
+ log_info "Commit changes"
14
+ git commit -m "Before pulling from monorepo at ${TIME}"
15
+ fi
16
+
17
+ log_info "Pulling from main repository"
18
+ git pull origin "$(git branch --show-current)"
@@ -0,0 +1,18 @@
1
+ set -e
2
+
3
+ CONFLICT="$(git diff --name-only --diff-filter=U)"
4
+ if [ -n "${CONFLICT}" ]
5
+ then
6
+ log_conflict_error "${CONFLICT}"
7
+ exit 1
8
+ fi
9
+
10
+ log_info "Pulling from subtree"
11
+ git subtree pull --prefix "${FOLDER}" "${ORIGIN}" "${BRANCH}"
12
+
13
+ CONFLICT="$(git diff --name-only --diff-filter=U)"
14
+ if [ -n "${CONFLICT}" ]
15
+ then
16
+ log_conflict_error "${CONFLICT}"
17
+ exit 1
18
+ fi
@@ -15,9 +15,10 @@ pull_from_monorepo = Task(
15
15
  name="message",
16
16
  shortcut="m",
17
17
  prompt="Commit Messsage",
18
- default=lambda m: f"Pulling from subrepos at {datetime.now().strftime('%Y-%m-%d %I:%M:%p')}", # noqa
18
+ default=lambda m: f"Synchronize subrepos at {datetime.now()}",
19
19
  )
20
20
  ],
21
+ retry=0,
21
22
  )
22
23
  PULL_SUBREPO_UPSTREAM >> pull_from_monorepo
23
24
  runner.register(pull_from_monorepo)
@@ -0,0 +1,18 @@
1
+ set -e
2
+
3
+ CONFLICT="$(git diff --name-only --diff-filter=U)"
4
+ if [ -n "${CONFLICT}" ]
5
+ then
6
+ log_conflict_error "${CONFLICT}"
7
+ exit 1
8
+ fi
9
+
10
+ git add . -A
11
+ if [ -n "$(git status --porcelain)" ]
12
+ then
13
+ log_info "Commit changes"
14
+ git commit -m "${MESSAGE}"
15
+ fi
16
+
17
+ log_info "Pushing to main repository"
18
+ git push origin "$(git branch --show-current)"
@@ -0,0 +1,18 @@
1
+ set -e
2
+
3
+ CONFLICT="$(git diff --name-only --diff-filter=U)"
4
+ if [ -n "${CONFLICT}" ]
5
+ then
6
+ log_conflict_error "${CONFLICT}"
7
+ exit 1
8
+ fi
9
+
10
+ git add . -A
11
+ if [ -n "$(git status --porcelain)" ]
12
+ then
13
+ log_info "Commit changes"
14
+ git commit -m "${MESSAGE}"
15
+ fi
16
+
17
+ log_info "Pushing to subtree"
18
+ git subtree push --prefix "${FOLDER}" "${ORIGIN}" "${BRANCH}"
@@ -3,21 +3,9 @@ from datetime import datetime
3
3
  from zrb.builtin.monorepo._group import monorepo_group
4
4
  from zrb.builtin.monorepo._task import PUSH_SUBREPO_UPSTREAM
5
5
  from zrb.runner import runner
6
- from zrb.task.cmd_task import CmdTask
7
6
  from zrb.task.task import Task
8
7
  from zrb.task_input.str_input import StrInput
9
8
 
10
- _push_monorepo = CmdTask(
11
- name="push-monorepo",
12
- inputs=[StrInput(name="message")],
13
- cmd=[
14
- "git add . -A",
15
- 'git commit -m "{{input.message}}"',
16
- 'git push origin "$(git branch --show-current)"',
17
- ],
18
- retry=0,
19
- )
20
-
21
9
  push_to_monorepo = Task(
22
10
  name="push",
23
11
  group=monorepo_group,
@@ -27,9 +15,10 @@ push_to_monorepo = Task(
27
15
  name="message",
28
16
  shortcut="m",
29
17
  prompt="Commit Messsage",
30
- default=lambda m: f"Pushing to subrepos at {datetime.now().strftime('%Y-%m-%d %I:%M:%p')}", # noqa
18
+ default=lambda m: f"Synchronize subrepos at {datetime.now()}",
31
19
  )
32
20
  ],
21
+ retry=0,
33
22
  )
34
- PUSH_SUBREPO_UPSTREAM >> _push_monorepo >> push_to_monorepo
23
+ PUSH_SUBREPO_UPSTREAM >> push_to_monorepo
35
24
  runner.register(push_to_monorepo)
@@ -16,8 +16,11 @@ async def stop_asyncio():
16
16
 
17
17
 
18
18
  def stop_asyncio_sync():
19
- loop = asyncio.get_event_loop()
20
- if loop.is_running():
21
- loop.create_task(stop_asyncio())
22
- else:
23
- loop.run_until_complete(stop_asyncio())
19
+ try:
20
+ loop = asyncio.get_event_loop()
21
+ if loop.is_running():
22
+ loop.create_task(stop_asyncio())
23
+ else:
24
+ loop.run_until_complete(stop_asyncio())
25
+ except Exception:
26
+ pass
zrb/helper/cli.py CHANGED
@@ -58,7 +58,6 @@ def create_cli() -> click.Group:
58
58
  attrs=["bold"],
59
59
  )
60
60
  )
61
- traceback.print_exc()
62
61
  # Load zrb_init.py
63
62
  project_dir = os.getenv("ZRB_PROJECT_DIR", os.getcwd())
64
63
  project_script = os.path.join(project_dir, "zrb_init.py")
@@ -288,7 +288,7 @@ class BaseTask(FinishTracker, AttemptTracker, Renderer, BaseTaskModel, AnyTask):
288
288
  self._print_result(result)
289
289
  return result
290
290
  except RuntimeError as e:
291
- if "event loop is closed" not in str(e).lower():
291
+ if raise_error and ("event loop is closed" not in str(e).lower()):
292
292
  raise e
293
293
  except Exception as e:
294
294
  self.log_error(f"{e}")
zrb/task/flow_task.py CHANGED
@@ -85,7 +85,6 @@ class FlowTask(BaseTask):
85
85
  retry_interval=retry_interval,
86
86
  should_execute=should_execute,
87
87
  return_upstream_result=return_upstream_result,
88
- run=lambda *args, **kwargs: kwargs.get("_task").print_out("🆗"),
89
88
  )
90
89
 
91
90
  def copy(self) -> TFlowTask:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 0.26.0
3
+ Version: 0.26.2
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
@@ -87,12 +87,19 @@ zrb/builtin/md5/_group.py,sha256=dimqCmJItc7qx7yRm64tL608oMAjOVXRycP7NTSSFi0,100
87
87
  zrb/builtin/md5/hash.py,sha256=futO_5AsXHdS5a7vuBLcgnKCpfEO9UeM-EqaIIBPCZE,572
88
88
  zrb/builtin/md5/sum.py,sha256=KZLsXIJrVxvbjyAiVv27-Y2ty-nBRRojsGxXyzQZaYE,688
89
89
  zrb/builtin/monorepo/__init__.py,sha256=AgzIDOcrW4FXxly5SqExyGRo-fIo0ocX_fCScLPDuR0,239
90
- zrb/builtin/monorepo/_config.py,sha256=ArqI0MZbuTkq2C3kdc6lVB2L2xjK5x2Z3IU-4_0YLJ8,367
90
+ zrb/builtin/monorepo/_common.sh,sha256=HfSIyw_OYGXx0TZzwdLB21fX6sTnZ_45Vf6YXVxxU-k,336
91
+ zrb/builtin/monorepo/_config.py,sha256=cTKOoDonkVXR-1SGUYtA8d5aUpDkhN4olhPQwfJhV4U,365
91
92
  zrb/builtin/monorepo/_group.py,sha256=idv_8MIE-TCNAvhE0urh7OxTx3qNZbBlE9wYJ-teqa8,115
92
- zrb/builtin/monorepo/_task.py,sha256=7QKgVNf6xqD6wAHjtVEE6CsHS12Yt_yqoalomPywY7A,3365
93
- zrb/builtin/monorepo/add.py,sha256=HhHLquFHbYvNja3foSstFAe_NBL1zSp2SWUBQuIiTYU,1374
94
- zrb/builtin/monorepo/pull.py,sha256=2wIrz1D6OJmuBkdVbWRDXUiz8W4aLo3GC601_ASVAb8,702
95
- zrb/builtin/monorepo/push.py,sha256=7I1OpjJjM-6aG6qQj2Tz584WngcY6yXYG8DjFgLqn08,999
93
+ zrb/builtin/monorepo/_helper.py,sha256=RuK0mkQI73ryixD_iYfp8lxJmrFxkHyFvDThW2fsrF8,4057
94
+ zrb/builtin/monorepo/_task.py,sha256=1UY8eErrjpykK51UjjIu74lH25jMW8l3k36-eyYk9KI,3869
95
+ zrb/builtin/monorepo/add-subrepo.sh,sha256=LWyie9_3aCA7OarzDl7HedJnV7OpkkSHUHHPDcToNQ8,426
96
+ zrb/builtin/monorepo/add.py,sha256=MtPhTEJEdpfRsbdB-hln4hyGzPVWu9kdrmiCxqu0dTs,1580
97
+ zrb/builtin/monorepo/pull-monorepo.sh,sha256=80mC-FOmIFjhgeGe_s6SzKgf5ZyUwrUsz8O1huTP3Ww,377
98
+ zrb/builtin/monorepo/pull-subrepo.sh,sha256=7M6haXVkApuS3F1Ndp-jrdRMLbPbSYZUo7ckVAffypI,365
99
+ zrb/builtin/monorepo/pull.py,sha256=6W9w2QJipn9TYIqaE-tzW_KK1hxPU7oJW0IlH_yPwJA,676
100
+ zrb/builtin/monorepo/push-monorepo.sh,sha256=qkr6vfIvIKSKCiE1rartU5vahcjP7Ocvrt-zhgc1ZSo,346
101
+ zrb/builtin/monorepo/push-subrepo.sh,sha256=k-9ZbEEwDOgHn9Jo_CSkZwk4-bkcZm4TUc-e6j8Kvlk,353
102
+ zrb/builtin/monorepo/push.py,sha256=snKu4ravGFBBxHwLegI_kg65a9sG8bpf7t2T2CanNcE,668
96
103
  zrb/builtin/process/__init__.py,sha256=dWM1zIehY65rkJvEAFvX6HGJHL8kb1gkzaSz0Woay8M,283
97
104
  zrb/builtin/process/_group.py,sha256=KY7iQ_pvqe5iVsRFeLWs-O-xuSyqlTXVj47_TCnu7zQ,118
98
105
  zrb/builtin/process/pid/__init__.py,sha256=Rcb3bYgR_oVNOlaggYjcRipHRehrumZuQyadrguXdR0,293
@@ -1328,9 +1335,9 @@ zrb/helper/accessories/icon.py,sha256=uKm3w5G1fV454MUhz_CZMy48AD99kBV9j2zRlJWzB1
1328
1335
  zrb/helper/accessories/name.py,sha256=e1uvU3MzuvDb5j6YIWBA048y4qeM-LfrxRKWlMehliE,1638
1329
1336
  zrb/helper/accessories/untyped_color.py,sha256=4wRbHSClbCzPRWtW-Cy2agOMozANVi7u4p8lMXMSuJg,194
1330
1337
  zrb/helper/advertisement.py,sha256=GOaCtWYL9Oj_tAg4jqsCuFsdinHaOSH_6d57y8BbsVU,912
1331
- zrb/helper/asyncio_task.py,sha256=4OCXNwioMcQz7NgmXmNsS1Ege4Cp5Ld7MlwCmJNBuVs,622
1338
+ zrb/helper/asyncio_task.py,sha256=0CYQZcMnIO3514b8P0FJnTF9z7UasjJCf9TTDHfZLzM,686
1332
1339
  zrb/helper/callable.py,sha256=usatPKPkK_67G9dWreaGXskOaGHd_hE8MiTWAUhfojE,563
1333
- zrb/helper/cli.py,sha256=S1j8hfW_zEDeycPRbJd0E8xkOZkuEZ5PNz6JO6EC8UI,2637
1340
+ zrb/helper/cli.py,sha256=cb82aZCX5NoOHQNTx3wtdKOAQJP79ky4HA6w0VjVBh0,2603
1334
1341
  zrb/helper/codemod/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1335
1342
  zrb/helper/codemod/add_argument_to_function.py,sha256=Xh5Tlb4iO3cv4dRR12ms9kf0j-atVSnCh88TuqCof8I,1435
1336
1343
  zrb/helper/codemod/add_argument_to_function_call.py,sha256=dFFqQ885gG_ZCBgax6sjkWx7s7cIk1amLhTC0Ge_zZo,1186
@@ -1388,7 +1395,7 @@ zrb/task/any_task.py,sha256=SlAp6LY-8TGopaQm3eZD3ZEx3wxvCff8UfcnYyu-aiY,39344
1388
1395
  zrb/task/any_task_event_handler.py,sha256=ay4v7eXatF4sCiXpUYaHVJZljpnKlvBbFIwvZqXW8Mo,541
1389
1396
  zrb/task/base_remote_cmd_task.py,sha256=EhAT7grnIxFeMfwm8FV6GF6n0kOYESAyIIVzqgZBRBg,12324
1390
1397
  zrb/task/base_task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1391
- zrb/task/base_task/base_task.py,sha256=mHTgXmGROkGZw97HLpk-XE5lfhDL0jYyX9okaOTZgxY,20439
1398
+ zrb/task/base_task/base_task.py,sha256=oihVRUHAvNMwlfLEWQoixt5OwyMLyW9w6bSGD9WGVIk,20457
1392
1399
  zrb/task/base_task/component/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1393
1400
  zrb/task/base_task/component/base_task_model.py,sha256=EuTWvY54mD_ATy4-VFZw4uCOu3Mfe8hgZikwTnIjmkY,10381
1394
1401
  zrb/task/base_task/component/common_task_model.py,sha256=X_Ubu5kNycQJ-dFiLMARvC6GWQ9pIjBCdxh3MVelc-A,13544
@@ -1400,7 +1407,7 @@ zrb/task/cmd_task.py,sha256=B3kRtpb0QVjusPWAMLjpfGxvAdEfgD9_N0jiU55S3rA,14718
1400
1407
  zrb/task/decorator.py,sha256=SuajollezbwiSOs29bv8A6PmFcFs_RH4pr4TPcQPDHM,3081
1401
1408
  zrb/task/docker_compose_start_task.py,sha256=n4mLejebyy8sF4rbcfWZucPcBiqPSkDAdGZvOhk4Xt8,5335
1402
1409
  zrb/task/docker_compose_task.py,sha256=QGJ-jlD0jCKIb5avzri1Z29zdIL3Cn6m4kaEOko3U6M,15615
1403
- zrb/task/flow_task.py,sha256=RPci5Inc_QImq9sYI3SnDODeqMtwhO2DA7axbFoZPEQ,5158
1410
+ zrb/task/flow_task.py,sha256=wkvvUCrt6n1ul-o3STCPMdrlBuGBrNCRgtRzGyXir9o,5079
1404
1411
  zrb/task/http_checker.py,sha256=gXqBlEStMnIhzmQ7FX9Zo-nG3-wsiVEML8IOJiSG5JI,5705
1405
1412
  zrb/task/looper.py,sha256=zInLRgcQlReGXz4Ffxc2W99RovSChj6kHuGEGmaPb-Q,1432
1406
1413
  zrb/task/notifier.py,sha256=xjqT5Vydr_0cc1m4jA-odhHMZg6CSGciFCs0rhVkvPM,6265
@@ -1434,8 +1441,8 @@ zrb/task_input/multiline_input.py,sha256=KNto5k5X1C6KE_A-vX0OjpQyjgCRJ6BR2PwHXNQ
1434
1441
  zrb/task_input/password_input.py,sha256=95NlJ9xIq7z_evpAyR2XsBpeuWpBXd2Ezn3P7oDOttk,4360
1435
1442
  zrb/task_input/str_input.py,sha256=0nje7vI9fs_xqQBbmKB8Yn7wevlWp9Qebv7f8-GmiXs,4350
1436
1443
  zrb/task_input/task_input.py,sha256=WTj_qIQyRs-04-VotjNTcVyIuf6b2afInVoCQHoRmr0,2327
1437
- zrb-0.26.0.dist-info/LICENSE,sha256=WfnGCl8G60EYOPAEkuc8C9m9pdXWDe08NsKj3TBbxsM,728
1438
- zrb-0.26.0.dist-info/METADATA,sha256=v5Q0BGRSOW4Hy5vvsMm8Mp4Tp5t-o1HK4PbM50YzlvA,17085
1439
- zrb-0.26.0.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
1440
- zrb-0.26.0.dist-info/entry_points.txt,sha256=xTgXc1kBKYhJHEujdaSPHUcJT3-hbyP1mLgwkv-5sSk,40
1441
- zrb-0.26.0.dist-info/RECORD,,
1444
+ zrb-0.26.2.dist-info/LICENSE,sha256=WfnGCl8G60EYOPAEkuc8C9m9pdXWDe08NsKj3TBbxsM,728
1445
+ zrb-0.26.2.dist-info/METADATA,sha256=-wlbBUk5VeBxb07XicBQtuBGBnUwDhCGYR1pfZwVUmE,17085
1446
+ zrb-0.26.2.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
1447
+ zrb-0.26.2.dist-info/entry_points.txt,sha256=xTgXc1kBKYhJHEujdaSPHUcJT3-hbyP1mLgwkv-5sSk,40
1448
+ zrb-0.26.2.dist-info/RECORD,,
File without changes
File without changes