dv-flow-mgr 1.10.15546818223rc0__py3-none-any.whl → 1.10.15799221980rc0__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/__init__.py +1 -1
- dv_flow/mgr/cmds/cmd_graph.py +2 -9
- dv_flow/mgr/cmds/cmd_run.py +2 -7
- dv_flow/mgr/cmds/cmd_show.py +2 -1
- dv_flow/mgr/cmds/util.py +11 -0
- dv_flow/mgr/package_loader.py +41 -15
- dv_flow/mgr/util/util.py +11 -8
- {dv_flow_mgr-1.10.15546818223rc0.dist-info → dv_flow_mgr-1.10.15799221980rc0.dist-info}/METADATA +1 -1
- {dv_flow_mgr-1.10.15546818223rc0.dist-info → dv_flow_mgr-1.10.15799221980rc0.dist-info}/RECORD +13 -12
- {dv_flow_mgr-1.10.15546818223rc0.dist-info → dv_flow_mgr-1.10.15799221980rc0.dist-info}/WHEEL +0 -0
- {dv_flow_mgr-1.10.15546818223rc0.dist-info → dv_flow_mgr-1.10.15799221980rc0.dist-info}/entry_points.txt +0 -0
- {dv_flow_mgr-1.10.15546818223rc0.dist-info → dv_flow_mgr-1.10.15799221980rc0.dist-info}/licenses/LICENSE +0 -0
- {dv_flow_mgr-1.10.15546818223rc0.dist-info → dv_flow_mgr-1.10.15799221980rc0.dist-info}/top_level.txt +0 -0
dv_flow/mgr/__init__.py
CHANGED
dv_flow/mgr/cmds/cmd_graph.py
CHANGED
@@ -28,6 +28,7 @@ from ..task_graph_builder import TaskGraphBuilder
|
|
28
28
|
from ..task_runner import TaskSetRunner
|
29
29
|
from ..task_listener_log import TaskListenerLog
|
30
30
|
from ..task_graph_dot_writer import TaskGraphDotWriter
|
31
|
+
from .util import get_rootdir
|
31
32
|
|
32
33
|
|
33
34
|
class CmdGraph(object):
|
@@ -35,16 +36,8 @@ class CmdGraph(object):
|
|
35
36
|
|
36
37
|
def __call__(self, args):
|
37
38
|
|
38
|
-
if args.root is not None:
|
39
|
-
rootdir = args.root
|
40
|
-
elif "DV_FLOW_ROOT" in os.environ.keys():
|
41
|
-
rootdir = os.environ["DV_FLOW_ROOT"]
|
42
|
-
else:
|
43
|
-
rootdir = os.getcwd()
|
44
|
-
|
45
|
-
|
46
39
|
# First, find the project we're working with
|
47
|
-
pkg = loadProjPkgDef(
|
40
|
+
pkg = loadProjPkgDef(get_rootdir(args))
|
48
41
|
|
49
42
|
if pkg is None:
|
50
43
|
raise Exception("Failed to find a 'flow.dv' file that defines a package in %s or its parent directories" % os.getcwd())
|
dv_flow/mgr/cmds/cmd_run.py
CHANGED
@@ -31,24 +31,19 @@ from ..task_graph_builder import TaskGraphBuilder
|
|
31
31
|
from ..task_runner import TaskSetRunner
|
32
32
|
from ..task_listener_log import TaskListenerLog
|
33
33
|
from ..task_listener_trace import TaskListenerTrace
|
34
|
+
from .util import get_rootdir
|
34
35
|
|
35
36
|
|
36
37
|
class CmdRun(object):
|
37
38
|
_log : ClassVar = logging.getLogger("CmdRun")
|
38
39
|
|
39
40
|
def __call__(self, args):
|
40
|
-
if args.root is not None:
|
41
|
-
rootdir = args.root
|
42
|
-
elif "DV_FLOW_ROOT" in os.environ.keys():
|
43
|
-
rootdir = os.environ["DV_FLOW_ROOT"]
|
44
|
-
else:
|
45
|
-
rootdir = os.getcwd()
|
46
41
|
|
47
42
|
rgy = ExtRgy.inst()
|
48
43
|
|
49
44
|
# First, find the project we're working with
|
50
45
|
listener = TaskListenerLog()
|
51
|
-
pkg = loadProjPkgDef(
|
46
|
+
pkg = loadProjPkgDef(get_rootdir(args), listener=listener.marker)
|
52
47
|
|
53
48
|
if listener.has_severity[SeverityE.Error] > 0:
|
54
49
|
print("Error(s) encountered while loading package definition")
|
dv_flow/mgr/cmds/cmd_show.py
CHANGED
@@ -29,6 +29,7 @@ from ..task_graph_builder import TaskGraphBuilder
|
|
29
29
|
from ..task_runner import TaskSetRunner
|
30
30
|
from ..task_listener_log import TaskListenerLog
|
31
31
|
from ..task_graph_dot_writer import TaskGraphDotWriter
|
32
|
+
from .util import get_rootdir
|
32
33
|
|
33
34
|
|
34
35
|
class CmdShow(object):
|
@@ -37,7 +38,7 @@ class CmdShow(object):
|
|
37
38
|
def __call__(self, args):
|
38
39
|
|
39
40
|
# First, find the project we're working with
|
40
|
-
pkg = loadProjPkgDef(
|
41
|
+
pkg = loadProjPkgDef(get_rootdir(args))
|
41
42
|
|
42
43
|
if pkg is None:
|
43
44
|
raise Exception("Failed to find a 'flow.dv' file that defines a package in %s or its parent directories" % os.getcwd())
|
dv_flow/mgr/cmds/util.py
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
import os
|
2
|
+
|
3
|
+
def get_rootdir(args):
|
4
|
+
rootdir = None
|
5
|
+
if hasattr(args, "root") and args.root is not None:
|
6
|
+
rootdir = args.root
|
7
|
+
elif "DV_FLOW_ROOT" in os.environ.keys():
|
8
|
+
rootdir = os.environ["DV_FLOW_ROOT"]
|
9
|
+
else:
|
10
|
+
rootdir = os.getcwd()
|
11
|
+
return rootdir
|
dv_flow/mgr/package_loader.py
CHANGED
@@ -11,6 +11,7 @@ from .fragment_def import FragmentDef
|
|
11
11
|
from .package_def import PackageDef
|
12
12
|
from .package import Package
|
13
13
|
from .param_def import ComplexType
|
14
|
+
from .param_ref_eval import ParamRefEval
|
14
15
|
from .ext_rgy import ExtRgy
|
15
16
|
from .srcinfo import SrcInfo
|
16
17
|
from .task import Task, Strategy, StrategyGenerate
|
@@ -231,6 +232,7 @@ class PackageLoader(object):
|
|
231
232
|
_pkg_s : List[PackageScope] = dc.field(default_factory=list)
|
232
233
|
_pkg_m : Dict[str, Package] = dc.field(default_factory=dict)
|
233
234
|
_pkg_path_m : Dict[str, Package] = dc.field(default_factory=dict)
|
235
|
+
_eval : ParamRefEval = dc.field(default_factory=ParamRefEval)
|
234
236
|
_loader_scope : LoaderScope = None
|
235
237
|
|
236
238
|
def __post_init__(self):
|
@@ -240,6 +242,8 @@ class PackageLoader(object):
|
|
240
242
|
if self.env is None:
|
241
243
|
self.env = os.environ.copy()
|
242
244
|
|
245
|
+
self._eval.set("env", self.env)
|
246
|
+
|
243
247
|
self._loader_scope = LoaderScope(name=None, loader=self)
|
244
248
|
|
245
249
|
def load(self, root) -> Package:
|
@@ -438,6 +442,10 @@ class PackageLoader(object):
|
|
438
442
|
|
439
443
|
self._log.info("Loading imported package %s" % imp_path)
|
440
444
|
|
445
|
+
if "${{" in imp_path:
|
446
|
+
imp_path = self._eval.eval(imp_path)
|
447
|
+
self._log.info("Import path with expansion: %s" % imp_path)
|
448
|
+
|
441
449
|
if not os.path.isabs(imp_path):
|
442
450
|
for root in (basedir, os.path.dirname(self._file_s[0])):
|
443
451
|
self._log.debug("Search basedir: %s ; imp_path: %s" % (root, imp_path))
|
@@ -448,6 +456,10 @@ class PackageLoader(object):
|
|
448
456
|
self._log.debug("Found root file: %s" % resolved_path)
|
449
457
|
imp_path = resolved_path
|
450
458
|
break
|
459
|
+
else:
|
460
|
+
# absolute path.
|
461
|
+
if os.path.isdir(imp_path):
|
462
|
+
imp_path = self._findFlowDvInDir(imp_path)
|
451
463
|
|
452
464
|
if not os.path.isfile(imp_path):
|
453
465
|
self.error("Import file %s not found" % imp_path, pkg.srcinfo)
|
@@ -466,19 +478,30 @@ class PackageLoader(object):
|
|
466
478
|
pkg.pkg_m[sub_pkg.name] = sub_pkg
|
467
479
|
self._log.debug("<-- _loadPackageImport %s" % str(imp))
|
468
480
|
|
469
|
-
def _findFlowDvInDir(self, base, leaf):
|
481
|
+
def _findFlowDvInDir(self, base, leaf=None):
|
470
482
|
"""Search down the tree looking for a flow.dv file"""
|
471
483
|
self._log.debug("--> _findFlowDvInDir (%s, %s)" % (base, leaf))
|
472
484
|
imp_path = None
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
485
|
+
for name in ("flow.dv", "flow.yaml", "flow.yml"):
|
486
|
+
if leaf is None:
|
487
|
+
if os.path.isfile(base):
|
488
|
+
imp_path = base
|
489
|
+
elif os.path.isfile(os.path.join(base, name)):
|
490
|
+
imp_path = os.path.join(base, name)
|
491
|
+
elif os.path.isdir(base):
|
492
|
+
imp_path = self._findFlowDvSubdir(base)
|
493
|
+
elif os.path.isfile(os.path.join(base, leaf)):
|
494
|
+
imp_path = os.path.join(base, leaf)
|
495
|
+
self._log.debug("Found: %s" % imp_path)
|
496
|
+
elif os.path.isdir(os.path.join(base, leaf)):
|
497
|
+
if os.path.isfile(os.path.join(base, leaf, name)):
|
498
|
+
imp_path = os.path.join(base, leaf, name)
|
499
|
+
self._log.debug("Found: %s" % imp_path)
|
500
|
+
else:
|
501
|
+
imp_path = self._findFlowDvSubdir(os.path.join(base, leaf))
|
502
|
+
if imp_path is not None:
|
503
|
+
self._log.debug("Found: %s" % imp_path)
|
504
|
+
break
|
482
505
|
self._log.debug("<-- _findFlowDvInDir %s" % imp_path)
|
483
506
|
return imp_path
|
484
507
|
|
@@ -487,11 +510,14 @@ class PackageLoader(object):
|
|
487
510
|
# Search deeper
|
488
511
|
ret = None
|
489
512
|
for subdir in os.listdir(dir):
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
513
|
+
for name in ("flow.dv", "flow.yaml", "flow.yml"):
|
514
|
+
if os.path.isfile(os.path.join(dir, subdir, name)):
|
515
|
+
ret = os.path.join(dir, subdir, name)
|
516
|
+
self._log.debug("Found: %s" % ret)
|
517
|
+
elif os.path.isdir(os.path.join(dir, subdir)):
|
518
|
+
ret = self._findFlowDvSubdir(os.path.join(dir, subdir))
|
519
|
+
if ret is not None:
|
520
|
+
break
|
495
521
|
if ret is not None:
|
496
522
|
break
|
497
523
|
return ret
|
dv_flow/mgr/util/util.py
CHANGED
@@ -31,14 +31,17 @@ def loadProjPkgDef(path, listener=None):
|
|
31
31
|
ret = None
|
32
32
|
found = False
|
33
33
|
while dir != "/" and dir != "" and os.path.isdir(dir):
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
34
|
+
for name in ("flow.dv", "flow.yaml", "flow.yml"):
|
35
|
+
if os.path.exists(os.path.join(dir, name)):
|
36
|
+
with open(os.path.join(dir, name)) as f:
|
37
|
+
data = yaml.load(f, Loader=yaml.FullLoader)
|
38
|
+
if "package" in data.keys():
|
39
|
+
found = True
|
40
|
+
listeners = [listener] if listener is not None else []
|
41
|
+
ret = PackageLoader(marker_listeners=listeners).load(os.path.join(dir, name))
|
42
|
+
break
|
43
|
+
if found:
|
44
|
+
break
|
42
45
|
dir = os.path.dirname(dir)
|
43
46
|
|
44
47
|
if not found:
|
{dv_flow_mgr-1.10.15546818223rc0.dist-info → dv_flow_mgr-1.10.15799221980rc0.dist-info}/RECORD
RENAMED
@@ -1,4 +1,4 @@
|
|
1
|
-
dv_flow/mgr/__init__.py,sha256=
|
1
|
+
dv_flow/mgr/__init__.py,sha256=ofZc89mZ2Z8he5vLK3xJEdN9Ur4PRgp_JD7uJPvTV4o,1316
|
2
2
|
dv_flow/mgr/__main__.py,sha256=yrNrvz-jYEovBGpY1E9aS1iZ9S_9MQv0lT-XUQSp0vc,4141
|
3
3
|
dv_flow/mgr/cond_def.py,sha256=2ZkzPusqVkN1fFMTvkDl9O_OJLPdD_cK3xzX9J75RMw,343
|
4
4
|
dv_flow/mgr/config.py,sha256=b2MVlVVNB0psk8x4bQRAYshkpNJrtyMtV1Ymhmx9AfM,137
|
@@ -21,7 +21,7 @@ dv_flow/mgr/out,sha256=d8GGBi3J43fhdLBlnsUbzBfRe0TD0QTP3nOTz54l2bI,200
|
|
21
21
|
dv_flow/mgr/package.py,sha256=oKzYQypF-to4OXr8BKwPz7Z8cf7AC6eF6CiYj1jCyTI,4585
|
22
22
|
dv_flow/mgr/package_def.py,sha256=h3_FIKQB0vqfcu1jRAZuB8W8Kozr62oaKNchxeNjpWk,5898
|
23
23
|
dv_flow/mgr/package_import_spec.py,sha256=aZMpnS9a5NFY76_pYXEuO3-Mkc_xFzy73fdrUe_54Dc,1760
|
24
|
-
dv_flow/mgr/package_loader.py,sha256=
|
24
|
+
dv_flow/mgr/package_loader.py,sha256=z02_buAgOIRtpNxuYgrdaeDxV6PLYcFGsOcElfH9cqM,36860
|
25
25
|
dv_flow/mgr/package_node.py,sha256=CccD2ECiIXy9JBkRR3c7qDxeBiLiPbRT9CqR-Al_niI,214
|
26
26
|
dv_flow/mgr/param.py,sha256=kkxMRGf6mPjSZJsjgLKH2vJL62Sn0ZESvjBLkEYOp20,1386
|
27
27
|
dv_flow/mgr/param_def.py,sha256=GnaolV5QOrjBpqNj9yYo9nnrwEBpp4J_4ZYe14bsfO4,1939
|
@@ -58,10 +58,11 @@ dv_flow/mgr/task_runner.py,sha256=l1bkVoGerPl1mw4O-JMLGHgDZdWIHukfj5fElbiNizI,10
|
|
58
58
|
dv_flow/mgr/type.py,sha256=hoJTatlPC0yOazKSWduK-5CfY38RPkc6qXFzOCcVSdM,723
|
59
59
|
dv_flow/mgr/type_def.py,sha256=4sge3PibO1jDnS0cXdX0PiurcKbDA3kT6rb4DGIKwEM,1176
|
60
60
|
dv_flow/mgr/yaml_srcinfo_loader.py,sha256=29BNRiB8Hj1FepkrLtdjHSv5U_85Q432gBeeK80nKEA,1606
|
61
|
-
dv_flow/mgr/cmds/cmd_graph.py,sha256=
|
62
|
-
dv_flow/mgr/cmds/cmd_run.py,sha256=
|
63
|
-
dv_flow/mgr/cmds/cmd_show.py,sha256=
|
61
|
+
dv_flow/mgr/cmds/cmd_graph.py,sha256=VQLm-zoa5xbWNfJNoCnDihKniWW8W_tmCyWZISDzwDo,3006
|
62
|
+
dv_flow/mgr/cmds/cmd_run.py,sha256=0wqJpYwmqo9Ou5Tny12A67WqOdUWFgLVKeFy-0R07dA,3981
|
63
|
+
dv_flow/mgr/cmds/cmd_show.py,sha256=eNWP-cd3PTF1gfrdG58hzb6Mf5sNOGu1MZaslJ_z4fc,3791
|
64
64
|
dv_flow/mgr/cmds/cmd_util.py,sha256=jdT48T_pZozCZUzkNy7tIhYL_kMGjWbV6g92oMYhRww,985
|
65
|
+
dv_flow/mgr/cmds/util.py,sha256=S6_wIxDBxzWVxwjmPiY6Wk_AO7sD0OLDw-ENqge6TWc,286
|
65
66
|
dv_flow/mgr/share/flow.json,sha256=lNmZex9NXkYbyb2aZseQfUOkV9CMyfH0iLODEI7EPBw,5096
|
66
67
|
dv_flow/mgr/std/create_file.py,sha256=SEpKTQdiY32002C7b4kYfAiK9v_xajixOJU5WftW75I,2957
|
67
68
|
dv_flow/mgr/std/data_item.py,sha256=olKtspEVFOvr92reUl4QaQV27UVyjSGIfIWpsy0Myvo,434
|
@@ -73,12 +74,12 @@ dv_flow/mgr/std/message.py,sha256=0JHLErg8whqMLAasG1fumZ2O7R7WNWeNQ9ibJaLDpVY,10
|
|
73
74
|
dv_flow/mgr/std/task_null.py,sha256=dw6LXBXVwth6gLPeduDvlz5znAhcVpDH8r1DticD-0w,1041
|
74
75
|
dv_flow/mgr/util/__init__.py,sha256=6uuA6z5cKS2hcjJw6YyEM2M79g6OpXb6tZF_Gku-AGU,22
|
75
76
|
dv_flow/mgr/util/__main__.py,sha256=F0LXpCDpYTPalSo0dc1h_qZkip5v1AZYYh-vcYbh5s0,983
|
76
|
-
dv_flow/mgr/util/util.py,sha256=
|
77
|
+
dv_flow/mgr/util/util.py,sha256=5wVWpkHn4U-Hcv-skaLaGC0bgoK63NaF-NH-DGpAaRM,2035
|
77
78
|
dv_flow/mgr/util/cmds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
78
79
|
dv_flow/mgr/util/cmds/cmd_schema.py,sha256=IJzZdxCSEgIQ79LpYiM7UqJ9RJ-7yraqmBN2XVgAgXA,1752
|
79
|
-
dv_flow_mgr-1.10.
|
80
|
-
dv_flow_mgr-1.10.
|
81
|
-
dv_flow_mgr-1.10.
|
82
|
-
dv_flow_mgr-1.10.
|
83
|
-
dv_flow_mgr-1.10.
|
84
|
-
dv_flow_mgr-1.10.
|
80
|
+
dv_flow_mgr-1.10.15799221980rc0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
81
|
+
dv_flow_mgr-1.10.15799221980rc0.dist-info/METADATA,sha256=P5WbF55tMpkrg6XbrLJAAalWv-EzlaTRh5g0DK5RxmY,13336
|
82
|
+
dv_flow_mgr-1.10.15799221980rc0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
83
|
+
dv_flow_mgr-1.10.15799221980rc0.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
|
84
|
+
dv_flow_mgr-1.10.15799221980rc0.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
|
85
|
+
dv_flow_mgr-1.10.15799221980rc0.dist-info/RECORD,,
|
{dv_flow_mgr-1.10.15546818223rc0.dist-info → dv_flow_mgr-1.10.15799221980rc0.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|