dv-flow-mgr 0.0.1.13777985638a1__py3-none-any.whl → 0.0.1.13797938654a1__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.
- dv_flow/mgr/std/fileset.py +2 -0
- dv_flow/mgr/task_listener_log.py +16 -3
- dv_flow/mgr/task_node.py +4 -0
- dv_flow/mgr/task_runner.py +4 -0
- {dv_flow_mgr-0.0.1.13777985638a1.dist-info → dv_flow_mgr-0.0.1.13797938654a1.dist-info}/METADATA +1 -1
- {dv_flow_mgr-0.0.1.13777985638a1.dist-info → dv_flow_mgr-0.0.1.13797938654a1.dist-info}/RECORD +10 -10
- {dv_flow_mgr-0.0.1.13777985638a1.dist-info → dv_flow_mgr-0.0.1.13797938654a1.dist-info}/LICENSE +0 -0
- {dv_flow_mgr-0.0.1.13777985638a1.dist-info → dv_flow_mgr-0.0.1.13797938654a1.dist-info}/WHEEL +0 -0
- {dv_flow_mgr-0.0.1.13777985638a1.dist-info → dv_flow_mgr-0.0.1.13797938654a1.dist-info}/entry_points.txt +0 -0
- {dv_flow_mgr-0.0.1.13777985638a1.dist-info → dv_flow_mgr-0.0.1.13797938654a1.dist-info}/top_level.txt +0 -0
dv_flow/mgr/std/fileset.py
CHANGED
dv_flow/mgr/task_listener_log.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
import dataclasses as dc
|
2
|
+
from datetime import datetime
|
2
3
|
from rich.console import Console
|
3
4
|
|
4
5
|
@dc.dataclass
|
@@ -11,12 +12,20 @@ class TaskListenerLog(object):
|
|
11
12
|
if reason == 'enter':
|
12
13
|
self.level += 1
|
13
14
|
if not self.quiet:
|
14
|
-
self.console.print("[green]
|
15
|
+
self.console.print("[green]>> [%d][/green] Task %s" % (self.level, task.name))
|
15
16
|
elif reason == 'leave':
|
16
17
|
if self.quiet:
|
17
18
|
if task.result.changed:
|
18
19
|
self.console.print("[green]Done:[/green] %s" % (task.name,))
|
19
20
|
else:
|
21
|
+
delta_s = None
|
22
|
+
if task.start is not None and task.end is not None:
|
23
|
+
delta = task.end - task.start
|
24
|
+
if delta.total_seconds() > 1:
|
25
|
+
delta_s = " %0.2fs" % delta.total_seconds()
|
26
|
+
else:
|
27
|
+
delta_s = " %0.2fmS" % (1000*delta.total_seconds())
|
28
|
+
|
20
29
|
sev_pref_m = {
|
21
30
|
"info": "[blue]I[/blue]",
|
22
31
|
"warn": "[yellow]W[/yellow]",
|
@@ -38,9 +47,13 @@ class TaskListenerLog(object):
|
|
38
47
|
else:
|
39
48
|
self.console.print(" %s" % m.loc.path)
|
40
49
|
if task.result.status == 0:
|
41
|
-
self.console.print("[green]
|
50
|
+
self.console.print("[green]<< [%d][/green] Task %s%s%s" % (
|
51
|
+
self.level,
|
52
|
+
task.name,
|
53
|
+
("" if task.result.changed else " (up-to-date)"),
|
54
|
+
(delta_s if delta_s is not None else "")))
|
42
55
|
else:
|
43
|
-
self.console.print("[red]
|
56
|
+
self.console.print("[red]<< [%d][/red] Task %s" % (self.level, task.name))
|
44
57
|
self.level -= 1
|
45
58
|
else:
|
46
59
|
self.console.print("[red]-[/red] Task %s" % task.name)
|
dv_flow/mgr/task_node.py
CHANGED
@@ -29,6 +29,8 @@ class TaskNode(object):
|
|
29
29
|
rundir : str = dc.field(default=None)
|
30
30
|
output : TaskDataOutput = dc.field(default=None)
|
31
31
|
result : TaskDataResult = dc.field(default=None)
|
32
|
+
start : float = dc.field(default=None)
|
33
|
+
end : float = dc.field(default=None)
|
32
34
|
|
33
35
|
_log : ClassVar = logging.getLogger("TaskNode")
|
34
36
|
|
@@ -45,6 +47,8 @@ class TaskNode(object):
|
|
45
47
|
for dep in self.needs:
|
46
48
|
changed |= dep.changed
|
47
49
|
|
50
|
+
self.rundir = rundir
|
51
|
+
|
48
52
|
# TODO: Form dep-map from inputs
|
49
53
|
|
50
54
|
dep_m = {}
|
dv_flow/mgr/task_runner.py
CHANGED
@@ -4,6 +4,7 @@ import os
|
|
4
4
|
import re
|
5
5
|
import dataclasses as dc
|
6
6
|
import logging
|
7
|
+
from datetime import datetime
|
7
8
|
from toposort import toposort
|
8
9
|
from typing import Any, Callable, ClassVar, List, Tuple, Union
|
9
10
|
from .task_data import TaskDataInput, TaskDataOutput, TaskDataResult
|
@@ -99,6 +100,7 @@ class TaskSetRunner(TaskRunner):
|
|
99
100
|
for i in range(len(active_task_l)):
|
100
101
|
if active_task_l[i][1] == d:
|
101
102
|
tt = active_task_l[i][0]
|
103
|
+
tt.end = datetime.now()
|
102
104
|
if tt.result.memento is not None:
|
103
105
|
dst_memento[tt.name] = tt.result.memento.model_dump()
|
104
106
|
else:
|
@@ -122,6 +124,7 @@ class TaskSetRunner(TaskRunner):
|
|
122
124
|
os.makedirs(rundir, exist_ok=True)
|
123
125
|
|
124
126
|
self._notify(t, "enter")
|
127
|
+
t.start = datetime.now()
|
125
128
|
coro = asyncio.Task(t.do_run(
|
126
129
|
self,
|
127
130
|
rundir,
|
@@ -139,6 +142,7 @@ class TaskSetRunner(TaskRunner):
|
|
139
142
|
coros = list(at[1] for at in active_task_l)
|
140
143
|
res = await asyncio.gather(*coros)
|
141
144
|
for tt in active_task_l:
|
145
|
+
tt[0].end = datetime.now()
|
142
146
|
if tt[0].result.memento is not None:
|
143
147
|
dst_memento[tt[0].name] = tt[0].result.memento.model_dump()
|
144
148
|
else:
|
{dv_flow_mgr-0.0.1.13777985638a1.dist-info → dv_flow_mgr-0.0.1.13797938654a1.dist-info}/RECORD
RENAMED
@@ -23,25 +23,25 @@ dv_flow/mgr/task_graph_builder.py,sha256=AOltPyzd2Q9B67m0MyL59RPu3i2d5QrX3K-0gKW
|
|
23
23
|
dv_flow/mgr/task_graph_runner.py,sha256=jUGI49QvxUCfQoKQDDk2psbeapIcCg72qNOW1JipHzM,2182
|
24
24
|
dv_flow/mgr/task_graph_runner_local.py,sha256=OrydPwtQ8E7hYWvSXx0h7lI3nfUNFyklULhsyMwz9dA,4687
|
25
25
|
dv_flow/mgr/task_impl_data.py,sha256=bFPijoKrh9x7fZN2DsvRJp0UHo-gGM0VjtDQISyfhFk,321
|
26
|
-
dv_flow/mgr/task_listener_log.py,sha256=
|
26
|
+
dv_flow/mgr/task_listener_log.py,sha256=NvqzGBEdf3EV8voy1sjA_prDeyMWJ77-730v8_fMof0,2532
|
27
27
|
dv_flow/mgr/task_memento.py,sha256=C7VTQpBhDEoYuDmE6YTM-6TLMLnqHp6Y0Vat1aTgtCs,1096
|
28
|
-
dv_flow/mgr/task_node.py,sha256=
|
28
|
+
dv_flow/mgr/task_node.py,sha256=uuJGDgSySUyt2hz-I78w47fqpq4cIYtzrVj4RdKr_Cg,12765
|
29
29
|
dv_flow/mgr/task_output.py,sha256=dkJhhNRFGFQSkVsw_bGirK0_0ghTxBYq1LjRMZCVWnA,245
|
30
30
|
dv_flow/mgr/task_params_ctor.py,sha256=aXgB8o9xFPjaEjGW_xYkEC0N0apzGzGUPDj7g2ZLvus,1112
|
31
|
-
dv_flow/mgr/task_runner.py,sha256=
|
31
|
+
dv_flow/mgr/task_runner.py,sha256=SHbhGfuOUmlbk-nZDDuk9FX7syWWcgmCuOZ2LwG5UFM,7799
|
32
32
|
dv_flow/mgr/type.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
33
33
|
dv_flow/mgr/type_def.py,sha256=KdhuNlfw-NKU-4VZFCnMPyj775yEB7cpr5tz73a9yuQ,259
|
34
34
|
dv_flow/mgr/util.py,sha256=06eVyURF4ga-s8C9Sd3ZSDebwO4QS0XXaB8xADVbWRc,1437
|
35
35
|
dv_flow/mgr/cmds/cmd_run.py,sha256=w1KdnS5Skg4RH1xTB1RZP7gAElZMNcRuOhz3G98n9uk,2467
|
36
36
|
dv_flow/mgr/share/flow.json,sha256=lNmZex9NXkYbyb2aZseQfUOkV9CMyfH0iLODEI7EPBw,5096
|
37
37
|
dv_flow/mgr/std/exec.py,sha256=ETx9xSxhdCD_iw6pcmhrafDCJ-41AneyEAPwQf3q-3w,452
|
38
|
-
dv_flow/mgr/std/fileset.py,sha256=
|
38
|
+
dv_flow/mgr/std/fileset.py,sha256=nW5Cg4IyCs-ccKKsIxA5W5aZvaluFk6LXDyFh9Jixcs,3076
|
39
39
|
dv_flow/mgr/std/flow.dv,sha256=DpDTrRBfbIt4cJKLHqk_l6_nPkeFDKLVa5Ic4FZodNM,1587
|
40
40
|
dv_flow/mgr/std/message.py,sha256=T8Ye44784rD6CT2qIAP5SD7sKPdAlGMFimc4IaPCxxE,200
|
41
41
|
dv_flow/mgr/std/task_null.py,sha256=UKwUnqwFPBY8BO44ZAPcgehQB59kHZFa1qyZc1TwUqE,196
|
42
|
-
dv_flow_mgr-0.0.1.
|
43
|
-
dv_flow_mgr-0.0.1.
|
44
|
-
dv_flow_mgr-0.0.1.
|
45
|
-
dv_flow_mgr-0.0.1.
|
46
|
-
dv_flow_mgr-0.0.1.
|
47
|
-
dv_flow_mgr-0.0.1.
|
42
|
+
dv_flow_mgr-0.0.1.13797938654a1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
43
|
+
dv_flow_mgr-0.0.1.13797938654a1.dist-info/METADATA,sha256=6evEmYV2TBYSFz0p38MsXK8JKIkJSbgoqLPnQ4L3388,13314
|
44
|
+
dv_flow_mgr-0.0.1.13797938654a1.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
|
45
|
+
dv_flow_mgr-0.0.1.13797938654a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
|
46
|
+
dv_flow_mgr-0.0.1.13797938654a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
|
47
|
+
dv_flow_mgr-0.0.1.13797938654a1.dist-info/RECORD,,
|
{dv_flow_mgr-0.0.1.13777985638a1.dist-info → dv_flow_mgr-0.0.1.13797938654a1.dist-info}/LICENSE
RENAMED
File without changes
|
{dv_flow_mgr-0.0.1.13777985638a1.dist-info → dv_flow_mgr-0.0.1.13797938654a1.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|