dv-flow-mgr 0.0.1.13885203883a1__py3-none-any.whl → 0.0.1.13931887892a1__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/pkg_rgy.py CHANGED
@@ -120,10 +120,11 @@ class PkgRgy(object):
120
120
 
121
121
  for name,path in pkg_m.items():
122
122
  self._log.debug("Registering package %s: %s" % (name, path))
123
- if name in self._pkg_m.keys():
124
- raise Exception("Package %s already registered using path %s. Conflicting path: %s" % (
123
+ if name in self._pkg_m.keys() and self._pkg_m[name][0] != path:
124
+ self._log.debug("Package %s already registered using path %s. Conflicting path: %s" % (
125
125
  name, self._pkg_m[name][0], path))
126
- self._pkg_m[name] = (path, None)
126
+ else:
127
+ self._pkg_m[name] = (path, None)
127
128
  except Exception as e:
128
129
  self._log.critical("Error loading plugin %s: %s" % (p.name, str(e)))
129
130
  raise e
dv_flow/mgr/std/exec.py CHANGED
@@ -25,6 +25,8 @@ from dv_flow.mgr import TaskDataResult
25
25
 
26
26
  _log = logging.getLogger("Exec")
27
27
 
28
+ class Memento()
29
+
28
30
  async def Exec(runner, input) -> TaskDataResult:
29
31
  _log.debug("TaskExec run: %s: cmd=%s" % (input.name, input.params.command))
30
32
 
dv_flow/mgr/std/flow.dv CHANGED
@@ -47,10 +47,31 @@ package:
47
47
  type: str
48
48
  - name: Exec
49
49
  pytask: dv_flow.mgr.std.exec.Exec
50
- with:
50
+ desc: Executes a subprocess
51
+ with:
52
+ shell:
53
+ type: str
54
+ value: "bash"
55
+ doc: |
56
+ Shell to use for executing the command
51
57
  command:
52
58
  type: str
53
59
  value: ""
60
+ doc: |
61
+ Command to execute
62
+ when:
63
+ type: str
64
+ value: "always"
65
+ doc: |
66
+ Specifies when the command is run.
67
+ - always -- Command is always run (default)
68
+ - changed -- If upstream tasks change
69
+ timestamp:
70
+ type: str
71
+ value: ""
72
+ doc: |
73
+ Optional timestamp file to determine if running
74
+ the command changed the output
54
75
  types:
55
76
  # - name: TaskDataItem
56
77
  # doc: |
dv_flow/mgr/task_def.py CHANGED
@@ -48,6 +48,7 @@ class TaskDef(BaseModel):
48
48
  params: Dict[str,Union[str,list,ParamDef]] = dc.Field(default_factory=dict, alias="with")
49
49
  passthrough: bool = dc.Field(default=False)
50
50
  consumes : List[Any] = dc.Field(default_factory=list)
51
+ tasks: List['TaskDef'] = dc.Field(default_factory=list)
51
52
 
52
53
  # out: List[TaskOutput] = dc.Field(default_factory=list)
53
54
 
dv_flow/mgr/task_node.py CHANGED
@@ -19,6 +19,7 @@
19
19
  #* Author:
20
20
  #*
21
21
  #****************************************************************************
22
+ import enum
22
23
  import os
23
24
  import sys
24
25
  import dataclasses as dc
@@ -31,6 +32,10 @@ from .task_params_ctor import TaskParamsCtor
31
32
  from .param_ref_eval import ParamRefEval
32
33
  from .param import Param
33
34
 
35
+ class RundirE(enum.Enum):
36
+ Unique = enum.auto()
37
+ Inherit = enum.auto()
38
+
34
39
  @dc.dataclass
35
40
  class TaskNode(object):
36
41
  """Executable view of a task"""
@@ -48,6 +53,7 @@ class TaskNode(object):
48
53
  consumes : List[Any] = dc.field(default_factory=list)
49
54
  needs : List[Tuple['TaskNode',bool]] = dc.field(default_factory=list)
50
55
  rundir : str = dc.field(default=None)
56
+ rundir_t : RundirE = dc.field(default=RundirE.Unique)
51
57
  output : TaskDataOutput = dc.field(default=None)
52
58
  result : TaskDataResult = dc.field(default=None)
53
59
  start : float = dc.field(default=None)
@@ -118,6 +124,12 @@ class TaskNode(object):
118
124
 
119
125
  self._log.debug("in_params[2]: %s" % ",".join(p.src for p in in_params))
120
126
  eval.setVar("in", in_params)
127
+ eval.setVar("rundir", rundir)
128
+
129
+ # Set variables from the inputs
130
+ for need in self.needs:
131
+ for name,value in {"rundir" : need.rundir}.items():
132
+ eval.setVar("%s.%s" % (need.name, name), value)
121
133
 
122
134
  # Default inputs is the list of parameter sets that match 'consumes'
123
135
  inputs = []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: dv-flow-mgr
3
- Version: 0.0.1.13885203883a1
3
+ Version: 0.0.1.13931887892a1
4
4
  Summary: DV Flow Manager is a build system for silicon design
5
5
  Author-email: Matthew Ballance <matt.ballance@gmail.com>
6
6
  License: Apache License
@@ -13,11 +13,11 @@ dv_flow/mgr/param.py,sha256=kkxMRGf6mPjSZJsjgLKH2vJL62Sn0ZESvjBLkEYOp20,1386
13
13
  dv_flow/mgr/param_def.py,sha256=ObRf289sI1xzOudjO9MzyTVuKsz3AS949XA4Deyz-kE,1549
14
14
  dv_flow/mgr/param_ref_eval.py,sha256=5yH37oIX6f2qmk7GfRgNT5qZx0jm3CJFgB9lLDZZ1yQ,1981
15
15
  dv_flow/mgr/parsetab.py,sha256=I-p3nC60t9jiNtPhKyl_sE92SiP96zJLnNdydcLy33g,3780
16
- dv_flow/mgr/pkg_rgy.py,sha256=U5LgBsdCpVJ7tXjlTsn_Qjf9OoEEOjyWsYNsOecS2uQ,5337
16
+ dv_flow/mgr/pkg_rgy.py,sha256=d1nIjRm3ymMNJT-yiMDxCS6bFisTPvLMqh5VrfsHVKM,5404
17
17
  dv_flow/mgr/task.py,sha256=BmS0wd51l4tpTrsit3-ugCB5VGnwpMJNl0dfJfHS4DQ,5981
18
18
  dv_flow/mgr/task_ctor.py,sha256=YDYb5uW9Js7MnA8GqbYJljNCbeJFKGveZ2v-IJRgIa8,2221
19
19
  dv_flow/mgr/task_data.py,sha256=ysawiUcbQu-ImNSgU5LsfOWlBKdfBt_8juwSacnAqAQ,11437
20
- dv_flow/mgr/task_def.py,sha256=BJKZZE8yO_kcKaf36HnzTkhYaC0DPIya4IKlKNM4s5I,2080
20
+ dv_flow/mgr/task_def.py,sha256=0rVlDjNF39PQ_0uzkSuOgvE2sZjFwpTAR8HIu_Arbog,2140
21
21
  dv_flow/mgr/task_exec_data.py,sha256=-mh9G2-iq6ioB7v7QrHiQAOEwd_hDKhnVf2Mb_IHRtg,1483
22
22
  dv_flow/mgr/task_graph_builder.py,sha256=EYFsMZCDDHMEFWZOVSpPb7KBVE6N6XyL4KFzJVrPSPE,10106
23
23
  dv_flow/mgr/task_graph_runner.py,sha256=LZ5cTXLQlcK348AxTYKqfpsFFmxA3aseGfholvQW39s,2187
@@ -25,7 +25,7 @@ dv_flow/mgr/task_graph_runner_local.py,sha256=quAxmF1go2iVhBDieksg3brAZukIvpvF-8
25
25
  dv_flow/mgr/task_impl_data.py,sha256=jpO7kQ6AjYcOOfpgFIPCEYA1pQbVwFcIY_SY3Q53eGk,1163
26
26
  dv_flow/mgr/task_listener_log.py,sha256=b7caUHERGkN6eT8IinBJTdZpwASUs8xAqDmtEymMKzQ,3529
27
27
  dv_flow/mgr/task_memento.py,sha256=CV3d1J4ADhMpqvYPfWvUI7duSFCbLEzY41y2GZBHIhM,1101
28
- dv_flow/mgr/task_node.py,sha256=xPCarkVSj9rZ1v12WiHtMOe-nMKHbkaUpP9-edQOXek,14828
28
+ dv_flow/mgr/task_node.py,sha256=DL7gI79uu0yoaz2J7PJhr91isL42agATbLDO0ngGqi4,15215
29
29
  dv_flow/mgr/task_output.py,sha256=ZwyvwnYj_gHOEFAEOH3m24Xfc4Cn77hb1j7LkX8_3C4,1086
30
30
  dv_flow/mgr/task_params_ctor.py,sha256=BPkbnoCtzhCxc1g8CJ6VimCcm5UAu92PXeDMhQ4lYsQ,1957
31
31
  dv_flow/mgr/task_runner.py,sha256=TB4feCEItxufUyyBSwNNY3OkQ0yjSO0fUfjga0u7rsg,8790
@@ -35,14 +35,14 @@ dv_flow/mgr/util.py,sha256=BLp-25Ph9roqo1O3VHI5sKhwxQ0wUU7znFwcSKt0hpA,1442
35
35
  dv_flow/mgr/cmds/cmd_run.py,sha256=lNMvpiyKf-Ehs0GUkzcOIoJxaXgeLKv6UFNakcm9_hw,3303
36
36
  dv_flow/mgr/share/flow.json,sha256=lNmZex9NXkYbyb2aZseQfUOkV9CMyfH0iLODEI7EPBw,5096
37
37
  dv_flow/mgr/std/create_file.py,sha256=wmn5N_mObx_wr2LPdKOVbNmdM71hhs3UXOv6Ap9l3Ts,2726
38
- dv_flow/mgr/std/exec.py,sha256=hGvZke853iee1xw8r80vra5WLcCKveXbNHuSu3kC2Yw,1285
38
+ dv_flow/mgr/std/exec.py,sha256=kU9S8mIBDvZFqcWGGe9RQIfeldDw2g2eGBBh-po0ePQ,1302
39
39
  dv_flow/mgr/std/fileset.py,sha256=5IxS6T-x0wzA6fdEQcfHZ9kNP8IpH9hfJ3UMhL4A6Iw,3911
40
- dv_flow/mgr/std/flow.dv,sha256=CcQOvSfT0JgsaNf7dH8gfbG8lPvQQXw9W9gqrT52Pw0,2025
40
+ dv_flow/mgr/std/flow.dv,sha256=Ehw0rrFcHoXt3WudeJ5PyPXpVtUcvvWGm43ikUWl-lE,2602
41
41
  dv_flow/mgr/std/message.py,sha256=_Gox9oBzL9ZYG1JfJ-WYPXojVLqGNaKxZ9tpLVT0LO0,1035
42
42
  dv_flow/mgr/std/task_null.py,sha256=dw6LXBXVwth6gLPeduDvlz5znAhcVpDH8r1DticD-0w,1041
43
- dv_flow_mgr-0.0.1.13885203883a1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
44
- dv_flow_mgr-0.0.1.13885203883a1.dist-info/METADATA,sha256=lH34dG2edpLv69XsxqBilTInQ_C4sfWeBkvy_3xM-Cw,13314
45
- dv_flow_mgr-0.0.1.13885203883a1.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
46
- dv_flow_mgr-0.0.1.13885203883a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
47
- dv_flow_mgr-0.0.1.13885203883a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
48
- dv_flow_mgr-0.0.1.13885203883a1.dist-info/RECORD,,
43
+ dv_flow_mgr-0.0.1.13931887892a1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
44
+ dv_flow_mgr-0.0.1.13931887892a1.dist-info/METADATA,sha256=D2JLp63FgCw_yZC_bdxrl76DDLMzyI4By_K7mhYYhmM,13314
45
+ dv_flow_mgr-0.0.1.13931887892a1.dist-info/WHEEL,sha256=beeZ86-EfXScwlR_HKu4SllMC9wUEj_8Z_4FJ3egI2w,91
46
+ dv_flow_mgr-0.0.1.13931887892a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
47
+ dv_flow_mgr-0.0.1.13931887892a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
48
+ dv_flow_mgr-0.0.1.13931887892a1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (76.0.0)
2
+ Generator: setuptools (76.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5