@platforma-sdk/workflow-tengo 2.8.1 → 2.8.2
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 +76 -82
- package/dist/tengo/lib/constants.lib.tengo +28 -31
- package/dist/tengo/lib/exec.R.internal.lib.tengo +14 -14
- package/dist/tengo/lib/exec.R.lib.tengo +158 -167
- package/dist/tengo/lib/exec.internal.lib.tengo +222 -234
- package/dist/tengo/lib/exec.lib.tengo +647 -714
- package/dist/tengo/lib/exec.package.lib.tengo +229 -238
- package/dist/tengo/lib/exec.python.internal.lib.tengo +5 -6
- package/dist/tengo/lib/exec.python.lib.tengo +138 -146
- package/dist/tengo/lib/exec.runcmd.lib.tengo +234 -253
- package/dist/tengo/lib/exec.runenv.lib.tengo +88 -92
- package/dist/tengo/lib/exec.stream.lib.tengo +36 -40
- package/dist/tengo/lib/file.internal.lib.tengo +70 -77
- package/dist/tengo/lib/file.lib.tengo +54 -57
- package/dist/tengo/lib/ll.lib.tengo +217 -241
- package/dist/tengo/lib/maps.lib.tengo +98 -106
- package/dist/tengo/lib/objects.lib.tengo +11 -13
- package/dist/tengo/lib/oop.lib.tengo +16 -19
- package/dist/tengo/lib/path.lib.tengo +116 -125
- package/dist/tengo/lib/pframes.constants.lib.tengo +25 -28
- package/dist/tengo/lib/pframes.export-pcolumn.lib.tengo +28 -33
- package/dist/tengo/lib/pframes.lib.tengo +38 -43
- package/dist/tengo/lib/pframes.ll.lib.tengo +70 -73
- package/dist/tengo/lib/pframes.pcolumn.lib.tengo +45 -51
- package/dist/tengo/lib/pframes.spec.lib.tengo +70 -96
- package/dist/tengo/lib/pframes.util.lib.tengo +154 -289
- package/dist/tengo/lib/pframes.xsv.lib.tengo +260 -273
- package/dist/tengo/lib/render.lib.tengo +65 -76
- package/dist/tengo/lib/sets.lib.tengo +61 -68
- package/dist/tengo/lib/slices.lib.tengo +169 -180
- package/dist/tengo/lib/smart.lib.tengo +956 -1069
- package/dist/tengo/lib/test.lib.tengo +129 -161
- package/dist/tengo/lib/tpl.lib.tengo +448 -516
- package/dist/tengo/lib/tpl.state-await.lib.tengo +226 -241
- package/dist/tengo/lib/tpl.util.lib.tengo +4 -9
- package/dist/tengo/lib/validation.lib.tengo +334 -379
- package/dist/tengo/lib/workdir.lib.tengo +309 -332
- package/dist/tengo/lib/workdir.proc.lib.tengo +126 -144
- package/dist/tengo/lib/workdir.save.lib.tengo +113 -130
- package/dist/tengo/lib/workflow.bobject.lib.tengo +21 -26
- package/dist/tengo/lib/workflow.bquery.lib.tengo +140 -166
- package/dist/tengo/lib/workflow.constants.lib.tengo +1 -2
- package/dist/tengo/lib/workflow.context.lib.tengo +27 -32
- package/dist/tengo/lib/workflow.lib.tengo +167 -207
- 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 +5 -5
|
@@ -13,153 +13,145 @@ runenv := import("@platforma-sdk/workflow-tengo:exec.runenv")
|
|
|
13
13
|
_OUTPUT_RUN_ENV := "runEnv"
|
|
14
14
|
|
|
15
15
|
pythonVenvBuilder := func() {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
}
|
|
154
|
-
}))
|
|
155
|
-
|
|
156
|
-
return self
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
return self
|
|
16
|
+
self := undefined
|
|
17
|
+
|
|
18
|
+
toolset := "pip"
|
|
19
|
+
pythonDescriptor := undefined
|
|
20
|
+
softwareRef := undefined
|
|
21
|
+
dependencies := undefined
|
|
22
|
+
cache := 0
|
|
23
|
+
|
|
24
|
+
self = {
|
|
25
|
+
useToolset: func(name) {
|
|
26
|
+
validation.assertJsonSchema(name, "string",
|
|
27
|
+
"exec.python.useToolset: <name> must be valid name of python packaging toolset (pip, pipenv and so on)")
|
|
28
|
+
ll.assert(name != "", "exec.python.useToolset: toolset name must not be empty")
|
|
29
|
+
|
|
30
|
+
toolset = name
|
|
31
|
+
return self
|
|
32
|
+
},
|
|
33
|
+
|
|
34
|
+
runEnvDescriptor: func(descriptor) {
|
|
35
|
+
validation.assertJsonSchema(descriptor, pkg.runEnvDescriptorScheme, "exec.python.runEnvDescriptor: <descriptor> must be run environment specification")
|
|
36
|
+
ll.assert(descriptor.type == "python", "exec.python.runEnvDescriptor: not a 'python' run environment: %q", descriptor.type)
|
|
37
|
+
|
|
38
|
+
pythonDescriptor = ll.fromStrict(descriptor)
|
|
39
|
+
return self
|
|
40
|
+
},
|
|
41
|
+
|
|
42
|
+
software: func(pkgRef) {
|
|
43
|
+
validation.assertJsonSchema(pkgRef, validation.reference, "exec.python.software: <pkgRef> must be a reference to software package")
|
|
44
|
+
|
|
45
|
+
softwareRef = pkgRef
|
|
46
|
+
return self
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
dependencies: func(deps) {
|
|
50
|
+
validation.assertJsonSchema(deps, { "any": "string" }, "exec.python.dependencies: <deps> must be map of reference file paths")
|
|
51
|
+
|
|
52
|
+
dependencies = deps
|
|
53
|
+
return self
|
|
54
|
+
},
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
cacheMillis: func(millis) {
|
|
61
|
+
ll.assert(is_int(millis) && millis > 0, "exec.python.cacheMillis: cache time must be a number of milliseconds")
|
|
62
|
+
cache = millis * times.millisecond
|
|
63
|
+
return self
|
|
64
|
+
},
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
cacheSeconds: func(seconds) {
|
|
71
|
+
ll.assert(is_int(seconds) && seconds > 0, "exec.python.cacheSeconds: cache time must be a number of seconds")
|
|
72
|
+
cache = seconds * times.second
|
|
73
|
+
return self
|
|
74
|
+
},
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
cacheMinutes: func(minutes) {
|
|
81
|
+
ll.assert(is_int(minutes) && minutes > 0, "exec.python.cacheMinutes: cache time must be a number of minutes")
|
|
82
|
+
cache = minutes * times.minute
|
|
83
|
+
return self
|
|
84
|
+
},
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
cacheHours: func(hours) {
|
|
91
|
+
ll.assert(is_int(hours) && hours > 0, "exec.python.cacheHours: cache time must be a number of hours")
|
|
92
|
+
cache = hours * times.hour
|
|
93
|
+
return self
|
|
94
|
+
},
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
cacheDays: func(days) {
|
|
101
|
+
ll.assert(is_int(days) && days > 0, "exec.python.cacheDays: cache time must be a number of days")
|
|
102
|
+
cache = days * times.hour * 24
|
|
103
|
+
return self
|
|
104
|
+
},
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
cache: func(time) {
|
|
112
|
+
ll.assert(
|
|
113
|
+
is_int(time),
|
|
114
|
+
"exec.python.cache: cache time must be an integer. " +
|
|
115
|
+
"Did you forget to import a standard tengo library 'times'?")
|
|
116
|
+
cache = time
|
|
117
|
+
return self
|
|
118
|
+
},
|
|
119
|
+
|
|
120
|
+
build: func() {
|
|
121
|
+
depsMap := runenv.loadDependencyFiles(softwareRef, dependencies)
|
|
122
|
+
|
|
123
|
+
archive := pkg.get(pythonDescriptor.registry, pythonDescriptor.package).archive()
|
|
124
|
+
pythonPkg := pkg.install(archive).package()
|
|
125
|
+
|
|
126
|
+
pyVenvInputs := {
|
|
127
|
+
toolset: toolset,
|
|
128
|
+
dependencies: depsMap,
|
|
129
|
+
pythonDescriptor: pythonDescriptor,
|
|
130
|
+
python: pythonPkg
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
validation.assertJsonSchema(pyVenvInputs, internal.pythonVenvInputSchema, "incomplete python runenv configuration")
|
|
134
|
+
|
|
135
|
+
tpl := render.create(assets.importTemplate("@platforma-sdk/workflow-tengo:exec.python.create-venv"), pyVenvInputs)
|
|
136
|
+
|
|
137
|
+
self := undefined
|
|
138
|
+
self = ll.toStrict(oop.inherit(tpl, {
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
venv: func() {
|
|
144
|
+
return tpl.output(_OUTPUT_RUN_ENV, cache)
|
|
145
|
+
}
|
|
146
|
+
}))
|
|
147
|
+
|
|
148
|
+
return self
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
return self
|
|
161
153
|
}
|
|
162
154
|
|
|
163
155
|
export ll.toStrict({
|
|
164
|
-
|
|
156
|
+
venvBuilder : pythonVenvBuilder
|
|
165
157
|
})
|