@platforma-sdk/workflow-tengo 2.8.4 → 2.8.5
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.
- package/dist/tengo/lib/assets.lib.tengo +6 -0
- package/dist/tengo/lib/constants.lib.tengo +3 -0
- package/dist/tengo/lib/exec.R.lib.tengo +8 -0
- package/dist/tengo/lib/exec.internal.lib.tengo +12 -0
- package/dist/tengo/lib/exec.lib.tengo +67 -0
- package/dist/tengo/lib/exec.package.lib.tengo +9 -0
- package/dist/tengo/lib/exec.python.internal.lib.tengo +1 -0
- package/dist/tengo/lib/exec.python.lib.tengo +8 -0
- package/dist/tengo/lib/exec.runcmd.lib.tengo +19 -0
- package/dist/tengo/lib/exec.runenv.lib.tengo +4 -0
- package/dist/tengo/lib/exec.stream.lib.tengo +4 -0
- package/dist/tengo/lib/file.internal.lib.tengo +7 -0
- package/dist/tengo/lib/file.lib.tengo +3 -0
- package/dist/tengo/lib/ll.lib.tengo +24 -0
- package/dist/tengo/lib/maps.lib.tengo +8 -0
- package/dist/tengo/lib/objects.lib.tengo +2 -0
- package/dist/tengo/lib/oop.lib.tengo +3 -0
- package/dist/tengo/lib/path.lib.tengo +9 -0
- package/dist/tengo/lib/pframes.constants.lib.tengo +3 -0
- package/dist/tengo/lib/pframes.export-pcolumn.lib.tengo +5 -0
- package/dist/tengo/lib/pframes.lib.tengo +5 -0
- package/dist/tengo/lib/pframes.ll.lib.tengo +2 -0
- package/dist/tengo/lib/pframes.pcolumn.lib.tengo +4 -0
- package/dist/tengo/lib/pframes.spec.lib.tengo +26 -0
- package/dist/tengo/lib/pframes.util.lib.tengo +134 -0
- package/dist/tengo/lib/pframes.xsv.lib.tengo +12 -0
- package/dist/tengo/lib/render.lib.tengo +10 -0
- package/dist/tengo/lib/sets.lib.tengo +7 -0
- package/dist/tengo/lib/slices.lib.tengo +11 -0
- package/dist/tengo/lib/smart.lib.tengo +113 -0
- package/dist/tengo/lib/test.lib.tengo +32 -0
- package/dist/tengo/lib/tpl.lib.tengo +68 -0
- package/dist/tengo/lib/tpl.state-await.lib.tengo +14 -0
- package/dist/tengo/lib/tpl.util.lib.tengo +5 -0
- package/dist/tengo/lib/validation.lib.tengo +44 -0
- package/dist/tengo/lib/workdir.lib.tengo +22 -0
- package/dist/tengo/lib/workdir.proc.lib.tengo +18 -0
- package/dist/tengo/lib/workdir.save.lib.tengo +17 -0
- package/dist/tengo/lib/workflow.bobject.lib.tengo +5 -0
- package/dist/tengo/lib/workflow.bquery.lib.tengo +25 -0
- package/dist/tengo/lib/workflow.constants.lib.tengo +1 -0
- package/dist/tengo/lib/workflow.context.lib.tengo +5 -0
- package/dist/tengo/lib/workflow.lib.tengo +39 -0
- package/dist/tengo/tpl/exec.R.create-renv.plj.gz +0 -0
- package/dist/tengo/tpl/exec.exec.plj.gz +0 -0
- package/dist/tengo/tpl/exec.python.create-venv.plj.gz +0 -0
- package/dist/tengo/tpl/exec.python.install-deps.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.aggregate.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.export-multiple-pcolumns.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.export-pframe.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.export-single-pcolumn.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.import-dir.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.map-pframe.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.xsv-export-pframe.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.xsv-import-map.plj.gz +0 -0
- package/dist/tengo/tpl/workdir.save.plj.gz +0 -0
- package/dist/tengo/tpl/workflow.build-ctx.plj.gz +0 -0
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
|
|
2
|
+
|
|
2
3
|
ll := import("@platforma-sdk/workflow-tengo:ll")
|
|
3
4
|
smart := import("@platforma-sdk/workflow-tengo:smart")
|
|
4
5
|
constants := import("@platforma-sdk/workflow-tengo:constants")
|
|
@@ -13,12 +14,15 @@ _EXPORTS_OUTPUT_PREFIX := "values/"
|
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
|
|
17
|
+
|
|
16
18
|
builder := func(block, parentContext) {
|
|
17
19
|
|
|
18
20
|
super := smart.ephemeralBuilder(constants.RTYPE_CONTEXT)
|
|
19
21
|
|
|
22
|
+
|
|
20
23
|
super.createInputField(_BLOCK_ID_FIELD).setRefOrJson(block)
|
|
21
24
|
|
|
25
|
+
|
|
22
26
|
super.createInputField(_PARENT_CTX_FIELD).set(parentContext)
|
|
23
27
|
|
|
24
28
|
self := undefined
|
|
@@ -30,6 +34,7 @@ self = ll.toStrict(oop.inherit(super, {
|
|
|
30
34
|
|
|
31
35
|
|
|
32
36
|
|
|
37
|
+
|
|
33
38
|
add: func(name, value) {
|
|
34
39
|
field := super.createInputField(_EXPORTS_OUTPUT_PREFIX + name)
|
|
35
40
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
|
|
4
5
|
tx := import("tx")
|
|
5
6
|
ll := import("@platforma-sdk/workflow-tengo:ll")
|
|
6
7
|
assets := import("@platforma-sdk/workflow-tengo:assets")
|
|
@@ -16,20 +17,30 @@ bobject := import("@platforma-sdk/workflow-tengo:workflow.bobject")
|
|
|
16
17
|
bquery := import("@platforma-sdk/workflow-tengo:workflow.bquery")
|
|
17
18
|
|
|
18
19
|
|
|
20
|
+
|
|
19
21
|
self := import("@platforma-sdk/workflow-tengo:tpl")
|
|
20
22
|
|
|
23
|
+
|
|
21
24
|
_RESULTS_FIELD_NAME := "result"
|
|
22
25
|
|
|
26
|
+
|
|
23
27
|
_INPUT_CONTEXT_FIELD_NAME := "context"
|
|
24
28
|
|
|
29
|
+
|
|
25
30
|
_OUTPUT_CONTEXT_FIELD_NAME := "context"
|
|
26
31
|
|
|
32
|
+
|
|
33
|
+
|
|
27
34
|
_PREPARED_INPUTS_PREFIX := "prepared/"
|
|
28
35
|
|
|
29
36
|
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
30
40
|
self.defineOutputs([_RESULTS_FIELD_NAME, _OUTPUT_CONTEXT_FIELD_NAME])
|
|
31
41
|
|
|
32
42
|
_isProduction := func() {
|
|
43
|
+
|
|
33
44
|
return self.rawInputs().isProduction.getValueAsJson() == true
|
|
34
45
|
}
|
|
35
46
|
|
|
@@ -38,20 +49,27 @@ return !_isProduction()
|
|
|
38
49
|
}
|
|
39
50
|
|
|
40
51
|
|
|
52
|
+
|
|
53
|
+
|
|
41
54
|
_args := undefined
|
|
42
55
|
|
|
43
56
|
|
|
44
57
|
|
|
58
|
+
|
|
45
59
|
args := func() {
|
|
46
60
|
if is_undefined(_args) {
|
|
61
|
+
|
|
47
62
|
inputs := self.inputs()
|
|
48
63
|
|
|
64
|
+
|
|
49
65
|
_args = inputs.args
|
|
50
66
|
if is_undefined(_args) || smart.isReference(_args) {
|
|
51
67
|
ll.panic("Unexpected args type: %v", _args)
|
|
52
68
|
}
|
|
53
69
|
|
|
70
|
+
|
|
54
71
|
for k, v in inputs {
|
|
72
|
+
|
|
55
73
|
if text.has_prefix(k, _PREPARED_INPUTS_PREFIX) {
|
|
56
74
|
|
|
57
75
|
name := text.trim_prefix(k, _PREPARED_INPUTS_PREFIX)
|
|
@@ -69,6 +87,7 @@ _blockId := undefined
|
|
|
69
87
|
|
|
70
88
|
|
|
71
89
|
|
|
90
|
+
|
|
72
91
|
blockId := func() {
|
|
73
92
|
if _blockId == undefined {
|
|
74
93
|
_blockId = self.inputs().blockId
|
|
@@ -82,6 +101,7 @@ __parentContext := undefined
|
|
|
82
101
|
|
|
83
102
|
|
|
84
103
|
|
|
104
|
+
|
|
85
105
|
_parentContext := func() {
|
|
86
106
|
if __parentContext == undefined {
|
|
87
107
|
__parentContext = self.inputs()[_INPUT_CONTEXT_FIELD_NAME]
|
|
@@ -94,6 +114,7 @@ return __parentContext
|
|
|
94
114
|
|
|
95
115
|
|
|
96
116
|
|
|
117
|
+
|
|
97
118
|
_buildOutputs := func(results) {
|
|
98
119
|
ll.assert(ll.isMap(results), "expected to see map result from body function")
|
|
99
120
|
ll.assert(
|
|
@@ -107,24 +128,30 @@ ll.assert(!is_undefined(results.exports), "exports are not defined in the result
|
|
|
107
128
|
ll.assert(ll.isMap(results.outputs), "expected a map in outputs returned from workflow.body")
|
|
108
129
|
ll.assert(ll.isMap(results.exports), "expected a map in exports returned from workflow.body")
|
|
109
130
|
|
|
131
|
+
|
|
110
132
|
o := results.outputs
|
|
133
|
+
|
|
111
134
|
e := results.exports
|
|
112
135
|
|
|
136
|
+
|
|
113
137
|
resBuilder := smart.mapBuilder()
|
|
114
138
|
for name, value in o {
|
|
115
139
|
ll.assert(!is_undefined(value), "value is undefined for output ", name)
|
|
116
140
|
resBuilder.add(name, value)
|
|
117
141
|
}
|
|
118
142
|
|
|
143
|
+
|
|
119
144
|
eData := {}
|
|
120
145
|
eData[constants.NO_PREFIX_EXPORT] = {}
|
|
121
146
|
|
|
122
147
|
for name, value in e {
|
|
148
|
+
|
|
123
149
|
if smart.isReference(value) {
|
|
124
150
|
eData[name] = value
|
|
125
151
|
continue
|
|
126
152
|
}
|
|
127
153
|
|
|
154
|
+
|
|
128
155
|
ll.assert(
|
|
129
156
|
sets.fromSlice(["spec", "data"]) == sets.fromMapKeys(value),
|
|
130
157
|
"expected spec and data export structure"
|
|
@@ -140,6 +167,7 @@ eData[constants.NO_PREFIX_EXPORT][name + ".spec"] = spec
|
|
|
140
167
|
eData[constants.NO_PREFIX_EXPORT][name + ".data"] = value.data
|
|
141
168
|
}
|
|
142
169
|
|
|
170
|
+
|
|
143
171
|
ctxBuilder := render.createEphemeral(
|
|
144
172
|
assets.importTemplate("@platforma-sdk/workflow-tengo:workflow.build-ctx"),
|
|
145
173
|
{
|
|
@@ -149,6 +177,7 @@ data: eData
|
|
|
149
177
|
}
|
|
150
178
|
)
|
|
151
179
|
|
|
180
|
+
|
|
152
181
|
tplOutputs := {}
|
|
153
182
|
tplOutputs[_RESULTS_FIELD_NAME] = resBuilder.build()
|
|
154
183
|
tplOutputs[_OUTPUT_CONTEXT_FIELD_NAME] = ctxBuilder.output("ctx")
|
|
@@ -161,6 +190,7 @@ return tplOutputs
|
|
|
161
190
|
|
|
162
191
|
|
|
163
192
|
|
|
193
|
+
|
|
164
194
|
query := func(spec, ...options) {
|
|
165
195
|
return bquery.create(spec, _parentContext(), options...)
|
|
166
196
|
}
|
|
@@ -170,6 +200,7 @@ return bquery.create(spec, _parentContext(), options...)
|
|
|
170
200
|
|
|
171
201
|
|
|
172
202
|
|
|
203
|
+
|
|
173
204
|
resolve := func(ref, ...options) {
|
|
174
205
|
r := bquery.resolve(ref, _parentContext(), options...)
|
|
175
206
|
|
|
@@ -180,6 +211,7 @@ data: r.getFutureInputField("data")
|
|
|
180
211
|
}
|
|
181
212
|
|
|
182
213
|
|
|
214
|
+
|
|
183
215
|
_preRunTpl := undefined
|
|
184
216
|
|
|
185
217
|
|
|
@@ -187,10 +219,12 @@ _preRunTpl := undefined
|
|
|
187
219
|
|
|
188
220
|
|
|
189
221
|
|
|
222
|
+
|
|
190
223
|
prepare := func(cb) {
|
|
191
224
|
self.prepare(func(_){
|
|
192
225
|
raw := cb(args())
|
|
193
226
|
prefixed := {}
|
|
227
|
+
|
|
194
228
|
for k, v in raw {
|
|
195
229
|
prefixed[_PREPARED_INPUTS_PREFIX + k] = v
|
|
196
230
|
}
|
|
@@ -200,6 +234,7 @@ return prefixed
|
|
|
200
234
|
|
|
201
235
|
|
|
202
236
|
|
|
237
|
+
|
|
203
238
|
setPreRun := func(tplId) {
|
|
204
239
|
ll.assert(is_undefined(_preRunTpl), "pre run template is already set")
|
|
205
240
|
|
|
@@ -209,6 +244,7 @@ _preRunTpl = tplId
|
|
|
209
244
|
|
|
210
245
|
|
|
211
246
|
|
|
247
|
+
|
|
212
248
|
validateArgs := func(argsSchema) {
|
|
213
249
|
self.validateInputs({
|
|
214
250
|
args: argsSchema
|
|
@@ -217,6 +253,7 @@ args: argsSchema
|
|
|
217
253
|
|
|
218
254
|
|
|
219
255
|
|
|
256
|
+
|
|
220
257
|
body := func(bodyFn) {
|
|
221
258
|
|
|
222
259
|
if _isProduction() {
|
|
@@ -232,11 +269,13 @@ return _buildOutputs(result)
|
|
|
232
269
|
} else if !is_undefined(_preRunTpl) {
|
|
233
270
|
|
|
234
271
|
|
|
272
|
+
|
|
235
273
|
self.delegate(_preRunTpl, { isProduction: true }, [_RESULTS_FIELD_NAME, _OUTPUT_CONTEXT_FIELD_NAME])
|
|
236
274
|
|
|
237
275
|
} else {
|
|
238
276
|
|
|
239
277
|
|
|
278
|
+
|
|
240
279
|
self.body(func(_) {
|
|
241
280
|
return _buildOutputs({
|
|
242
281
|
outputs: {},
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|