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 +15 -0
- dv_flow/mgr/expr_eval.py +18 -5
- dv_flow/mgr/param_ref_eval.py +4 -0
- dv_flow/mgr/task_node.py +4 -2
- {dv_flow_mgr-0.0.1.13525773676a1.dist-info → dv_flow_mgr-0.0.1.13551739897a1.dist-info}/METADATA +1 -1
- {dv_flow_mgr-0.0.1.13525773676a1.dist-info → dv_flow_mgr-0.0.1.13551739897a1.dist-info}/RECORD +10 -9
- {dv_flow_mgr-0.0.1.13525773676a1.dist-info → dv_flow_mgr-0.0.1.13551739897a1.dist-info}/LICENSE +0 -0
- {dv_flow_mgr-0.0.1.13525773676a1.dist-info → dv_flow_mgr-0.0.1.13551739897a1.dist-info}/WHEEL +0 -0
- {dv_flow_mgr-0.0.1.13525773676a1.dist-info → dv_flow_mgr-0.0.1.13551739897a1.dist-info}/entry_points.txt +0 -0
- {dv_flow_mgr-0.0.1.13525773676a1.dist-info → dv_flow_mgr-0.0.1.13551739897a1.dist-info}/top_level.txt +0 -0
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
|
-
|
23
|
-
elif hasattr(val, "
|
24
|
-
|
25
|
-
|
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
|
-
|
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
|
|
dv_flow/mgr/param_ref_eval.py
CHANGED
@@ -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(
|
{dv_flow_mgr-0.0.1.13525773676a1.dist-info → dv_flow_mgr-0.0.1.13551739897a1.dist-info}/RECORD
RENAMED
@@ -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/
|
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=
|
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=
|
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.
|
39
|
-
dv_flow_mgr-0.0.1.
|
40
|
-
dv_flow_mgr-0.0.1.
|
41
|
-
dv_flow_mgr-0.0.1.
|
42
|
-
dv_flow_mgr-0.0.1.
|
43
|
-
dv_flow_mgr-0.0.1.
|
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,,
|
{dv_flow_mgr-0.0.1.13525773676a1.dist-info → dv_flow_mgr-0.0.1.13551739897a1.dist-info}/LICENSE
RENAMED
File without changes
|
{dv_flow_mgr-0.0.1.13525773676a1.dist-info → dv_flow_mgr-0.0.1.13551739897a1.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|