@platforma-sdk/workflow-tengo 2.9.6 → 2.9.8
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 +52 -52
- package/dist/tengo/lib/assets.swinfo.lib.tengo +45 -45
- package/dist/tengo/lib/constants.lib.tengo +32 -32
- package/dist/tengo/lib/exec.R.internal.lib.tengo +29 -29
- package/dist/tengo/lib/exec.R.lib.tengo +166 -166
- package/dist/tengo/lib/exec.constants.lib.tengo +4 -4
- package/dist/tengo/lib/exec.descriptor.lib.tengo +31 -31
- package/dist/tengo/lib/exec.internal.lib.tengo +297 -297
- package/dist/tengo/lib/exec.lib.tengo +815 -815
- package/dist/tengo/lib/exec.monetization.lib.tengo +130 -130
- package/dist/tengo/lib/exec.package.lib.tengo +212 -212
- package/dist/tengo/lib/exec.python.internal.lib.tengo +6 -6
- package/dist/tengo/lib/exec.python.lib.tengo +146 -146
- package/dist/tengo/lib/exec.runcmd.lib.tengo +371 -371
- package/dist/tengo/lib/exec.runenv.lib.tengo +92 -92
- package/dist/tengo/lib/exec.stream.lib.tengo +40 -40
- package/dist/tengo/lib/file.internal.lib.tengo +77 -77
- package/dist/tengo/lib/file.lib.tengo +57 -57
- package/dist/tengo/lib/ll.lib.tengo +244 -244
- package/dist/tengo/lib/maps.lib.tengo +152 -152
- package/dist/tengo/lib/objects.lib.tengo +13 -13
- package/dist/tengo/lib/oop.lib.tengo +19 -19
- package/dist/tengo/lib/path.lib.tengo +125 -125
- package/dist/tengo/lib/pframes.constants.lib.tengo +28 -28
- package/dist/tengo/lib/pframes.export-pcolumn.lib.tengo +33 -33
- package/dist/tengo/lib/pframes.lib.tengo +43 -43
- package/dist/tengo/lib/pframes.ll.lib.tengo +72 -72
- package/dist/tengo/lib/pframes.pcolumn.lib.tengo +49 -49
- package/dist/tengo/lib/pframes.spec.lib.tengo +96 -96
- package/dist/tengo/lib/pframes.util.lib.tengo +288 -288
- package/dist/tengo/lib/pframes.xsv.lib.tengo +272 -272
- package/dist/tengo/lib/render.lib.tengo +75 -75
- package/dist/tengo/lib/sets.lib.tengo +68 -68
- package/dist/tengo/lib/slices.lib.tengo +258 -155
- package/dist/tengo/lib/smart.lib.tengo +1069 -1069
- package/dist/tengo/lib/test.lib.tengo +161 -161
- package/dist/tengo/lib/tpl.lib.tengo +515 -515
- package/dist/tengo/lib/tpl.state-await.lib.tengo +240 -240
- package/dist/tengo/lib/tpl.util.lib.tengo +9 -9
- package/dist/tengo/lib/validation.lib.tengo +378 -378
- package/dist/tengo/lib/workdir.lib.tengo +331 -331
- package/dist/tengo/lib/workdir.proc.lib.tengo +144 -144
- package/dist/tengo/lib/workdir.save.lib.tengo +130 -130
- package/dist/tengo/lib/workflow.bobject.lib.tengo +26 -26
- package/dist/tengo/lib/workflow.bquery.lib.tengo +165 -165
- package/dist/tengo/lib/workflow.constants.lib.tengo +2 -2
- package/dist/tengo/lib/workflow.context.lib.tengo +32 -32
- package/dist/tengo/lib/workflow.lib.tengo +206 -206
- 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.monetization_to_json.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 +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* A library for working with platforma packages
|
|
3
|
+
*/
|
|
4
4
|
|
|
5
5
|
ll := import("@platforma-sdk/workflow-tengo:ll")
|
|
6
6
|
smart := import("@platforma-sdk/workflow-tengo:smart")
|
|
@@ -12,9 +12,9 @@ json := import("json")
|
|
|
12
12
|
desc := import("@platforma-sdk/workflow-tengo:exec.descriptor")
|
|
13
13
|
|
|
14
14
|
softwareInfoScheme := {
|
|
15
|
-
"name": "string",
|
|
16
|
-
"version": "string",
|
|
17
|
-
"descriptor": desc.scheme
|
|
15
|
+
"name": "string",
|
|
16
|
+
"version": "string",
|
|
17
|
+
"descriptor": desc.scheme
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
META_KEY_DESCRIPTOR := "ctl/runner/package/descriptor"
|
|
@@ -25,24 +25,24 @@ _INPUT_REGISTRY := "registry"
|
|
|
25
25
|
_OUTPUT_ARCHIVE := "archive"
|
|
26
26
|
|
|
27
27
|
get := func(registryName, pkgName) {
|
|
28
|
-
res := smart.structBuilder(_RTYPE_PACKAGE_GET)
|
|
29
|
-
|
|
30
|
-
res.getField(_INPUT_REGISTRY).setRefOrJson(registryName)
|
|
31
|
-
res.getField(_INPUT_PACKAGE_NAME).setRefOrJson(pkgName)
|
|
32
|
-
|
|
33
|
-
self := undefined
|
|
34
|
-
self = oop.inherit(res, {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
archive: func() {
|
|
41
|
-
return res.outputs()[_OUTPUT_ARCHIVE]
|
|
42
|
-
}
|
|
43
|
-
})
|
|
44
|
-
|
|
45
|
-
return self
|
|
28
|
+
res := smart.structBuilder(_RTYPE_PACKAGE_GET)
|
|
29
|
+
|
|
30
|
+
res.getField(_INPUT_REGISTRY).setRefOrJson(registryName)
|
|
31
|
+
res.getField(_INPUT_PACKAGE_NAME).setRefOrJson(pkgName)
|
|
32
|
+
|
|
33
|
+
self := undefined
|
|
34
|
+
self = oop.inherit(res, {
|
|
35
|
+
/**
|
|
36
|
+
* Reference to the software package archive downloaded by 'get'
|
|
37
|
+
*
|
|
38
|
+
* @return archive: field - output field, where info on downloaded archive will appear
|
|
39
|
+
*/
|
|
40
|
+
archive: func() {
|
|
41
|
+
return res.outputs()[_OUTPUT_ARCHIVE]
|
|
42
|
+
}
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
return self
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
_RTYPE_PACKAGE_INSTALL := { Name: "PackageInstall", Version: "1" }
|
|
@@ -50,63 +50,63 @@ _INPUT_ARCHIVE := "archive"
|
|
|
50
50
|
_OUTPUT_PACKAGE := "package"
|
|
51
51
|
|
|
52
52
|
install := func(archive) {
|
|
53
|
-
ll.assert(smart.isReference(archive),
|
|
54
|
-
"package.install: <archive> must be reference to package archive. It is usually obtained from package.get().archive")
|
|
55
|
-
|
|
56
|
-
res := smart.structBuilder(_RTYPE_PACKAGE_INSTALL)
|
|
57
|
-
|
|
58
|
-
res.getField(_INPUT_ARCHIVE).set(archive)
|
|
59
|
-
|
|
60
|
-
self := undefined
|
|
61
|
-
self = oop.inherit(res, {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
package: func() {
|
|
68
|
-
return res.getField(_OUTPUT_PACKAGE)
|
|
69
|
-
}
|
|
70
|
-
})
|
|
71
|
-
|
|
72
|
-
return self
|
|
53
|
+
ll.assert(smart.isReference(archive),
|
|
54
|
+
"package.install: <archive> must be reference to package archive. It is usually obtained from package.get().archive")
|
|
55
|
+
|
|
56
|
+
res := smart.structBuilder(_RTYPE_PACKAGE_INSTALL)
|
|
57
|
+
|
|
58
|
+
res.getField(_INPUT_ARCHIVE).set(archive)
|
|
59
|
+
|
|
60
|
+
self := undefined
|
|
61
|
+
self = oop.inherit(res, {
|
|
62
|
+
/**
|
|
63
|
+
* Reference to installed package
|
|
64
|
+
*
|
|
65
|
+
* @return package: smart.field - output field, where installed package will appear
|
|
66
|
+
*/
|
|
67
|
+
package: func() {
|
|
68
|
+
return res.getField(_OUTPUT_PACKAGE)
|
|
69
|
+
}
|
|
70
|
+
})
|
|
71
|
+
|
|
72
|
+
return self
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
_RTYPE_PACKAGE_USE := { Name: "PackageUse", Version: "1" }
|
|
76
76
|
_INPUT_PACKAGE_USE_SETTINGS := "settings"
|
|
77
77
|
|
|
78
78
|
_useSettingsSchema := {
|
|
79
|
-
hash: ["or", "bytes", "string"],
|
|
80
|
-
path: "string",
|
|
81
|
-
descriptor: "any",
|
|
82
|
-
origin: {
|
|
83
|
-
registry: "string",
|
|
84
|
-
url: "string",
|
|
85
|
-
packageName: "string"
|
|
86
|
-
}
|
|
79
|
+
hash: ["or", "bytes", "string"],
|
|
80
|
+
path: "string",
|
|
81
|
+
descriptor: "any",
|
|
82
|
+
origin: {
|
|
83
|
+
registry: "string",
|
|
84
|
+
url: "string",
|
|
85
|
+
packageName: "string"
|
|
86
|
+
}
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
use := func(settings) {
|
|
90
|
-
res := smart.structBuilder(_RTYPE_PACKAGE_USE)
|
|
91
|
-
|
|
92
|
-
validation.assertJsonSchema(settings, _useSettingsSchema, "package.use(<settings>): settings have invalid format")
|
|
93
|
-
settingsRes := smart.createJsonResource(settings)
|
|
94
|
-
|
|
95
|
-
res.getField(_INPUT_PACKAGE_USE_SETTINGS).set(settingsRes)
|
|
96
|
-
|
|
97
|
-
self := undefined
|
|
98
|
-
self = oop.inherit(res, {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
package: func() {
|
|
105
|
-
return res.outputs()[_OUTPUT_PACKAGE]
|
|
106
|
-
}
|
|
107
|
-
})
|
|
108
|
-
|
|
109
|
-
return self
|
|
90
|
+
res := smart.structBuilder(_RTYPE_PACKAGE_USE)
|
|
91
|
+
|
|
92
|
+
validation.assertJsonSchema(settings, _useSettingsSchema, "package.use(<settings>): settings have invalid format")
|
|
93
|
+
settingsRes := smart.createJsonResource(settings)
|
|
94
|
+
|
|
95
|
+
res.getField(_INPUT_PACKAGE_USE_SETTINGS).set(settingsRes)
|
|
96
|
+
|
|
97
|
+
self := undefined
|
|
98
|
+
self = oop.inherit(res, {
|
|
99
|
+
/**
|
|
100
|
+
* Reference to installed package
|
|
101
|
+
*
|
|
102
|
+
* @return package: field - output field, where installed package will appear
|
|
103
|
+
*/
|
|
104
|
+
package: func() {
|
|
105
|
+
return res.outputs()[_OUTPUT_PACKAGE]
|
|
106
|
+
}
|
|
107
|
+
})
|
|
108
|
+
|
|
109
|
+
return self
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
_RTYPE_PACKAGE_PUT_ASSET := { Name: "PackagePutAssetsToWD", Version: "1" }
|
|
@@ -114,157 +114,157 @@ _INPUT_PACKAGE := "package"
|
|
|
114
114
|
_INPUT_WD_IN := "workdirIn"
|
|
115
115
|
_OUTPUT_WD_OUT := "workdirOut"
|
|
116
116
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
117
|
+
/**
|
|
118
|
+
* Load static files from software package into working directory or value resources.
|
|
119
|
+
*
|
|
120
|
+
* @param pkg: package - installed package (usually from package.install(<archive>))
|
|
121
|
+
*
|
|
122
|
+
* @return loader: pkgFileLoader - builder that provides requested files and content after load() call
|
|
123
|
+
*/
|
|
124
124
|
pkgFileLoader := func(pkg) {
|
|
125
|
-
ll.assert(smart.isReference(pkg),
|
|
126
|
-
"package.pkgFileLoader: <pkg> must be reference to installed package. It is usually obtained from package.install().package")
|
|
127
|
-
|
|
128
|
-
filePaths := []
|
|
129
|
-
fileContentPaths := []
|
|
130
|
-
|
|
131
|
-
self := undefined
|
|
132
|
-
|
|
133
|
-
self = {
|
|
134
|
-
saveFile: func(path) {
|
|
135
|
-
validation.assertJsonSchema(path, "string", "package.pkgFileLoader.saveFile: <path> must be string")
|
|
136
|
-
filePaths = append(filePaths, path)
|
|
137
|
-
|
|
138
|
-
return self
|
|
139
|
-
},
|
|
140
|
-
|
|
141
|
-
saveFiles: func(paths) {
|
|
142
|
-
validation.assertJsonSchema(paths, ["string"], "package.pkgFileLoader.saveFiles: <paths> must be array of strings")
|
|
143
|
-
for p in paths {
|
|
144
|
-
self.saveFile(p)
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
return self
|
|
148
|
-
},
|
|
149
|
-
|
|
150
|
-
saveFileContent: func(path) {
|
|
151
|
-
validation.assertJsonSchema(path, "string", "package.pkgFileLoader.saveFileContent: <path> must be string")
|
|
152
|
-
fileContentPaths = append(fileContentPaths, path)
|
|
153
|
-
return self
|
|
154
|
-
},
|
|
155
|
-
|
|
156
|
-
saveFilesContent: func(paths) {
|
|
157
|
-
validation.assertJsonSchema(paths, ["string"], "package.pkgFileLoader.saveFilesContent: <paths> must be array of strings")
|
|
158
|
-
for p in paths {
|
|
159
|
-
self.saveFileContent(p)
|
|
125
|
+
ll.assert(smart.isReference(pkg),
|
|
126
|
+
"package.pkgFileLoader: <pkg> must be reference to installed package. It is usually obtained from package.install().package")
|
|
127
|
+
|
|
128
|
+
filePaths := []
|
|
129
|
+
fileContentPaths := []
|
|
130
|
+
|
|
131
|
+
self := undefined
|
|
132
|
+
|
|
133
|
+
self = {
|
|
134
|
+
saveFile: func(path) {
|
|
135
|
+
validation.assertJsonSchema(path, "string", "package.pkgFileLoader.saveFile: <path> must be string")
|
|
136
|
+
filePaths = append(filePaths, path)
|
|
137
|
+
|
|
138
|
+
return self
|
|
139
|
+
},
|
|
140
|
+
|
|
141
|
+
saveFiles: func(paths) {
|
|
142
|
+
validation.assertJsonSchema(paths, ["string"], "package.pkgFileLoader.saveFiles: <paths> must be array of strings")
|
|
143
|
+
for p in paths {
|
|
144
|
+
self.saveFile(p)
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return self
|
|
148
|
+
},
|
|
149
|
+
|
|
150
|
+
saveFileContent: func(path) {
|
|
151
|
+
validation.assertJsonSchema(path, "string", "package.pkgFileLoader.saveFileContent: <path> must be string")
|
|
152
|
+
fileContentPaths = append(fileContentPaths, path)
|
|
153
|
+
return self
|
|
154
|
+
},
|
|
155
|
+
|
|
156
|
+
saveFilesContent: func(paths) {
|
|
157
|
+
validation.assertJsonSchema(paths, ["string"], "package.pkgFileLoader.saveFilesContent: <paths> must be array of strings")
|
|
158
|
+
for p in paths {
|
|
159
|
+
self.saveFileContent(p)
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
return self
|
|
163
|
+
},
|
|
164
|
+
|
|
165
|
+
load: func() {
|
|
166
|
+
wd := workdir.create()
|
|
167
|
+
|
|
168
|
+
allPaths := sets.fromSlice(filePaths)
|
|
169
|
+
allPaths = sets.add(allPaths, fileContentPaths...)
|
|
170
|
+
|
|
171
|
+
res := smart.ephemeralBuilder(_RTYPE_PACKAGE_PUT_ASSET, json.encode({
|
|
172
|
+
paths: sets.toSlice(allPaths)
|
|
173
|
+
}))
|
|
174
|
+
|
|
175
|
+
res.getField(_INPUT_PACKAGE).set(pkg)
|
|
176
|
+
res.getField(_INPUT_WD_IN).set(wd)
|
|
177
|
+
|
|
178
|
+
wdAfter := res.getField(_OUTPUT_WD_OUT)
|
|
179
|
+
|
|
180
|
+
wdSaveBuilder := workdir.save(wdAfter)
|
|
181
|
+
for p in filePaths {
|
|
182
|
+
wdSaveBuilder.saveFile(p)
|
|
183
|
+
}
|
|
184
|
+
for p in fileContentPaths {
|
|
185
|
+
wdSaveBuilder.saveFileContent(p)
|
|
186
|
+
}
|
|
187
|
+
wdSave := wdSaveBuilder.build()
|
|
188
|
+
|
|
189
|
+
return {
|
|
190
|
+
files: wdSave.files,
|
|
191
|
+
filesContent: wdSave.filesContent,
|
|
192
|
+
progress: wdSave.progress,
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Retrieves selected asset file by its path (use saveFile() to provide asset as file)
|
|
196
|
+
*
|
|
197
|
+
* @param fileName: string
|
|
198
|
+
* @return file: smart.field - a reference to the file resource.
|
|
199
|
+
*/
|
|
200
|
+
getFile: func(fileName) {
|
|
201
|
+
return wdSave.files.getFutureInputField(fileName)
|
|
202
|
+
},
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Retrieves selected asset data by its path (use saveFileContent() to provide asset's data)
|
|
206
|
+
*
|
|
207
|
+
* @param fileName: string
|
|
208
|
+
* @return file: smart.field - a reference to the file resource.
|
|
209
|
+
*/
|
|
210
|
+
getFileContent: func(fileName) {
|
|
211
|
+
return wdSave.filesContent.getFutureInputField(fileName)
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
return ll.toStrict(self)
|
|
160
218
|
}
|
|
161
219
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
res := smart.ephemeralBuilder(_RTYPE_PACKAGE_PUT_ASSET, json.encode({
|
|
172
|
-
paths: sets.toSlice(allPaths)
|
|
173
|
-
}))
|
|
174
|
-
|
|
175
|
-
res.getField(_INPUT_PACKAGE).set(pkg)
|
|
176
|
-
res.getField(_INPUT_WD_IN).set(wd)
|
|
177
|
-
|
|
178
|
-
wdAfter := res.getField(_OUTPUT_WD_OUT)
|
|
179
|
-
|
|
180
|
-
wdSaveBuilder := workdir.save(wdAfter)
|
|
181
|
-
for p in filePaths {
|
|
182
|
-
wdSaveBuilder.saveFile(p)
|
|
183
|
-
}
|
|
184
|
-
for p in fileContentPaths {
|
|
185
|
-
wdSaveBuilder.saveFileContent(p)
|
|
186
|
-
}
|
|
187
|
-
wdSave := wdSaveBuilder.build()
|
|
188
|
-
|
|
189
|
-
return {
|
|
190
|
-
files: wdSave.files,
|
|
191
|
-
filesContent: wdSave.filesContent,
|
|
192
|
-
progress: wdSave.progress,
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
getFile: func(fileName) {
|
|
201
|
-
return wdSave.files.getFutureInputField(fileName)
|
|
202
|
-
},
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
getFileContent: func(fileName) {
|
|
211
|
-
return wdSave.filesContent.getFutureInputField(fileName)
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
return ll.toStrict(self)
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
220
|
+
/**
|
|
221
|
+
* Load single asset by its path inside package, providing it as file.
|
|
222
|
+
*
|
|
223
|
+
* @param pkg: package - installed package (usually from package.install(<archive>))
|
|
224
|
+
* @param assetPath: string - path to asset inside package <pkg>
|
|
225
|
+
*
|
|
226
|
+
* @return file: singleAsset - object with reference to the file resource and progress report
|
|
227
|
+
*/
|
|
228
228
|
loadPackageFile := func(pkg, assetPath) {
|
|
229
|
-
assets := pkgFileLoader(pkg).
|
|
230
|
-
saveFile(assetPath).
|
|
231
|
-
load()
|
|
232
|
-
|
|
233
|
-
return {
|
|
234
|
-
file: assets.getFile(assetPath),
|
|
235
|
-
progress: assets.progress
|
|
236
|
-
}
|
|
229
|
+
assets := pkgFileLoader(pkg).
|
|
230
|
+
saveFile(assetPath).
|
|
231
|
+
load()
|
|
232
|
+
|
|
233
|
+
return {
|
|
234
|
+
file: assets.getFile(assetPath),
|
|
235
|
+
progress: assets.progress
|
|
236
|
+
}
|
|
237
237
|
}
|
|
238
238
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
239
|
+
/**
|
|
240
|
+
* Load single asset by its path inside package, providing its raw content.
|
|
241
|
+
*
|
|
242
|
+
* @param pkg: package - installed package (usually from package.install(<archive>))
|
|
243
|
+
* @param assetPath: string - path to asset inside package <pkg>
|
|
244
|
+
*
|
|
245
|
+
* @return content: singleAsset - object with reference to the asset content resource and progress report
|
|
246
|
+
*/
|
|
247
247
|
loadPackageFileContent := func(pkg, assetPath) {
|
|
248
|
-
assets := pkgFileLoader(pkg).
|
|
249
|
-
saveFileContent(assetPath).
|
|
250
|
-
load()
|
|
251
|
-
|
|
252
|
-
return {
|
|
253
|
-
content: assets.getFileContent(assetPath),
|
|
254
|
-
progress: assets.progress
|
|
255
|
-
}
|
|
248
|
+
assets := pkgFileLoader(pkg).
|
|
249
|
+
saveFileContent(assetPath).
|
|
250
|
+
load()
|
|
251
|
+
|
|
252
|
+
return {
|
|
253
|
+
content: assets.getFileContent(assetPath),
|
|
254
|
+
progress: assets.progress
|
|
255
|
+
}
|
|
256
256
|
}
|
|
257
257
|
|
|
258
258
|
|
|
259
259
|
export ll.toStrict({
|
|
260
|
-
softwareInfoScheme : softwareInfoScheme,
|
|
260
|
+
softwareInfoScheme : softwareInfoScheme,
|
|
261
261
|
|
|
262
|
-
META_KEY_DESCRIPTOR : META_KEY_DESCRIPTOR,
|
|
262
|
+
META_KEY_DESCRIPTOR : META_KEY_DESCRIPTOR,
|
|
263
263
|
|
|
264
|
-
get : get,
|
|
265
|
-
install : install,
|
|
266
|
-
use : use,
|
|
267
|
-
pkgFileLoader : pkgFileLoader,
|
|
268
|
-
loadPackageFile : loadPackageFile,
|
|
269
|
-
loadPackageFileContent : loadPackageFileContent
|
|
264
|
+
get : get,
|
|
265
|
+
install : install,
|
|
266
|
+
use : use,
|
|
267
|
+
pkgFileLoader : pkgFileLoader,
|
|
268
|
+
loadPackageFile : loadPackageFile,
|
|
269
|
+
loadPackageFileContent : loadPackageFileContent
|
|
270
270
|
})
|
|
@@ -3,14 +3,14 @@ validation := import("@platforma-sdk/workflow-tengo:validation")
|
|
|
3
3
|
desc := import("@platforma-sdk/workflow-tengo:exec.descriptor")
|
|
4
4
|
|
|
5
5
|
pythonVenvInputSchema := {
|
|
6
|
-
toolset: "string",
|
|
7
|
-
dependencies: {"any": validation.reference},
|
|
6
|
+
toolset: "string",
|
|
7
|
+
dependencies: {"any": validation.reference},
|
|
8
|
+
// software: validation.reference,
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
python: validation.reference
|
|
10
|
+
pythonDescriptor: desc.runEnvScheme,
|
|
11
|
+
python: validation.reference
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
export ll.toStrict({
|
|
15
|
-
pythonVenvInputSchema : pythonVenvInputSchema
|
|
15
|
+
pythonVenvInputSchema : pythonVenvInputSchema
|
|
16
16
|
})
|