@platforma-sdk/workflow-tengo 2.9.5 → 2.9.7

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.
Files changed (64) hide show
  1. package/dist/tengo/lib/assets.lib.tengo +52 -52
  2. package/dist/tengo/lib/assets.swinfo.lib.tengo +45 -45
  3. package/dist/tengo/lib/constants.lib.tengo +32 -32
  4. package/dist/tengo/lib/exec.R.internal.lib.tengo +29 -29
  5. package/dist/tengo/lib/exec.R.lib.tengo +166 -166
  6. package/dist/tengo/lib/exec.constants.lib.tengo +4 -4
  7. package/dist/tengo/lib/exec.descriptor.lib.tengo +31 -31
  8. package/dist/tengo/lib/exec.internal.lib.tengo +297 -297
  9. package/dist/tengo/lib/exec.lib.tengo +815 -815
  10. package/dist/tengo/lib/exec.monetization.lib.tengo +130 -130
  11. package/dist/tengo/lib/exec.package.lib.tengo +212 -212
  12. package/dist/tengo/lib/exec.python.internal.lib.tengo +6 -6
  13. package/dist/tengo/lib/exec.python.lib.tengo +146 -146
  14. package/dist/tengo/lib/exec.runcmd.lib.tengo +371 -371
  15. package/dist/tengo/lib/exec.runenv.lib.tengo +92 -92
  16. package/dist/tengo/lib/exec.stream.lib.tengo +40 -40
  17. package/dist/tengo/lib/file.internal.lib.tengo +77 -77
  18. package/dist/tengo/lib/file.lib.tengo +57 -57
  19. package/dist/tengo/lib/ll.lib.tengo +244 -244
  20. package/dist/tengo/lib/maps.lib.tengo +152 -152
  21. package/dist/tengo/lib/objects.lib.tengo +13 -13
  22. package/dist/tengo/lib/oop.lib.tengo +19 -19
  23. package/dist/tengo/lib/path.lib.tengo +125 -125
  24. package/dist/tengo/lib/pframes.constants.lib.tengo +28 -28
  25. package/dist/tengo/lib/pframes.export-pcolumn.lib.tengo +33 -33
  26. package/dist/tengo/lib/pframes.lib.tengo +43 -43
  27. package/dist/tengo/lib/pframes.ll.lib.tengo +72 -72
  28. package/dist/tengo/lib/pframes.pcolumn.lib.tengo +49 -49
  29. package/dist/tengo/lib/pframes.spec.lib.tengo +96 -96
  30. package/dist/tengo/lib/pframes.util.lib.tengo +288 -288
  31. package/dist/tengo/lib/pframes.xsv.lib.tengo +272 -272
  32. package/dist/tengo/lib/render.lib.tengo +75 -75
  33. package/dist/tengo/lib/sets.lib.tengo +68 -68
  34. package/dist/tengo/lib/slices.lib.tengo +258 -155
  35. package/dist/tengo/lib/smart.lib.tengo +1069 -1069
  36. package/dist/tengo/lib/test.lib.tengo +161 -161
  37. package/dist/tengo/lib/tpl.lib.tengo +515 -515
  38. package/dist/tengo/lib/tpl.state-await.lib.tengo +240 -240
  39. package/dist/tengo/lib/tpl.util.lib.tengo +9 -9
  40. package/dist/tengo/lib/validation.lib.tengo +378 -378
  41. package/dist/tengo/lib/workdir.lib.tengo +331 -331
  42. package/dist/tengo/lib/workdir.proc.lib.tengo +144 -144
  43. package/dist/tengo/lib/workdir.save.lib.tengo +130 -130
  44. package/dist/tengo/lib/workflow.bobject.lib.tengo +26 -26
  45. package/dist/tengo/lib/workflow.bquery.lib.tengo +165 -165
  46. package/dist/tengo/lib/workflow.constants.lib.tengo +2 -2
  47. package/dist/tengo/lib/workflow.context.lib.tengo +32 -32
  48. package/dist/tengo/lib/workflow.lib.tengo +206 -206
  49. package/dist/tengo/tpl/exec.R.create-renv.plj.gz +0 -0
  50. package/dist/tengo/tpl/exec.exec.plj.gz +0 -0
  51. package/dist/tengo/tpl/exec.monetization_to_json.plj.gz +0 -0
  52. package/dist/tengo/tpl/exec.python.create-venv.plj.gz +0 -0
  53. package/dist/tengo/tpl/exec.python.install-deps.plj.gz +0 -0
  54. package/dist/tengo/tpl/pframes.aggregate.plj.gz +0 -0
  55. package/dist/tengo/tpl/pframes.export-multiple-pcolumns.plj.gz +0 -0
  56. package/dist/tengo/tpl/pframes.export-pframe.plj.gz +0 -0
  57. package/dist/tengo/tpl/pframes.export-single-pcolumn.plj.gz +0 -0
  58. package/dist/tengo/tpl/pframes.import-dir.plj.gz +0 -0
  59. package/dist/tengo/tpl/pframes.map-pframe.plj.gz +0 -0
  60. package/dist/tengo/tpl/pframes.xsv-export-pframe.plj.gz +0 -0
  61. package/dist/tengo/tpl/pframes.xsv-import-map.plj.gz +0 -0
  62. package/dist/tengo/tpl/workdir.save.plj.gz +0 -0
  63. package/dist/tengo/tpl/workflow.build-ctx.plj.gz +0 -0
  64. 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
- 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
-
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
- pythonDescriptor: desc.runEnvScheme,
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
  })