zrb 1.0.0a5__py3-none-any.whl → 1.0.0a12__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/__main__.py +6 -0
- zrb/builtin/__init__.py +24 -6
- zrb/builtin/git.py +16 -13
- zrb/builtin/git_subtree.py +19 -4
- zrb/builtin/group.py +5 -0
- zrb/builtin/setup/asdf/asdf.py +86 -0
- zrb/builtin/setup/asdf/asdf_helper.py +44 -0
- zrb/builtin/setup/common_input.py +35 -0
- zrb/builtin/setup/latex/ubuntu.py +18 -0
- zrb/builtin/setup/tmux/tmux.py +50 -0
- zrb/builtin/setup/tmux/tmux_config.sh +12 -0
- zrb/builtin/setup/tmux/tmux_helper.py +13 -0
- zrb/builtin/setup/ubuntu.py +28 -0
- zrb/builtin/todo.py +89 -21
- zrb/config.py +5 -1
- zrb/input/base_input.py +1 -1
- zrb/input/bool_input.py +1 -1
- zrb/input/float_input.py +1 -1
- zrb/input/int_input.py +1 -1
- zrb/input/option_input.py +1 -1
- zrb/input/password_input.py +1 -1
- zrb/input/text_input.py +1 -1
- zrb/runner/web_app.py +27 -21
- zrb/task/any_task.py +38 -2
- zrb/task/base_task.py +71 -4
- zrb/task/cmd_task.py +27 -3
- zrb/task/llm_task.py +24 -18
- zrb/task/rsync_task.py +8 -8
- zrb/util/cmd/command.py +33 -0
- zrb/util/codemod/add_parent_to_class.py +38 -0
- zrb/util/git.py +35 -17
- zrb/util/git_subtree.py +11 -10
- zrb/util/load.py +4 -1
- zrb/util/string/format.py +12 -2
- zrb/util/todo.py +152 -34
- {zrb-1.0.0a5.dist-info → zrb-1.0.0a12.dist-info}/METADATA +1 -1
- {zrb-1.0.0a5.dist-info → zrb-1.0.0a12.dist-info}/RECORD +39 -29
- {zrb-1.0.0a5.dist-info → zrb-1.0.0a12.dist-info}/WHEEL +0 -0
- {zrb-1.0.0a5.dist-info → zrb-1.0.0a12.dist-info}/entry_points.txt +0 -0
zrb/util/todo.py
CHANGED
@@ -1,11 +1,15 @@
|
|
1
1
|
import datetime
|
2
2
|
import re
|
3
|
+
import shutil
|
4
|
+
from typing import Any
|
3
5
|
|
4
6
|
from pydantic import BaseModel, Field, model_validator
|
5
7
|
|
6
8
|
from zrb.util.cli.style import (
|
7
9
|
stylize_bold_green,
|
10
|
+
stylize_bold_yellow,
|
8
11
|
stylize_cyan,
|
12
|
+
stylize_faint,
|
9
13
|
stylize_magenta,
|
10
14
|
stylize_yellow,
|
11
15
|
)
|
@@ -32,6 +36,16 @@ class TodoTaskModel(BaseModel):
|
|
32
36
|
)
|
33
37
|
return values
|
34
38
|
|
39
|
+
def get_additional_info_length(self):
|
40
|
+
results = []
|
41
|
+
for project in self.projects:
|
42
|
+
results.append(f"@{project}")
|
43
|
+
for context in self.contexts:
|
44
|
+
results.append(f"+{context}")
|
45
|
+
for key, val in self.keyval.items():
|
46
|
+
results.append(f"{key}:{val}")
|
47
|
+
return len(", ".join(results))
|
48
|
+
|
35
49
|
|
36
50
|
TODO_TXT_PATTERN = re.compile(
|
37
51
|
r"^(?P<status>x)?\s*" # Optional completion mark ('x')
|
@@ -80,7 +94,8 @@ def load_todo_list(todo_file_path: str) -> list[TodoTaskModel]:
|
|
80
94
|
todo_line = todo_line.strip()
|
81
95
|
if todo_line == "":
|
82
96
|
continue
|
83
|
-
|
97
|
+
todo_task = line_to_todo_task(todo_line)
|
98
|
+
todo_list.append(todo_task)
|
84
99
|
todo_list.sort(
|
85
100
|
key=lambda task: (
|
86
101
|
task.completed,
|
@@ -173,51 +188,154 @@ def todo_task_to_line(task: TodoTaskModel) -> str:
|
|
173
188
|
return " ".join(parts)
|
174
189
|
|
175
190
|
|
176
|
-
def get_visual_todo_list(todo_list: list[TodoTaskModel]) -> str:
|
177
|
-
|
191
|
+
def get_visual_todo_list(todo_list: list[TodoTaskModel], filter: str) -> str:
|
192
|
+
todo_filter = line_to_todo_task(filter)
|
193
|
+
filtered_todo_list = []
|
194
|
+
for todo_task in todo_list:
|
195
|
+
filter_description = todo_filter.description.lower().strip()
|
196
|
+
if (
|
197
|
+
filter_description != ""
|
198
|
+
and filter_description not in todo_task.description.lower()
|
199
|
+
):
|
200
|
+
continue
|
201
|
+
if not all(context in todo_task.contexts for context in todo_filter.contexts):
|
202
|
+
continue
|
203
|
+
if not all(project in todo_task.projects for project in todo_filter.projects):
|
204
|
+
continue
|
205
|
+
if not all(
|
206
|
+
key in todo_task.keyval and todo_task.keyval[key] == val
|
207
|
+
for key, val in todo_filter.keyval.items()
|
208
|
+
):
|
209
|
+
continue
|
210
|
+
filtered_todo_list.append(todo_task)
|
211
|
+
if len(filtered_todo_list) == 0:
|
178
212
|
return "\n".join(["", " Empty todo list... 🌵🦖", ""])
|
179
|
-
|
180
|
-
|
181
|
-
|
213
|
+
max_desc_length = max(
|
214
|
+
len(todo_task.description) for todo_task in filtered_todo_list
|
215
|
+
)
|
216
|
+
if max_desc_length < len("DESCRIPTION"):
|
217
|
+
max_desc_length = len("DESCRIPTION")
|
218
|
+
if max_desc_length > 70:
|
219
|
+
max_desc_length = 70
|
220
|
+
max_additional_info_length = max(
|
221
|
+
todo_task.get_additional_info_length() for todo_task in filtered_todo_list
|
222
|
+
)
|
223
|
+
if max_additional_info_length < len("PROJECT/CONTEXT/OTHERS"):
|
224
|
+
max_additional_info_length = len("PROJECT/CONTEXT/OTHERS")
|
225
|
+
terminal_width, _ = shutil.get_terminal_size()
|
182
226
|
# Headers
|
183
227
|
results = [
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
"".ljust(3), # priority
|
188
|
-
"".ljust(3), # completed
|
189
|
-
"COMPLETED AT".rjust(14), # completed date
|
190
|
-
"CREATED AT".rjust(14), # completed date
|
191
|
-
"DESCRIPTION".ljust(max_desc_name_length),
|
192
|
-
"PROJECT/CONTEXT/OTHERS",
|
193
|
-
]
|
228
|
+
stylize_faint(
|
229
|
+
get_visual_todo_header(
|
230
|
+
terminal_width, max_desc_length, max_additional_info_length
|
194
231
|
)
|
195
232
|
)
|
196
233
|
]
|
197
|
-
for todo_task in
|
198
|
-
completed = "[x]" if todo_task.completed else "[ ]"
|
199
|
-
priority = " " if todo_task.priority is None else f"({todo_task.priority})"
|
200
|
-
completion_date = stylize_yellow(_date_to_str(todo_task.completion_date))
|
201
|
-
creation_date = stylize_cyan(_date_to_str(todo_task.creation_date))
|
202
|
-
description = todo_task.description.ljust(max_desc_name_length)
|
203
|
-
additions = ", ".join(
|
204
|
-
[stylize_yellow(f"+{project}") for project in todo_task.projects]
|
205
|
-
+ [stylize_cyan(f"@{context}") for context in todo_task.contexts]
|
206
|
-
+ [stylize_magenta(f"{key}:{val}") for key, val in todo_task.keyval.items()]
|
207
|
-
)
|
234
|
+
for todo_task in filtered_todo_list:
|
208
235
|
results.append(
|
236
|
+
get_visual_todo_line(
|
237
|
+
terminal_width, max_desc_length, max_additional_info_length, todo_task
|
238
|
+
)
|
239
|
+
)
|
240
|
+
return "\n".join(results)
|
241
|
+
|
242
|
+
|
243
|
+
def get_visual_todo_header(
|
244
|
+
terminal_width: int, max_desc_length: int, max_additional_info_length: int
|
245
|
+
) -> str:
|
246
|
+
priority = "".ljust(3)
|
247
|
+
completed = "".ljust(3)
|
248
|
+
completed_at = "COMPLETED AT".rjust(14)
|
249
|
+
created_at = "CREATED_AT".ljust(14)
|
250
|
+
description = "DESCRIPTION".ljust(min(max_desc_length, 70))
|
251
|
+
additional_info = "PROJECT/CONTEXT/OTHERS"
|
252
|
+
if terminal_width <= 14 + max_desc_length + max_additional_info_length:
|
253
|
+
return " ".join([priority, completed, description])
|
254
|
+
if terminal_width <= 36 + max_desc_length + max_additional_info_length:
|
255
|
+
return " ".join([priority, completed, description, additional_info])
|
256
|
+
return " ".join(
|
257
|
+
[priority, completed, completed_at, created_at, description, additional_info]
|
258
|
+
)
|
259
|
+
|
260
|
+
|
261
|
+
def get_visual_todo_line(
|
262
|
+
terminal_width: int,
|
263
|
+
max_desc_length: int,
|
264
|
+
max_additional_info_length: int,
|
265
|
+
todo_task: TodoTaskModel,
|
266
|
+
) -> str:
|
267
|
+
completed = "[x]" if todo_task.completed else "[ ]"
|
268
|
+
priority = " " if todo_task.priority is None else f"({todo_task.priority})"
|
269
|
+
completed_at = stylize_yellow(_date_to_str(todo_task.completion_date))
|
270
|
+
created_at = stylize_cyan(_date_to_str(todo_task.creation_date))
|
271
|
+
description = todo_task.description
|
272
|
+
if len(description) > max_desc_length:
|
273
|
+
description = description[: max_desc_length - 4] + " ..."
|
274
|
+
description = description.ljust(max_desc_length)
|
275
|
+
description = description[:max_desc_length]
|
276
|
+
if todo_task.completed:
|
277
|
+
description = stylize_faint(description)
|
278
|
+
elif "duration" in todo_task.keyval:
|
279
|
+
description = stylize_bold_yellow(description)
|
280
|
+
additional_info = ", ".join(
|
281
|
+
[stylize_yellow(f"+{project}") for project in todo_task.projects]
|
282
|
+
+ [stylize_cyan(f"@{context}") for context in todo_task.contexts]
|
283
|
+
+ [stylize_magenta(f"{key}:{val}") for key, val in todo_task.keyval.items()]
|
284
|
+
)
|
285
|
+
if terminal_width <= 14 + max_desc_length + max_additional_info_length:
|
286
|
+
return " ".join([priority, completed, description])
|
287
|
+
if terminal_width <= 36 + max_desc_length + max_additional_info_length:
|
288
|
+
return " ".join([priority, completed, description, additional_info])
|
289
|
+
return " ".join(
|
290
|
+
[priority, completed, completed_at, created_at, description, additional_info]
|
291
|
+
)
|
292
|
+
|
293
|
+
|
294
|
+
def get_visual_todo_card(
|
295
|
+
todo_task: TodoTaskModel, log_work_list: list[dict[str, str]]
|
296
|
+
) -> str:
|
297
|
+
description = todo_task.description
|
298
|
+
status = "TODO"
|
299
|
+
if todo_task.completed:
|
300
|
+
status = "DONE"
|
301
|
+
elif "duration" in todo_task.keyval:
|
302
|
+
status = "DOING"
|
303
|
+
priority = todo_task.priority
|
304
|
+
completed_at = (
|
305
|
+
_date_to_str(todo_task.completion_date)
|
306
|
+
if todo_task.completion_date is not None
|
307
|
+
else ""
|
308
|
+
)
|
309
|
+
created_at = (
|
310
|
+
_date_to_str(todo_task.creation_date)
|
311
|
+
if todo_task.creation_date is not None
|
312
|
+
else ""
|
313
|
+
)
|
314
|
+
log_work_str = "\n".join(
|
315
|
+
[
|
209
316
|
" ".join(
|
210
317
|
[
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
creation_date,
|
215
|
-
description,
|
216
|
-
additions,
|
318
|
+
log_work.get("duration", "").strip().rjust(12),
|
319
|
+
log_work.get("start", "").strip().rjust(20),
|
320
|
+
log_work.get("log", "").strip(),
|
217
321
|
]
|
218
322
|
)
|
323
|
+
for log_work in log_work_list
|
324
|
+
]
|
325
|
+
)
|
326
|
+
detail = [
|
327
|
+
f"{'📄 Description'.ljust(16)}: {description}",
|
328
|
+
f"{'🎯 Priority'.ljust(16)}: {priority}",
|
329
|
+
f"{'📊 Status'.ljust(16)}: {status}",
|
330
|
+
f"{'📅 Created at'.ljust(16)}: {created_at}",
|
331
|
+
f"{'✅ Completed at'.ljust(16)}: {completed_at}",
|
332
|
+
]
|
333
|
+
if log_work_str != "":
|
334
|
+
detail.append(
|
335
|
+
stylize_faint(" ".join(["Time Spent".rjust(12), "Start".rjust(20), "Log"]))
|
219
336
|
)
|
220
|
-
|
337
|
+
detail.append(log_work_str)
|
338
|
+
return "\n".join(detail)
|
221
339
|
|
222
340
|
|
223
341
|
def _date_to_str(date: datetime.date | None) -> str:
|
@@ -1,12 +1,12 @@
|
|
1
1
|
zrb/__init__.py,sha256=ESskletjBpLO78a6wLigi9wnEGtmhfc3i_rbyMvrSyU,2767
|
2
|
-
zrb/__main__.py,sha256=
|
2
|
+
zrb/__main__.py,sha256=aiIGigf24Yh4B8KVvJxxAcjvb_CSc13yfpeB6EkRHhE,645
|
3
3
|
zrb/attr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
4
|
zrb/attr/type.py,sha256=4TV5gPYMMrKh5V-yB6iRYKCbsXAH_AvGXMsjxKLHcUs,568
|
5
|
-
zrb/builtin/__init__.py,sha256=
|
5
|
+
zrb/builtin/__init__.py,sha256=seqFeTQk4k9I31oTdVrCDoud4_AzCrdVEZx1VxVUtZk,1744
|
6
6
|
zrb/builtin/base64.py,sha256=1YnSwASp7OEAvQcsnHZGpJEvYoI1Z2zTIJ1bCDHfcPQ,921
|
7
|
-
zrb/builtin/git.py,sha256=
|
8
|
-
zrb/builtin/git_subtree.py,sha256=
|
9
|
-
zrb/builtin/group.py,sha256=
|
7
|
+
zrb/builtin/git.py,sha256=ypxGT4JyokYbXMvxdWFG684sEa6x7wht1b4PxpddTMA,4544
|
8
|
+
zrb/builtin/git_subtree.py,sha256=M5Fr8NB4LaC3ra997tzZMLeD4H5o84MvvwefrLcWEIk,3016
|
9
|
+
zrb/builtin/group.py,sha256=3xfEx9aEDcq6rDprGKYGqOXN2i0ts4W_RQVErL51o1o,1594
|
10
10
|
zrb/builtin/llm/llm_chat.py,sha256=ATENrihXUMkQ8IoarhacohUe-I_43yb7c0Tl5f69mAI,1397
|
11
11
|
zrb/builtin/llm/tool/cli.py,sha256=n8THj513k1vrXUoZrTcxESmdZzhBOP1-L3Dmup5ZW54,225
|
12
12
|
zrb/builtin/llm/tool/rag.py,sha256=rpfTMhLpkH9ZEyBcmFqLTz3UB2F6VP6w_Se2mPQVZXM,6845
|
@@ -69,19 +69,27 @@ zrb/builtin/project/create/create.py,sha256=IUU-4oUlESiw-ZHtnkbhnEA62_thKMDwGdAq
|
|
69
69
|
zrb/builtin/project/create/project-template/README.md,sha256=BHeWF_txdTDzKewWdWfGhO3YOTiW8E3YwTMnd0T1LVA,39
|
70
70
|
zrb/builtin/project/create/project-template/zrb_init.py,sha256=cbPl2xZbr1LXBGd296yCvfullzmryG5nTZ8mcBmu_vU,89
|
71
71
|
zrb/builtin/python.py,sha256=herHFZl5wHsMFcqHhpisg9Ql3pQXqoCuTTwzNUTXzkw,281
|
72
|
+
zrb/builtin/setup/asdf/asdf.py,sha256=n_dWoyYa7vZ9tBCy8hgxmSWZ-XHltC1R70mIVZQhnXY,2419
|
73
|
+
zrb/builtin/setup/asdf/asdf_helper.py,sha256=804vfpsDPH3bpOmpAZyGxJdtwcmxNvuj9i0vaIW2qNI,1318
|
74
|
+
zrb/builtin/setup/common_input.py,sha256=M8q9Unt7dCfBHTHqV3__Mxk9YC2Pl3DDtxat2BanZCQ,870
|
75
|
+
zrb/builtin/setup/latex/ubuntu.py,sha256=er9wJAT4CpmghIaiIPFb3FvgqAn1aqU5UgX7GHL3FjA,577
|
76
|
+
zrb/builtin/setup/tmux/tmux.py,sha256=-MEIGP2OwM55Fi-ug1TjMgQGiTbwKlQ6aASSLLjjz7A,1630
|
77
|
+
zrb/builtin/setup/tmux/tmux_config.sh,sha256=wQCb4Q-mNkxIPOcvpN84X9RUWkGY16u3Vd-pOhVidgg,416
|
78
|
+
zrb/builtin/setup/tmux/tmux_helper.py,sha256=M03l0wfL25TzGGp6lnVfX40ayT_x7N2lz-nz2chO7PU,396
|
79
|
+
zrb/builtin/setup/ubuntu.py,sha256=oOSN7Eq7arEpY2i0vWHPR2owio6dqqOvceteYrgmbYw,1019
|
72
80
|
zrb/builtin/shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
73
81
|
zrb/builtin/shell/autocomplete/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
74
82
|
zrb/builtin/shell/autocomplete/bash.py,sha256=-7YDVV7txgJH9mAYSYN0jmvUEeDIzWFvVNY-cY0myF8,1181
|
75
83
|
zrb/builtin/shell/autocomplete/subcmd.py,sha256=WZI6cGWJcn80zSyxOHG7sCMO3Ucix3mZf4xm_xyB_Y0,606
|
76
84
|
zrb/builtin/shell/autocomplete/zsh.py,sha256=9hlq0Wt3fhRz326mAQTypEd4_4lZdrbBx_3A-Ti3mvw,1022
|
77
|
-
zrb/builtin/todo.py,sha256=
|
85
|
+
zrb/builtin/todo.py,sha256=2JTk0CQKGXyBll3l097CGRLEPCqAZ5f4luR7nL-Ad1o,9480
|
78
86
|
zrb/callback/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
79
87
|
zrb/callback/any_callback.py,sha256=Yhdv5UWHAZSVzj5K2JdxcVQx8x8VX8aZJEivj3NTfZc,247
|
80
88
|
zrb/callback/callback.py,sha256=IQ7r9EnXYHHcNXKBJAk4WFqCqj7WDvflAuCyu5y-27I,849
|
81
89
|
zrb/cmd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
82
90
|
zrb/cmd/cmd_result.py,sha256=L8bQJzWCpcYexIxHBNsXj2pT3BtLmWex0iJSMkvimOA,597
|
83
91
|
zrb/cmd/cmd_val.py,sha256=LGuE85zQt0KSjpmW7bwIE5dnfIq-ULB8V2CDAiQ-SFk,960
|
84
|
-
zrb/config.py,sha256=
|
92
|
+
zrb/config.py,sha256=M__WVxBTU9zMxZvm1t2icEV8oU6-QK0Edl1XDyhJ9c8,3067
|
85
93
|
zrb/content_transformer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
86
94
|
zrb/content_transformer/any_content_transformer.py,sha256=3XHM6ZdsJFXxRD7YlUkv0Gn7-mexsH8c8zdHt3C0x8k,741
|
87
95
|
zrb/content_transformer/content_transformer.py,sha256=8luyLZZneBIBAMgGZvydy0TTjhI-TWFgEiQbuCxCAbk,1640
|
@@ -102,17 +110,17 @@ zrb/group/any_group.py,sha256=1rNcsi5eu_86JAx_6Jy46SK4BTeppcb89MORynJd-4o,1115
|
|
102
110
|
zrb/group/group.py,sha256=KVaBZQ9Evihm84JCg5ZayWMbbA6iNTUiLmMgCk4OTcc,1862
|
103
111
|
zrb/input/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
104
112
|
zrb/input/any_input.py,sha256=07KgoPusxLMOwBHRjiImL955J33qC-24qGf_3My6fCE,701
|
105
|
-
zrb/input/base_input.py,sha256=
|
106
|
-
zrb/input/bool_input.py,sha256=
|
107
|
-
zrb/input/float_input.py,sha256=
|
108
|
-
zrb/input/int_input.py,sha256=
|
109
|
-
zrb/input/option_input.py,sha256=
|
110
|
-
zrb/input/password_input.py,sha256=
|
113
|
+
zrb/input/base_input.py,sha256=noLPZUZYJGhyNJ5b1cZyeOff6m7zUT-Cnh6n63S-DiM,2573
|
114
|
+
zrb/input/bool_input.py,sha256=m_mwzFtcAs26QIjVSiEDcqTQBukRtQ535RPGmH-b1_A,1384
|
115
|
+
zrb/input/float_input.py,sha256=FqpAIsszHw7-eFyOzVmXaXNcCCLEL1_M3XwsevsNWX0,1005
|
116
|
+
zrb/input/int_input.py,sha256=1knorHwOvSLuCPkcqA9iuYQG6Huy-8Vel5JNZqEFc44,1006
|
117
|
+
zrb/input/option_input.py,sha256=xG0K6uQCqEpsO0pRsOyPWPEE77PYl65t2VwtCfeHYbA,1941
|
118
|
+
zrb/input/password_input.py,sha256=C0h3kWJDI5KdXXQa-IXTQzyuCfjbx5tO34mn7kjmf2M,1313
|
111
119
|
zrb/input/str_input.py,sha256=NevZHX9rf1g8eMatPyy-kUX3DglrVAQpzvVpKAzf7bA,81
|
112
|
-
zrb/input/text_input.py,sha256=
|
120
|
+
zrb/input/text_input.py,sha256=ju-DgBRK3RpuWNomZXcw3V5QAgaMGeTFaNn_MKM13Xc,3055
|
113
121
|
zrb/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
114
122
|
zrb/runner/cli.py,sha256=tM61thLwJNfjrHFVJqWmGuzE0MB273JZ8ANlROsKH1E,7024
|
115
|
-
zrb/runner/web_app.py,sha256=
|
123
|
+
zrb/runner/web_app.py,sha256=nO5EsGs8MMcvTdA41NU1yVlBu23HTD0FY82oXwOLIRM,6323
|
116
124
|
zrb/runner/web_controller/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
117
125
|
zrb/runner/web_controller/group_info_ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
118
126
|
zrb/runner/web_controller/group_info_ui/controller.py,sha256=sI1UKnRcr5K-a_lGMm5H54hbhdQwIMLlXYmwfxoIqSY,2831
|
@@ -149,14 +157,14 @@ zrb/session_state_logger/any_session_state_logger.py,sha256=W_G1fCw9ZVj4LRTplTpB
|
|
149
157
|
zrb/session_state_logger/default_session_state_logger.py,sha256=w_cAaNUg1ZmJk-ge1kh3xtag3SApC3ZdB3VbxUvU5Ro,197
|
150
158
|
zrb/session_state_logger/file_session_state_logger.py,sha256=0lMtx7Othu4-jhL_iDHFbZWF_5HX84StU134QNCVgeQ,3753
|
151
159
|
zrb/task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
152
|
-
zrb/task/any_task.py,sha256=
|
153
|
-
zrb/task/base_task.py,sha256=
|
160
|
+
zrb/task/any_task.py,sha256=9rCdKe-Sayr34Han9AsbhRxFpkbk6Rteg1DOyETulwQ,4917
|
161
|
+
zrb/task/base_task.py,sha256=Vn_MTR5aa3jIEWmh5LXpzezh-JwaEXPbjGKptx-Q-U8,19161
|
154
162
|
zrb/task/base_trigger.py,sha256=milE5BNeIeq8jGCP38qTfstSvrc0CkSnO2sV-vlhzsM,4491
|
155
|
-
zrb/task/cmd_task.py,sha256=
|
163
|
+
zrb/task/cmd_task.py,sha256=sF4fT-inYhbR831Oht0LDMMuPCjY5TnIx9-rgPghnsI,11446
|
156
164
|
zrb/task/http_check.py,sha256=TwQCql3589a4-H2c7hgS1HayyU-NdBAdJ4qQNTvjXHM,2474
|
157
|
-
zrb/task/llm_task.py,sha256
|
165
|
+
zrb/task/llm_task.py,sha256=-OpLLXl39H1diHlPq1S8uiIwfQk_TY7nN8GHKqL4_m4,8643
|
158
166
|
zrb/task/make_task.py,sha256=ldXRfe3rA8utJrEPjWrie-_tg6NM2G8sFnZ0UNqzT08,2179
|
159
|
-
zrb/task/rsync_task.py,sha256=
|
167
|
+
zrb/task/rsync_task.py,sha256=vENITMBXShKgj-NNgjM8eUK2ujU3wD8MUvyS_69ePEA,6227
|
160
168
|
zrb/task/scaffolder.py,sha256=tRSHsy3nXSRNu9QY7hRMZ8ppfjYmFswiWDMRmLlv3VI,6220
|
161
169
|
zrb/task/scheduler.py,sha256=kggRClk_RrAa5fAHfkqM6c-e2tUQiFSeyeLuFT26UZ4,3047
|
162
170
|
zrb/task/task.py,sha256=KCrCaWYOQQvv1RJsYtHDeo9RBFmlXQ28oKyEFU4Q7pA,73
|
@@ -169,6 +177,7 @@ zrb/util/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
169
177
|
zrb/util/cli/style.py,sha256=Pbqzu_fuhMDYDRjAH6Wl-oUW4-68tEOmv_ugJ3xH8qI,3671
|
170
178
|
zrb/util/cli/subcommand.py,sha256=gYr-CzVeKFQhY43s_FDstPwn8r-ypUz1Q2Rv_l2r-ck,1027
|
171
179
|
zrb/util/cmd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
180
|
+
zrb/util/cmd/command.py,sha256=dGihcEASO_5hkQbtpnLhd0FMZMNtdXk6W8X7ZP_2bQY,1545
|
172
181
|
zrb/util/cmd/remote.py,sha256=VklVORobTmE7FqdtYsVLq9xkSYTR2W5r2Zou0-soidw,710
|
173
182
|
zrb/util/codemod/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
174
183
|
zrb/util/codemod/add_code_to_class.py,sha256=jg-ISD3sHCecOJ1CCJGR9quizRgvzddKH9GZ33-IQ1A,1358
|
@@ -176,22 +185,23 @@ zrb/util/codemod/add_code_to_function.py,sha256=iJT-cDxS_H72j3ec03Lqmm4YPe-6svB2
|
|
176
185
|
zrb/util/codemod/add_code_to_method.py,sha256=TiYj9N0eMi3dutwQw_y4gnu1G6PW_-fZDqHatvZxJDo,2359
|
177
186
|
zrb/util/codemod/add_key_to_dict.py,sha256=ROw7Ds73gP5G5vOYlSqcHGUQQmJP_6Vb2jPnV2kZPQM,2110
|
178
187
|
zrb/util/codemod/add_param_to_function_call.py,sha256=cNC16uYbkjl33QEZ7i3pYvifGJXSXEoyfyCYx96S8ZI,1567
|
188
|
+
zrb/util/codemod/add_parent_to_class.py,sha256=xHLKAYDUShiaShocZTrIUUFbEw0obKRVB7WX5ktQ0kc,1416
|
179
189
|
zrb/util/codemod/add_property_to_class.py,sha256=43ll7b7SUWHPDpIoMp8Zp_I71wG1eAvnW_acp-HVF_4,2075
|
180
190
|
zrb/util/cron.py,sha256=9fTGatUMYCRgmDFGg-z6_XerT4U5Vq72nD05NnEVUm4,2852
|
181
|
-
zrb/util/git.py,sha256=
|
182
|
-
zrb/util/git_subtree.py,sha256=
|
191
|
+
zrb/util/git.py,sha256=QNGvJJ9kY1Hy6WNO4d22D_GXyC1l3yGtTOMJ9nXqqpc,5151
|
192
|
+
zrb/util/git_subtree.py,sha256=DidHZdKcpylomlJLiUyQJSpPSXaY399e-97H0WbOcvs,2619
|
183
193
|
zrb/util/group.py,sha256=Bg7HrSycoK110U5s_Tca6-uUQuZ5CMgb8wxZSrvDQ98,2790
|
184
194
|
zrb/util/llm/tool.py,sha256=9ezbPEAyMKLWABgeqAimJ82KBFl7ciWNFVGhtllXg6s,2106
|
185
|
-
zrb/util/load.py,sha256=
|
195
|
+
zrb/util/load.py,sha256=GEhvaS5ne25Pf5dPTOK_yuxZ-kHqZ0xe6WjfehLOAZA,1614
|
186
196
|
zrb/util/run.py,sha256=DGHUP9x1Q8V8UF3FbpmjLGuhVVCCLfjTH2teT8qXlNI,207
|
187
197
|
zrb/util/string/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
188
198
|
zrb/util/string/conversion.py,sha256=utfzaCLS2LTWMr9YbjXt2Z0a_pgzOjq76ZEPUh2UKCc,2876
|
189
|
-
zrb/util/string/format.py,sha256=
|
199
|
+
zrb/util/string/format.py,sha256=c9dUrsl_DII7jZZPJi9NBTvxKnrzZDPcQuksW6FJ_Lk,611
|
190
200
|
zrb/util/string/name.py,sha256=8picJfUBXNpdh64GNaHv3om23QHhUZux7DguFLrXHp8,1163
|
191
|
-
zrb/util/todo.py,sha256=
|
201
|
+
zrb/util/todo.py,sha256=DEqBrEqzm2o9aATEyROtPsP4D7dbHIlTFVn4kvqOd4M,13498
|
192
202
|
zrb/xcom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
193
203
|
zrb/xcom/xcom.py,sha256=P4aYHdE3FRsTsNrXGyW8N44IWZjw-vG_qys1Ymn3aBg,1572
|
194
|
-
zrb-1.0.
|
195
|
-
zrb-1.0.
|
196
|
-
zrb-1.0.
|
197
|
-
zrb-1.0.
|
204
|
+
zrb-1.0.0a12.dist-info/METADATA,sha256=yAtlpL0LBftuJRrC8zSn5erNKzCCkQAUGFFe6p_i9tg,4106
|
205
|
+
zrb-1.0.0a12.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
206
|
+
zrb-1.0.0a12.dist-info/entry_points.txt,sha256=-Pg3ElWPfnaSM-XvXqCxEAa-wfVI6BEgcs386s8C8v8,46
|
207
|
+
zrb-1.0.0a12.dist-info/RECORD,,
|
File without changes
|
File without changes
|