dv-flow-mgr 0.0.1.13867752514a1__tar.gz → 0.0.1.13931887892a1__tar.gz

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.
Files changed (103) hide show
  1. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/PKG-INFO +1 -1
  2. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/pyproject.toml +1 -1
  3. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/pkg_rgy.py +4 -3
  4. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/std/exec.py +2 -0
  5. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/std/flow.dv +22 -1
  6. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/task_def.py +1 -0
  7. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/task_node.py +12 -2
  8. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow_mgr.egg-info/PKG-INFO +1 -1
  9. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/.github/workflows/ci.yml +0 -0
  10. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/.gitignore +0 -0
  11. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/.vscode/settings.json +0 -0
  12. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/LICENSE +0 -0
  13. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/README.md +0 -0
  14. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/docs/KeyArchitecture.md +0 -0
  15. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/docs/Makefile +0 -0
  16. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/docs/Notes.md +0 -0
  17. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/docs/Roadmap.md +0 -0
  18. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/docs/RundirLayout.md +0 -0
  19. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/docs/Stages.md +0 -0
  20. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/docs/Steps.md +0 -0
  21. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/docs/Tasks.md +0 -0
  22. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/docs/TypesAndDefs.md +0 -0
  23. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/docs/Usecases.md +0 -0
  24. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/docs/conf.py +0 -0
  25. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/docs/index.rst +0 -0
  26. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/docs/intro.rst +0 -0
  27. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/docs/quickstart.rst +0 -0
  28. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/docs/reference.rst +0 -0
  29. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/fwperiph_dma.pss +0 -0
  30. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/ivpm.yaml +0 -0
  31. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/setup.cfg +0 -0
  32. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/__init__.py +0 -0
  33. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/__main__.py +0 -0
  34. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/cmds/cmd_run.py +0 -0
  35. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/eval_jq.py +0 -0
  36. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/expr_eval.py +0 -0
  37. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/expr_parser.py +0 -0
  38. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/fileset.py +0 -0
  39. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/fragment_def.py +0 -0
  40. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/out +0 -0
  41. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/package.py +0 -0
  42. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/package_def.py +0 -0
  43. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/package_import_spec.py +0 -0
  44. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/param.py +0 -0
  45. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/param_def.py +0 -0
  46. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/param_ref_eval.py +0 -0
  47. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/parsetab.py +0 -0
  48. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/share/flow.json +0 -0
  49. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/std/create_file.py +0 -0
  50. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/std/fileset.py +0 -0
  51. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/std/message.py +0 -0
  52. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/std/task_null.py +0 -0
  53. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/task.py +0 -0
  54. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/task_ctor.py +0 -0
  55. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/task_data.py +0 -0
  56. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/task_exec_data.py +0 -0
  57. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/task_graph_builder.py +0 -0
  58. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/task_graph_runner.py +0 -0
  59. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/task_graph_runner_local.py +0 -0
  60. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/task_impl_data.py +0 -0
  61. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/task_listener_log.py +0 -0
  62. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/task_memento.py +0 -0
  63. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/task_output.py +0 -0
  64. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/task_params_ctor.py +0 -0
  65. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/task_runner.py +0 -0
  66. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/type.py +0 -0
  67. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/type_def.py +0 -0
  68. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow/mgr/util.py +0 -0
  69. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow_mgr.egg-info/SOURCES.txt +0 -0
  70. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow_mgr.egg-info/dependency_links.txt +0 -0
  71. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow_mgr.egg-info/entry_points.txt +0 -0
  72. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow_mgr.egg-info/requires.txt +0 -0
  73. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/src/dv_flow_mgr.egg-info/top_level.txt +0 -0
  74. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/examples/example1/example1.flow +0 -0
  75. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/system/test_depends.py +0 -0
  76. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/system/test_pkg_discovery.py +0 -0
  77. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/system/test_stdlib.py +0 -0
  78. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/__init__.py +0 -0
  79. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/data/fileset/test1/files1/file1_1.sv +0 -0
  80. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/data/fileset/test1/files1/file1_2.sv +0 -0
  81. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/data/fileset/test1/files2/file2_1.sv +0 -0
  82. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/data/fileset/test1/files2/file2_2.sv +0 -0
  83. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/data/fileset/test1/flow.dv +0 -0
  84. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/data/fileset/test1 copy/files1/file1_1.sv +0 -0
  85. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/data/fileset/test1 copy/files1/file1_2.sv +0 -0
  86. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/data/fileset/test1 copy/files2/file2_1.sv +0 -0
  87. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/data/fileset/test1 copy/files2/file2_2.sv +0 -0
  88. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/data/fileset/test1 copy/test1.dfs +0 -0
  89. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/data/proj1/proj1.dfs +0 -0
  90. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/data/proj2/proj2.dfs +0 -0
  91. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/data/proj3/proj3.dfs +0 -0
  92. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/test_data_merge.py +0 -0
  93. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/test_expr_eval.py +0 -0
  94. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/test_expr_parser.py +0 -0
  95. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/test_fileset.py +0 -0
  96. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/test_imports.py +0 -0
  97. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/test_markers.py +0 -0
  98. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/test_parse.py +0 -0
  99. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/test_pyclass.py +0 -0
  100. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/test_pytask_smoke.py +0 -0
  101. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/test_smoke copy.sav +0 -0
  102. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/test_smoke.py +0 -0
  103. {dv_flow_mgr-0.0.1.13867752514a1 → dv_flow_mgr-0.0.1.13931887892a1}/tests/unit/test_stdlib.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: dv-flow-mgr
3
- Version: 0.0.1.13867752514a1
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
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
 
6
6
  [project]
7
7
  name = "dv-flow-mgr"
8
- version = "0.0.1.13867752514a1"
8
+ version = "0.0.1.13931887892a1"
9
9
  dependencies = [
10
10
  'jq',
11
11
  'pydantic',
@@ -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
@@ -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
 
@@ -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: |
@@ -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
 
@@ -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 = []
@@ -138,8 +150,6 @@ class TaskNode(object):
138
150
  if elem.find("${{") != -1:
139
151
  new_val = eval.eval(elem)
140
152
  value[i] = new_val
141
- else:
142
- raise Exception("Unhandled param type: %s" % str(value))
143
153
 
144
154
  input = TaskDataInput(
145
155
  name=self.name,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: dv-flow-mgr
3
- Version: 0.0.1.13867752514a1
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