dv-flow-mgr 0.0.1.13525773676a1__py3-none-any.whl → 0.0.1.13551739897a1__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/eval_jq.py ADDED
@@ -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
dv_flow/mgr/expr_eval.py CHANGED
@@ -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
 
dv_flow/mgr/task_node.py CHANGED
@@ -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
@@ -1,6 +1,7 @@
1
1
  dv_flow/mgr/__init__.py,sha256=IZA7I1u7RH34DrJXSkETxWFpK5Jn_A2zXfnCAzJ8XxA,289
2
2
  dv_flow/mgr/__main__.py,sha256=uik6gDAvtZNG0yyDKYc4FTl6R1QHAR543jNG2lCAa6E,1771
3
- dv_flow/mgr/expr_eval.py,sha256=M8qTIEnnbff8BCbxvNIztYyG-BJGSe_cLexfqYr3E0w,1807
3
+ dv_flow/mgr/eval_jq.py,sha256=S3WIfBNWE4uoJb7agJ-lm0v1mwYQ7VkdLcyDEC1VRtw,291
4
+ dv_flow/mgr/expr_eval.py,sha256=nd4MUBQ_NyvBM4E3e8TKWPVhLseYmBDbvFDt1s_qQJ8,2200
4
5
  dv_flow/mgr/expr_parser.py,sha256=aR8n6hgk5xmFknIaSVC02K-So-eU4pkkFtwb7zWsSPs,5474
5
6
  dv_flow/mgr/fileset.py,sha256=FNvC5sU2ArxJ0OO3v8dXTv8zX-bZ5t0a0ljne0fQQ1o,1150
6
7
  dv_flow/mgr/fragment_def.py,sha256=cyzp1XeWtNOaagScmeS-BPsoXj9j2LTBbKq5ZUioz8I,1641
@@ -9,7 +10,7 @@ dv_flow/mgr/package.py,sha256=878twhPD-E1pFlDNUtuyeFEgJ_Y89b560og4St-Iwrs,1679
9
10
  dv_flow/mgr/package_def.py,sha256=dwvs-7kGEp7wFrBK2Fybysb-vSKwtWOtxTrg1VIaL14,14975
10
11
  dv_flow/mgr/package_import_spec.py,sha256=ah3r15v5Jdub2poc3sgi6Uar1L3oGoYsCPPNiOHV-a4,1760
11
12
  dv_flow/mgr/param_def.py,sha256=e2WvRCMArbgcsKC4TKQqZTscZmCdo3WvVR6w3LN0VK8,727
12
- dv_flow/mgr/param_ref_eval.py,sha256=MLJNUgvvgxEPzr16vLPUvGwn9lHkKohr7xVAaZhU7Yk,1129
13
+ dv_flow/mgr/param_ref_eval.py,sha256=oc4Eg0v3zp-hvDjE5JofPczUFY5bYGXkwiWFvkAvKOA,1235
13
14
  dv_flow/mgr/parsetab.py,sha256=enSOnMQ-woIsMEzHyeYiefvhAl8enxfX9Ct_o8-jkqs,3780
14
15
  dv_flow/mgr/pkg_rgy.py,sha256=2R_EaeBDJn5qUq9DzSnLc37wUP36MWSv-p0LgUjJRAg,4471
15
16
  dv_flow/mgr/task.py,sha256=kLQSvnVwj9ROIDtxq8lLu-4mJizTxOqvUeogmgN6QAA,5976
@@ -22,7 +23,7 @@ dv_flow/mgr/task_graph_runner.py,sha256=jUGI49QvxUCfQoKQDDk2psbeapIcCg72qNOW1Jip
22
23
  dv_flow/mgr/task_graph_runner_local.py,sha256=OrydPwtQ8E7hYWvSXx0h7lI3nfUNFyklULhsyMwz9dA,4687
23
24
  dv_flow/mgr/task_impl_data.py,sha256=bFPijoKrh9x7fZN2DsvRJp0UHo-gGM0VjtDQISyfhFk,321
24
25
  dv_flow/mgr/task_memento.py,sha256=C7VTQpBhDEoYuDmE6YTM-6TLMLnqHp6Y0Vat1aTgtCs,1096
25
- dv_flow/mgr/task_node.py,sha256=CTMfBzKR_kSs10sLxA0NC9HihqsOTHJ49k5oPfcZyNU,4192
26
+ dv_flow/mgr/task_node.py,sha256=UD3p8tpluQM1k57VeJblp_0S_4-ncPdRiNKxTwkp-7E,4277
26
27
  dv_flow/mgr/task_output.py,sha256=l-W-FvVo6YDah1RQS-I9N0KUtB3vp-kl7lxIdmNz0l4,178
27
28
  dv_flow/mgr/task_params_ctor.py,sha256=aXgB8o9xFPjaEjGW_xYkEC0N0apzGzGUPDj7g2ZLvus,1112
28
29
  dv_flow/mgr/task_runner.py,sha256=JmerE6CyXiJJK7-n6P65OzwW9UTYFQqV8Cck7eHe0B8,3882
@@ -35,9 +36,9 @@ dv_flow/mgr/std/fileset.py,sha256=uP7bGntRq-Tn5_GEFnt0_J_OAmfvep3GlCwCuE8by4o,27
35
36
  dv_flow/mgr/std/flow.dv,sha256=j9wLrF3Ghh1ZLbJxmk7WiNiRYUYEer-8CCUA5hsgtfk,1409
36
37
  dv_flow/mgr/std/message.py,sha256=BPTHnEMD4tBufQ9LvsS9Sa_0xjaJATbBpwqosWslvVA,193
37
38
  dv_flow/mgr/std/task_null.py,sha256=KObmjG_4D08GJ1k6neqKIQrFY72Sj0jLnwXxEkq5HA0,321
38
- dv_flow_mgr-0.0.1.13525773676a1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
39
- dv_flow_mgr-0.0.1.13525773676a1.dist-info/METADATA,sha256=Bg3ASctj2O6u1eTnAZ9_FKztQjpslQZC0fr7SCSqg6c,13276
40
- dv_flow_mgr-0.0.1.13525773676a1.dist-info/WHEEL,sha256=nn6H5-ilmfVryoAQl3ZQ2l8SH5imPWFpm1A5FgEuFV4,91
41
- dv_flow_mgr-0.0.1.13525773676a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
42
- dv_flow_mgr-0.0.1.13525773676a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
43
- dv_flow_mgr-0.0.1.13525773676a1.dist-info/RECORD,,
39
+ dv_flow_mgr-0.0.1.13551739897a1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
40
+ dv_flow_mgr-0.0.1.13551739897a1.dist-info/METADATA,sha256=VtNYWj6_n4aAJfxdzGybKBE-WZlCuoPWNA8X3FXzRTM,13276
41
+ dv_flow_mgr-0.0.1.13551739897a1.dist-info/WHEEL,sha256=nn6H5-ilmfVryoAQl3ZQ2l8SH5imPWFpm1A5FgEuFV4,91
42
+ dv_flow_mgr-0.0.1.13551739897a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
43
+ dv_flow_mgr-0.0.1.13551739897a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
44
+ dv_flow_mgr-0.0.1.13551739897a1.dist-info/RECORD,,