dv-flow-mgr 0.0.1.13525773676a1__tar.gz → 0.0.1.13551739897a1__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 (96) hide show
  1. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/PKG-INFO +1 -1
  2. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/pyproject.toml +1 -1
  3. dv_flow_mgr-0.0.1.13551739897a1/src/dv_flow/mgr/eval_jq.py +15 -0
  4. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/expr_eval.py +18 -5
  5. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/param_ref_eval.py +4 -0
  6. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/task_node.py +4 -2
  7. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow_mgr.egg-info/PKG-INFO +1 -1
  8. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow_mgr.egg-info/SOURCES.txt +1 -0
  9. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/test_pytask_smoke.py +2 -2
  10. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/.github/workflows/ci.yml +0 -0
  11. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/.gitignore +0 -0
  12. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/.vscode/settings.json +0 -0
  13. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/LICENSE +0 -0
  14. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/README.md +0 -0
  15. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/docs/KeyArchitecture.md +0 -0
  16. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/docs/Makefile +0 -0
  17. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/docs/Notes.md +0 -0
  18. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/docs/Roadmap.md +0 -0
  19. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/docs/RundirLayout.md +0 -0
  20. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/docs/Stages.md +0 -0
  21. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/docs/Steps.md +0 -0
  22. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/docs/Tasks.md +0 -0
  23. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/docs/TypesAndDefs.md +0 -0
  24. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/docs/Usecases.md +0 -0
  25. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/docs/conf.py +0 -0
  26. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/docs/index.rst +0 -0
  27. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/docs/intro.rst +0 -0
  28. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/docs/quickstart.rst +0 -0
  29. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/docs/reference.rst +0 -0
  30. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/ivpm.yaml +0 -0
  31. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/setup.cfg +0 -0
  32. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/__init__.py +0 -0
  33. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/__main__.py +0 -0
  34. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/cmds/cmd_run.py +0 -0
  35. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/expr_parser.py +0 -0
  36. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/fileset.py +0 -0
  37. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/fragment_def.py +0 -0
  38. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/out +0 -0
  39. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/package.py +0 -0
  40. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/package_def.py +0 -0
  41. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/package_import_spec.py +0 -0
  42. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/param_def.py +0 -0
  43. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/parsetab.py +0 -0
  44. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/pkg_rgy.py +0 -0
  45. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/share/flow.json +0 -0
  46. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/std/fileset.py +0 -0
  47. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/std/flow.dv +0 -0
  48. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/std/message.py +0 -0
  49. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/std/task_null.py +0 -0
  50. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/task.py +0 -0
  51. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/task_ctor.py +0 -0
  52. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/task_data.py +0 -0
  53. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/task_def.py +0 -0
  54. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/task_exec_data.py +0 -0
  55. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/task_graph_builder.py +0 -0
  56. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/task_graph_runner.py +0 -0
  57. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/task_graph_runner_local.py +0 -0
  58. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/task_impl_data.py +0 -0
  59. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/task_memento.py +0 -0
  60. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/task_output.py +0 -0
  61. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/task_params_ctor.py +0 -0
  62. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/task_runner.py +0 -0
  63. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/type.py +0 -0
  64. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/type_def.py +0 -0
  65. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow/mgr/util.py +0 -0
  66. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow_mgr.egg-info/dependency_links.txt +0 -0
  67. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow_mgr.egg-info/entry_points.txt +0 -0
  68. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow_mgr.egg-info/requires.txt +0 -0
  69. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/src/dv_flow_mgr.egg-info/top_level.txt +0 -0
  70. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/examples/example1/example1.flow +0 -0
  71. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/system/test_depends.py +0 -0
  72. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/system/test_pkg_discovery.py +0 -0
  73. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/system/test_stdlib.py +0 -0
  74. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/__init__.py +0 -0
  75. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/data/fileset/test1/files1/file1_1.sv +0 -0
  76. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/data/fileset/test1/files1/file1_2.sv +0 -0
  77. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/data/fileset/test1/files2/file2_1.sv +0 -0
  78. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/data/fileset/test1/files2/file2_2.sv +0 -0
  79. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/data/fileset/test1/flow.dv +0 -0
  80. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/data/fileset/test1 copy/files1/file1_1.sv +0 -0
  81. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/data/fileset/test1 copy/files1/file1_2.sv +0 -0
  82. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/data/fileset/test1 copy/files2/file2_1.sv +0 -0
  83. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/data/fileset/test1 copy/files2/file2_2.sv +0 -0
  84. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/data/fileset/test1 copy/test1.dfs +0 -0
  85. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/data/proj1/proj1.dfs +0 -0
  86. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/data/proj2/proj2.dfs +0 -0
  87. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/data/proj3/proj3.dfs +0 -0
  88. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/test_data_merge.py +0 -0
  89. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/test_expr_eval.py +0 -0
  90. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/test_expr_parser.py +0 -0
  91. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/test_fileset.py +0 -0
  92. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/test_parse.py +0 -0
  93. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/test_pyclass.py +0 -0
  94. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/test_smoke copy.sav +0 -0
  95. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/tests/unit/test_smoke.py +0 -0
  96. {dv_flow_mgr-0.0.1.13525773676a1 → dv_flow_mgr-0.0.1.13551739897a1}/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.13525773676a1
3
+ Version: 0.0.1.13551739897a1
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.13525773676a1"
8
+ version = "0.0.1.13551739897a1"
9
9
  dependencies = [
10
10
  'pydantic',
11
11
  'pyyaml',
@@ -0,0 +1,15 @@
1
+
2
+ import jq
3
+
4
+ def eval_jq(input, args):
5
+ if len(args) != 1:
6
+ raise Exception("jq requires a single argument")
7
+
8
+ filt = jq.compile(args[0])
9
+
10
+ if type(input) == str:
11
+ ret = filt.input_text(input).all()
12
+ else:
13
+ ret = filt.input_value(input).all()
14
+
15
+ return ret
@@ -1,5 +1,6 @@
1
1
 
2
2
  import dataclasses as dc
3
+ import json
3
4
  from typing import Any, Callable, Dict, List
4
5
  from .expr_parser import ExprVisitor, Expr, ExprBin, ExprBinOp, ExprCall, ExprId, ExprString, ExprInt
5
6
 
@@ -18,15 +19,27 @@ class ExprEval(ExprVisitor):
18
19
  return val
19
20
 
20
21
  def _toString(self, val):
22
+ obj = self._toObject(val)
23
+ return json.dumps(obj)
24
+ # if isinstance(val, list):
25
+ # val = '[' + ",".join(self._toString(v) for v in val) + ']'
26
+ # elif hasattr(val, "model_dump_json"):
27
+ # val = val.model_dump_json()
28
+ # return val
29
+
30
+ def _toObject(self, val):
31
+ rval = val
21
32
  if isinstance(val, list):
22
- val = '[' + ",".join(self._toString(v) for v in val) + ']'
23
- elif hasattr(val, "model_dump_json"):
24
- val = val.model_dump_json()
25
- return val
33
+ rval = list(self._toObject(v) for v in val)
34
+ elif hasattr(val, "model_dump"):
35
+ rval = val.model_dump()
36
+
37
+ return rval
26
38
 
27
39
  def visitExprId(self, e : ExprId):
28
40
  if e.id in self.variables:
29
- self.value = self.variables[e.id]
41
+ # Always represent data as a JSON object
42
+ self.value = self._toObject(self.variables[e.id])
30
43
  else:
31
44
  raise Exception("Variable '%s' not found" % e.id)
32
45
 
@@ -2,6 +2,7 @@ import dataclasses as dc
2
2
  import json
3
3
  from .expr_eval import ExprEval
4
4
  from .expr_parser import ExprParser
5
+ from .eval_jq import eval_jq
5
6
 
6
7
  @dc.dataclass
7
8
  class ParamRefEval(object):
@@ -9,6 +10,9 @@ class ParamRefEval(object):
9
10
  parser : ExprParser = ExprParser()
10
11
  expr_eval : ExprEval = ExprEval()
11
12
 
13
+ def __post_init__(self):
14
+ self.expr_eval.methods["jq"] = eval_jq
15
+
12
16
  def eval(self, val : str) -> str:
13
17
  idx = 0
14
18
 
@@ -45,13 +45,15 @@ class TaskNode(object):
45
45
 
46
46
  eval.setVar("in", in_params)
47
47
 
48
+ # for attr in dir(self.params):
49
+ # if not attr.startswith("_"):
50
+ # print("Attr: %s" % attr)
48
51
  for name,field in self.params.model_fields.items():
49
52
  value = getattr(self.params, name)
53
+ print("Field: %s %s" % (name, str(value)))
50
54
  if value.find("${{") != -1:
51
55
  new_val = eval.eval(value)
52
56
  setattr(self.params, name, new_val)
53
- print("TODO: expand")
54
- print("Field: %s %s" % (name, str(value)))
55
57
  pass
56
58
 
57
59
  input = TaskDataInput(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: dv-flow-mgr
3
- Version: 0.0.1.13525773676a1
3
+ Version: 0.0.1.13551739897a1
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
@@ -22,6 +22,7 @@ docs/quickstart.rst
22
22
  docs/reference.rst
23
23
  src/dv_flow/mgr/__init__.py
24
24
  src/dv_flow/mgr/__main__.py
25
+ src/dv_flow/mgr/eval_jq.py
25
26
  src/dv_flow/mgr/expr_eval.py
26
27
  src/dv_flow/mgr/expr_parser.py
27
28
  src/dv_flow/mgr/fileset.py
@@ -130,7 +130,7 @@ def test_smoke_4(tmpdir):
130
130
  task1 = MyTask1("srcdir", p1="1")
131
131
  task2 = MyTask2("srcdir", p1="2")
132
132
  task3 = MyTask3("srcdir",
133
- p1="${{ in }}",
133
+ p1="${{ in | jq('.[] .val') }}",
134
134
  needs=[task1, task2])
135
135
  runner = TaskSetRunner("rundir")
136
136
 
@@ -138,4 +138,4 @@ def test_smoke_4(tmpdir):
138
138
 
139
139
  assert len(called) == 3
140
140
  assert called[-1][0] == "MyTask3"
141
- assert called[-1][1] == "3"
141
+ assert called[-1][1] == "[1, 2]"