darabos commited on
Commit
a697ae8
·
1 Parent(s): 20375b5

Actually execute examples in tests.

Browse files
examples/Image processing.lynxkite.json CHANGED
@@ -8,31 +8,31 @@
8
  "targetHandle": "image"
9
  },
10
  {
11
- "id": "xy-edge__Open image 1output-Flip verically 1image",
12
- "source": "Open image 1",
13
  "sourceHandle": "output",
14
- "target": "Flip verically 1",
15
  "targetHandle": "image"
16
  },
17
  {
18
- "id": "xy-edge__To grayscale 1output-View image 2image",
19
- "source": "To grayscale 1",
20
  "sourceHandle": "output",
21
- "target": "View image 2",
22
  "targetHandle": "image"
23
  },
24
  {
25
- "id": "xy-edge__Flip verically 1output-Blur 1image",
26
- "source": "Flip verically 1",
27
  "sourceHandle": "output",
28
- "target": "Blur 1",
29
  "targetHandle": "image"
30
  },
31
  {
32
- "id": "xy-edge__Blur 1output-To grayscale 1image",
33
- "source": "Blur 1",
34
  "sourceHandle": "output",
35
- "target": "To grayscale 1",
36
  "targetHandle": "image"
37
  }
38
  ],
@@ -120,51 +120,6 @@
120
  "type": "image",
121
  "width": 265.0
122
  },
123
- {
124
- "data": {
125
- "__execution_delay": null,
126
- "collapsed": true,
127
- "display": null,
128
- "error": null,
129
- "input_metadata": null,
130
- "meta": {
131
- "inputs": {
132
- "image": {
133
- "name": "image",
134
- "position": "left",
135
- "type": {
136
- "type": "<module 'PIL.Image' from '/media/nvme/darabos/lynxkite-2024/.venv/lib/python3.11/site-packages/PIL/Image.py'>"
137
- }
138
- }
139
- },
140
- "name": "Flip verically",
141
- "outputs": {
142
- "output": {
143
- "name": "output",
144
- "position": "right",
145
- "type": {
146
- "type": "None"
147
- }
148
- }
149
- },
150
- "params": {},
151
- "type": "basic"
152
- },
153
- "params": {},
154
- "status": "done",
155
- "title": "Flip verically"
156
- },
157
- "dragHandle": ".bg-primary",
158
- "height": 200.0,
159
- "id": "Flip verically 1",
160
- "parentId": null,
161
- "position": {
162
- "x": 228.3853393986406,
163
- "y": 245.68255477059915
164
- },
165
- "type": "basic",
166
- "width": 200.0
167
- },
168
  {
169
  "data": {
170
  "display": "data:image/jpeg;base64,UklGRoADAABXRUJQVlA4IHQDAAAwNQCdASrIAMgAPm0ukkYyMaGhrtt5UkANiWluu7AObIPJl9NfJmVCwA06FIbr8ZA3WaSJ7/dHH5er4u683qcKWcW7qn4VGE7XCnSEtZUZsarT1ox9y8J2EionbqsxfkAAIOk7JTtvXiLVAeVPQlEW3R4aJSLoxXCJTuGOqcp6fJ7+tzWWmOSq1IqFDN7536TfOvEoiw/K8AQcP06J13RTpwyFow3MFoK9BWZDv0mPqMmHjuC7Hb5MkHc6QnQihSek5PyYdUN4+yG0NpM3NK0+lOSMpu5jaeY5YrFUKke5nLaJ0Mu/3it1akkzebF4fRj8xdIkJDrC4xD4RcyC8aQ1zI4MjffvaCX8X0jbNJ5n5xzGOOU9kFhpry6Uy30xVtGdrEYwbGflOPdNp1u0tiKemkGylZmdj/9rbvWo0IYnCFLs1tAQ1fpkGVQYVo4FA68IbkKvB2KNxrQ17ySt96mzi6ODrNuVzsgisAS/q2ILoOlZL2nfdCNWb523fz7hEM319hb+aWTmo2zExKfWXzUZRGWy09rt8rQZXW5qBKTs5vsYabOjubwNNfFoX7dv32XwAAD++LH6dpCJbVSQouNoBCx0XMzcYw+6o+G//GpIy1eD9A/1cvAp/zhr1mDURDqx2xBgY79tNgsjX9AArhyCNX/BRq/st/uDXRqUv7Wx+Pl/40TsVhng3/XrKZXhDYKnD2aAAyOHG8yS8FTlr5aM6Nh//ra74YvdX+3/j/RLZDm6wRAbHmTF1ZWhK3HdcgOeU+RMXPeCEL8zqEcm3nMeTpuJhH7GTnjejYZx6OrdHAWBghyiaVrgH9f2nXLm1VZ4AgOokXq16NNjRz3FgLYzr7qd94Y2TRJW/cGAcaH5CN5+iXZy4LY2JaCo5I4//pJ/TthQ8SBbQdOIDZPayUXSmAo7cTuD/rk97N3QBGdx5oIzTeSYL8FZfiH/nJLQARX7PafEYZBW9a/ZMjDSPg9GFTPL4BL42F32uL8ZcYLrpkRGRW6jbjmj7GuGSwV5+YuKOhEAf2ZVwU55UjaxRygygrjlYc8FoCe+HyL6rJ5V3jfZvZy1Nw3CdfX4CWQ5/gUjrgONEGb7g2SL/nS9dGgl2gAHKKCzEneCdL38wwsnQYPGdrerT/4uEWM1T24cHLkgBmT+zH6YiwG7DkqEmAbjF4AAAA==",
@@ -299,6 +254,50 @@
299
  },
300
  "type": "basic",
301
  "width": 200.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
302
  }
303
  ]
304
  }
 
8
  "targetHandle": "image"
9
  },
10
  {
11
+ "id": "xy-edge__To grayscale 1output-View image 2image",
12
+ "source": "To grayscale 1",
13
  "sourceHandle": "output",
14
+ "target": "View image 2",
15
  "targetHandle": "image"
16
  },
17
  {
18
+ "id": "xy-edge__Blur 1output-To grayscale 1image",
19
+ "source": "Blur 1",
20
  "sourceHandle": "output",
21
+ "target": "To grayscale 1",
22
  "targetHandle": "image"
23
  },
24
  {
25
+ "id": "Open image 1 Flip vertically 1",
26
+ "source": "Open image 1",
27
  "sourceHandle": "output",
28
+ "target": "Flip vertically 1",
29
  "targetHandle": "image"
30
  },
31
  {
32
+ "id": "Flip vertically 1 Blur 1",
33
+ "source": "Flip vertically 1",
34
  "sourceHandle": "output",
35
+ "target": "Blur 1",
36
  "targetHandle": "image"
37
  }
38
  ],
 
120
  "type": "image",
121
  "width": 265.0
122
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
  {
124
  "data": {
125
  "display": "data:image/jpeg;base64,UklGRoADAABXRUJQVlA4IHQDAAAwNQCdASrIAMgAPm0ukkYyMaGhrtt5UkANiWluu7AObIPJl9NfJmVCwA06FIbr8ZA3WaSJ7/dHH5er4u683qcKWcW7qn4VGE7XCnSEtZUZsarT1ox9y8J2EionbqsxfkAAIOk7JTtvXiLVAeVPQlEW3R4aJSLoxXCJTuGOqcp6fJ7+tzWWmOSq1IqFDN7536TfOvEoiw/K8AQcP06J13RTpwyFow3MFoK9BWZDv0mPqMmHjuC7Hb5MkHc6QnQihSek5PyYdUN4+yG0NpM3NK0+lOSMpu5jaeY5YrFUKke5nLaJ0Mu/3it1akkzebF4fRj8xdIkJDrC4xD4RcyC8aQ1zI4MjffvaCX8X0jbNJ5n5xzGOOU9kFhpry6Uy30xVtGdrEYwbGflOPdNp1u0tiKemkGylZmdj/9rbvWo0IYnCFLs1tAQ1fpkGVQYVo4FA68IbkKvB2KNxrQ17ySt96mzi6ODrNuVzsgisAS/q2ILoOlZL2nfdCNWb523fz7hEM319hb+aWTmo2zExKfWXzUZRGWy09rt8rQZXW5qBKTs5vsYabOjubwNNfFoX7dv32XwAAD++LH6dpCJbVSQouNoBCx0XMzcYw+6o+G//GpIy1eD9A/1cvAp/zhr1mDURDqx2xBgY79tNgsjX9AArhyCNX/BRq/st/uDXRqUv7Wx+Pl/40TsVhng3/XrKZXhDYKnD2aAAyOHG8yS8FTlr5aM6Nh//ra74YvdX+3/j/RLZDm6wRAbHmTF1ZWhK3HdcgOeU+RMXPeCEL8zqEcm3nMeTpuJhH7GTnjejYZx6OrdHAWBghyiaVrgH9f2nXLm1VZ4AgOokXq16NNjRz3FgLYzr7qd94Y2TRJW/cGAcaH5CN5+iXZy4LY2JaCo5I4//pJ/TthQ8SBbQdOIDZPayUXSmAo7cTuD/rk97N3QBGdx5oIzTeSYL8FZfiH/nJLQARX7PafEYZBW9a/ZMjDSPg9GFTPL4BL42F32uL8ZcYLrpkRGRW6jbjmj7GuGSwV5+YuKOhEAf2ZVwU55UjaxRygygrjlYc8FoCe+HyL6rJ5V3jfZvZy1Nw3CdfX4CWQ5/gUjrgONEGb7g2SL/nS9dGgl2gAHKKCzEneCdL38wwsnQYPGdrerT/4uEWM1T24cHLkgBmT+zH6YiwG7DkqEmAbjF4AAAA==",
 
254
  },
255
  "type": "basic",
256
  "width": 200.0
257
+ },
258
+ {
259
+ "data": {
260
+ "__execution_delay": null,
261
+ "collapsed": true,
262
+ "display": null,
263
+ "error": null,
264
+ "input_metadata": null,
265
+ "meta": {
266
+ "inputs": {
267
+ "image": {
268
+ "name": "image",
269
+ "position": "left",
270
+ "type": {
271
+ "type": "<module 'PIL.Image' from '/media/nvme/darabos/lynxkite-2024/.venv/lib/python3.11/site-packages/PIL/Image.py'>"
272
+ }
273
+ }
274
+ },
275
+ "name": "Flip vertically",
276
+ "outputs": {
277
+ "output": {
278
+ "name": "output",
279
+ "position": "right",
280
+ "type": {
281
+ "type": "None"
282
+ }
283
+ }
284
+ },
285
+ "params": {},
286
+ "type": "basic"
287
+ },
288
+ "params": {},
289
+ "status": "done",
290
+ "title": "Flip vertically"
291
+ },
292
+ "dragHandle": ".bg-primary",
293
+ "height": 200.0,
294
+ "id": "Flip vertically 1",
295
+ "position": {
296
+ "x": 148.51544517498044,
297
+ "y": 288.98657171134255
298
+ },
299
+ "type": "basic",
300
+ "width": 200.0
301
  }
302
  ]
303
  }
examples/Model use.lynxkite.json CHANGED
@@ -421,7 +421,7 @@
421
  "type": "basic"
422
  },
423
  "params": {
424
- "model_workspace": "Model definition.lynxkite.json",
425
  "save_as": "model"
426
  },
427
  "status": "done",
 
421
  "type": "basic"
422
  },
423
  "params": {
424
+ "model_workspace": "Model definition",
425
  "save_as": "model"
426
  },
427
  "status": "done",
examples/PyTorch demo.lynxkite.json DELETED
@@ -1,623 +0,0 @@
1
- {
2
- "env": "PyTorch model",
3
- "nodes": [
4
- {
5
- "id": "Input: features 1",
6
- "type": "basic",
7
- "data": {
8
- "title": "Input: features",
9
- "params": {},
10
- "display": null,
11
- "error": null,
12
- "meta": {
13
- "name": "Input: features",
14
- "type": "basic",
15
- "outputs": {
16
- "x": {
17
- "position": "top",
18
- "name": "x",
19
- "type": {
20
- "type": "tensor"
21
- }
22
- }
23
- },
24
- "params": {},
25
- "inputs": {}
26
- },
27
- "collapsed": true,
28
- "__execution_delay": null
29
- },
30
- "position": {
31
- "x": -108.60604658638658,
32
- "y": 63.96065124378427
33
- },
34
- "width": 200.0,
35
- "height": 200.0,
36
- "parentId": null
37
- },
38
- {
39
- "id": "Input: graph edges 1",
40
- "type": "basic",
41
- "data": {
42
- "title": "Input: graph edges",
43
- "params": {},
44
- "display": null,
45
- "error": null,
46
- "__execution_delay": null,
47
- "collapsed": true,
48
- "meta": {
49
- "name": "Input: graph edges",
50
- "inputs": {},
51
- "params": {},
52
- "type": "basic",
53
- "outputs": {
54
- "edges": {
55
- "name": "edges",
56
- "type": {
57
- "type": "tensor"
58
- },
59
- "position": "top"
60
- }
61
- }
62
- }
63
- },
64
- "position": {
65
- "x": 180.7373888617958,
66
- "y": 58.54904654355781
67
- },
68
- "width": 200.0,
69
- "parentId": null,
70
- "height": 200.0
71
- },
72
- {
73
- "id": "Linear 1",
74
- "type": "basic",
75
- "data": {
76
- "title": "Linear",
77
- "params": {
78
- "output_dim": "same"
79
- },
80
- "display": null,
81
- "error": null,
82
- "meta": {
83
- "inputs": {
84
- "x": {
85
- "type": {
86
- "type": "tensor"
87
- },
88
- "position": "bottom",
89
- "name": "x"
90
- }
91
- },
92
- "type": "basic",
93
- "name": "Linear",
94
- "outputs": {
95
- "x": {
96
- "type": {
97
- "type": "tensor"
98
- },
99
- "position": "top",
100
- "name": "x"
101
- }
102
- },
103
- "params": {
104
- "output_dim": {
105
- "name": "output_dim",
106
- "type": {
107
- "type": "<class 'str'>"
108
- },
109
- "default": "same"
110
- }
111
- }
112
- }
113
- },
114
- "position": {
115
- "x": 78.37881963123723,
116
- "y": -528.3012263817914
117
- },
118
- "parentId": null,
119
- "width": 204.0,
120
- "height": 140.0
121
- },
122
- {
123
- "id": "Activation 1",
124
- "type": "basic",
125
- "data": {
126
- "title": "Activation",
127
- "params": {
128
- "type": "ReLU"
129
- },
130
- "display": null,
131
- "error": null,
132
- "meta": {
133
- "outputs": {
134
- "x": {
135
- "position": "top",
136
- "type": {
137
- "type": "tensor"
138
- },
139
- "name": "x"
140
- }
141
- },
142
- "name": "Activation",
143
- "type": "basic",
144
- "inputs": {
145
- "x": {
146
- "position": "bottom",
147
- "name": "x",
148
- "type": {
149
- "type": "tensor"
150
- }
151
- }
152
- },
153
- "params": {
154
- "type": {
155
- "default": "OptionsFor_type.ReLU",
156
- "name": "type",
157
- "type": {
158
- "enum": [
159
- "ReLU",
160
- "LeakyReLU",
161
- "Tanh",
162
- "Mish"
163
- ]
164
- }
165
- }
166
- }
167
- }
168
- },
169
- "position": {
170
- "x": 98.44658319023353,
171
- "y": -741.1411130550297
172
- },
173
- "height": 154.0,
174
- "parentId": null,
175
- "width": 173.0
176
- },
177
- {
178
- "id": "Dropout 1",
179
- "type": "basic",
180
- "data": {
181
- "title": "Dropout",
182
- "params": {
183
- "p": 0.5
184
- },
185
- "display": null,
186
- "error": null,
187
- "meta": {
188
- "type": "basic",
189
- "inputs": {
190
- "x": {
191
- "name": "x",
192
- "type": {
193
- "type": "tensor"
194
- },
195
- "position": "bottom"
196
- }
197
- },
198
- "name": "Dropout",
199
- "params": {
200
- "p": {
201
- "default": 0.5,
202
- "type": {
203
- "type": "<class 'float'>"
204
- },
205
- "name": "p"
206
- }
207
- },
208
- "outputs": {
209
- "x": {
210
- "position": "top",
211
- "name": "x",
212
- "type": {
213
- "type": "tensor"
214
- }
215
- }
216
- }
217
- }
218
- },
219
- "position": {
220
- "x": 73.61437458187964,
221
- "y": -929.9824215609918
222
- },
223
- "width": 207.0,
224
- "parentId": null,
225
- "height": 159.0
226
- },
227
- {
228
- "id": "Graph conv 1",
229
- "type": "basic",
230
- "data": {
231
- "title": "Graph conv",
232
- "params": {
233
- "type": "SAGEConv"
234
- },
235
- "display": null,
236
- "error": null,
237
- "meta": {
238
- "outputs": {
239
- "x": {
240
- "type": {
241
- "type": "tensor"
242
- },
243
- "name": "x",
244
- "position": "top"
245
- }
246
- },
247
- "type": "basic",
248
- "name": "Graph conv",
249
- "params": {
250
- "type": {
251
- "name": "type",
252
- "default": "OptionsFor_type.GCNConv",
253
- "type": {
254
- "enum": [
255
- "GCNConv",
256
- "GATConv",
257
- "GATv2Conv",
258
- "SAGEConv"
259
- ]
260
- }
261
- }
262
- },
263
- "inputs": {
264
- "x": {
265
- "type": {
266
- "type": "tensor"
267
- },
268
- "name": "x",
269
- "position": "bottom"
270
- },
271
- "edges": {
272
- "name": "edges",
273
- "type": {
274
- "type": "tensor"
275
- },
276
- "position": "bottom"
277
- }
278
- }
279
- }
280
- },
281
- "position": {
282
- "x": 64.08886242755246,
283
- "y": -269.43023573181557
284
- },
285
- "height": 200.0,
286
- "width": 200.0,
287
- "parentId": null
288
- },
289
- {
290
- "id": "Supervised loss 1",
291
- "type": "basic",
292
- "data": {
293
- "title": "Supervised loss",
294
- "params": {},
295
- "display": null,
296
- "error": null,
297
- "collapsed": true,
298
- "__execution_delay": null,
299
- "meta": {
300
- "type": "basic",
301
- "params": {},
302
- "name": "Supervised loss",
303
- "inputs": {
304
- "y": {
305
- "name": "y",
306
- "type": {
307
- "type": "tensor"
308
- },
309
- "position": "bottom"
310
- },
311
- "x": {
312
- "name": "x",
313
- "type": {
314
- "type": "tensor"
315
- },
316
- "position": "bottom"
317
- }
318
- },
319
- "outputs": {
320
- "loss": {
321
- "position": "top",
322
- "type": {
323
- "type": "tensor"
324
- },
325
- "name": "loss"
326
- }
327
- }
328
- }
329
- },
330
- "position": {
331
- "x": 110.53693593362718,
332
- "y": -1123.9976567905628
333
- },
334
- "parentId": null,
335
- "height": 80.0,
336
- "width": 204.0
337
- },
338
- {
339
- "id": "Input: label 1",
340
- "type": "basic",
341
- "data": {
342
- "title": "Input: label",
343
- "params": {},
344
- "display": null,
345
- "error": null,
346
- "collapsed": true,
347
- "__execution_delay": null,
348
- "meta": {
349
- "inputs": {},
350
- "outputs": {
351
- "y": {
352
- "type": {
353
- "type": "tensor"
354
- },
355
- "position": "top",
356
- "name": "y"
357
- }
358
- },
359
- "name": "Input: label",
360
- "type": "basic",
361
- "params": {}
362
- }
363
- },
364
- "position": {
365
- "x": 666.110498676668,
366
- "y": -898.6721561114967
367
- },
368
- "width": 200.0,
369
- "height": 73.0,
370
- "parentId": null
371
- },
372
- {
373
- "id": "Optimizer 1",
374
- "type": "basic",
375
- "data": {
376
- "title": "Optimizer",
377
- "params": {
378
- "lr": 0.001,
379
- "type": "AdamW"
380
- },
381
- "display": null,
382
- "error": null,
383
- "meta": {
384
- "name": "Optimizer",
385
- "outputs": {},
386
- "params": {
387
- "lr": {
388
- "default": 0.001,
389
- "name": "lr",
390
- "type": {
391
- "type": "<class 'float'>"
392
- }
393
- },
394
- "type": {
395
- "type": {
396
- "enum": [
397
- "AdamW",
398
- "Adafactor",
399
- "Adagrad",
400
- "SGD",
401
- "Lion",
402
- "Paged AdamW",
403
- "Galore AdamW"
404
- ]
405
- },
406
- "name": "type",
407
- "default": "OptionsFor_type.AdamW"
408
- }
409
- },
410
- "inputs": {
411
- "loss": {
412
- "type": {
413
- "type": "tensor"
414
- },
415
- "name": "loss",
416
- "position": "bottom"
417
- }
418
- },
419
- "type": "basic"
420
- }
421
- },
422
- "position": {
423
- "x": 115.25730958703494,
424
- "y": -1431.5320892753364
425
- },
426
- "width": 200.0,
427
- "height": 233.0,
428
- "parentId": null
429
- },
430
- {
431
- "id": "Repeat 3",
432
- "type": "basic",
433
- "data": {
434
- "title": "Repeat",
435
- "params": {
436
- "times": 1.0
437
- },
438
- "display": null,
439
- "error": null,
440
- "meta": {
441
- "type": "basic",
442
- "position": {
443
- "y": 340.0,
444
- "x": 371.0
445
- },
446
- "outputs": {
447
- "output": {
448
- "name": "output",
449
- "type": {
450
- "type": "tensor"
451
- },
452
- "position": "bottom"
453
- }
454
- },
455
- "name": "Repeat",
456
- "params": {
457
- "times": {
458
- "name": "times",
459
- "default": 1.0,
460
- "type": {
461
- "type": "<class 'int'>"
462
- }
463
- }
464
- },
465
- "inputs": {
466
- "input": {
467
- "type": {
468
- "type": "tensor"
469
- },
470
- "position": "top",
471
- "name": "input"
472
- }
473
- }
474
- }
475
- },
476
- "position": {
477
- "x": -245.1288628776232,
478
- "y": -276.90661040974317
479
- },
480
- "width": 200.0,
481
- "height": 200.0
482
- },
483
- {
484
- "id": "Repeat 1",
485
- "type": "basic",
486
- "data": {
487
- "title": "Repeat",
488
- "params": {
489
- "times": 1.0
490
- },
491
- "display": null,
492
- "error": null,
493
- "meta": {
494
- "outputs": {
495
- "output": {
496
- "position": "bottom",
497
- "type": {
498
- "type": "tensor"
499
- },
500
- "name": "output"
501
- }
502
- },
503
- "params": {
504
- "times": {
505
- "default": 1.0,
506
- "type": {
507
- "type": "<class 'int'>"
508
- },
509
- "name": "times"
510
- }
511
- },
512
- "position": {
513
- "x": 387.0,
514
- "y": 337.0
515
- },
516
- "type": "basic",
517
- "name": "Repeat",
518
- "inputs": {
519
- "input": {
520
- "name": "input",
521
- "position": "top",
522
- "type": {
523
- "type": "tensor"
524
- }
525
- }
526
- }
527
- }
528
- },
529
- "position": {
530
- "x": -258.0088683218416,
531
- "y": -737.3822225246788
532
- },
533
- "width": 200.0,
534
- "height": 200.0
535
- }
536
- ],
537
- "edges": [
538
- {
539
- "id": "xy-edge__Linear 1x-Activation 1x",
540
- "source": "Linear 1",
541
- "target": "Activation 1",
542
- "sourceHandle": "x",
543
- "targetHandle": "x"
544
- },
545
- {
546
- "id": "xy-edge__Activation 1x-Dropout 1x",
547
- "source": "Activation 1",
548
- "target": "Dropout 1",
549
- "sourceHandle": "x",
550
- "targetHandle": "x"
551
- },
552
- {
553
- "id": "xy-edge__Input: features 1x-Graph conv 1x",
554
- "source": "Input: features 1",
555
- "target": "Graph conv 1",
556
- "sourceHandle": "x",
557
- "targetHandle": "x"
558
- },
559
- {
560
- "id": "xy-edge__Input: graph edges 1edges-Graph conv 1edges",
561
- "source": "Input: graph edges 1",
562
- "target": "Graph conv 1",
563
- "sourceHandle": "edges",
564
- "targetHandle": "edges"
565
- },
566
- {
567
- "id": "xy-edge__Graph conv 1x-Linear 1x",
568
- "source": "Graph conv 1",
569
- "target": "Linear 1",
570
- "sourceHandle": "x",
571
- "targetHandle": "x"
572
- },
573
- {
574
- "id": "xy-edge__Input: label 1y-Supervised loss 1y",
575
- "source": "Input: label 1",
576
- "target": "Supervised loss 1",
577
- "sourceHandle": "y",
578
- "targetHandle": "y"
579
- },
580
- {
581
- "id": "xy-edge__Dropout 1x-Supervised loss 1x",
582
- "source": "Dropout 1",
583
- "target": "Supervised loss 1",
584
- "sourceHandle": "x",
585
- "targetHandle": "x"
586
- },
587
- {
588
- "id": "xy-edge__Supervised loss 1loss-Optimizer 1loss",
589
- "source": "Supervised loss 1",
590
- "target": "Optimizer 1",
591
- "sourceHandle": "loss",
592
- "targetHandle": "loss"
593
- },
594
- {
595
- "id": "Graph conv 1 Repeat 3",
596
- "source": "Graph conv 1",
597
- "target": "Repeat 3",
598
- "sourceHandle": "x",
599
- "targetHandle": "input"
600
- },
601
- {
602
- "id": "Repeat 3 Graph conv 1",
603
- "source": "Repeat 3",
604
- "target": "Graph conv 1",
605
- "sourceHandle": "output",
606
- "targetHandle": "x"
607
- },
608
- {
609
- "id": "Dropout 1 Repeat 1",
610
- "source": "Dropout 1",
611
- "target": "Repeat 1",
612
- "sourceHandle": "x",
613
- "targetHandle": "input"
614
- },
615
- {
616
- "id": "Repeat 1 Linear 1",
617
- "source": "Repeat 1",
618
- "target": "Linear 1",
619
- "sourceHandle": "output",
620
- "targetHandle": "x"
621
- }
622
- ]
623
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
lynxkite-app/web/tests/examples.spec.ts CHANGED
@@ -2,44 +2,21 @@
2
  import { expect, test } from "@playwright/test";
3
  import { Workspace } from "./lynxkite";
4
 
5
- test("LynxKite Graph Analytics example", async ({ page }) => {
6
- const ws = await Workspace.open(page, "NetworkX demo");
7
- await ws.expectErrorFree(process.env.CI ? 2000 : 1000);
8
- });
9
-
10
- test("Bio example", async ({ page }) => {
11
- const ws = await Workspace.open(page, "Bio demo");
12
- await ws.expectErrorFree();
13
- });
14
-
15
- test("Pytorch example", async ({ page }) => {
16
- const ws = await Workspace.open(page, "PyTorch demo");
17
- await ws.expectErrorFree();
18
- });
19
-
20
- test("AIMO example", async ({ page }) => {
21
- const ws = await Workspace.open(page, "AIMO");
22
- await ws.expectErrorFree();
23
- });
24
-
25
- test("LynxScribe example", async ({ page }) => {
26
- // Fails because of missing OPENAI_API_KEY
27
- const ws = await Workspace.open(page, "LynxScribe demo");
28
- await ws.expectErrorFree();
29
- });
30
-
31
- test("Graph RAG", async ({ page }) => {
32
- // Fails due to some issue with ChromaDB
33
- const ws = await Workspace.open(page, "Graph RAG");
34
- await ws.expectErrorFree(process.env.CI ? 2000 : 500);
35
- });
36
-
37
- test("Airlines demo", async ({ page }) => {
38
- const ws = await Workspace.open(page, "Airlines demo");
39
- await ws.expectErrorFree(process.env.CI ? 10000 : 500);
40
- });
41
-
42
- test("Pillow example", async ({ page }) => {
43
- const ws = await Workspace.open(page, "Image processing");
44
- await ws.expectErrorFree();
45
- });
 
2
  import { expect, test } from "@playwright/test";
3
  import { Workspace } from "./lynxkite";
4
 
5
+ const WORKSPACES = [
6
+ // "AIMO",
7
+ "Airlines demo",
8
+ "Bio Cypher demo",
9
+ // "Graph RAG",
10
+ "Image processing",
11
+ // "LynxScribe demo",
12
+ "NetworkX demo",
13
+ "Model use",
14
+ ];
15
+
16
+ for (const name of WORKSPACES) {
17
+ test(name, async ({ page }) => {
18
+ const ws = await Workspace.open(page, name);
19
+ await ws.execute();
20
+ await ws.expectErrorFree();
21
+ });
22
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
lynxkite-app/web/tests/lynxkite.ts CHANGED
@@ -144,8 +144,14 @@ export class Workspace {
144
  await this.page.mouse.up();
145
  }
146
 
 
 
 
 
 
 
147
  async expectErrorFree(executionWaitTime?) {
148
- await expect(this.getBoxes().locator(".error").first()).not.toBeVisible();
149
  }
150
 
151
  async close() {
 
144
  await this.page.mouse.up();
145
  }
146
 
147
+ async execute() {
148
+ const request = this.page.waitForResponse(/api[/]execute_workspace/);
149
+ await this.page.keyboard.press("r");
150
+ await request;
151
+ }
152
+
153
  async expectErrorFree(executionWaitTime?) {
154
+ await expect(this.getBoxes().locator("text=⚠️").first()).not.toBeVisible();
155
  }
156
 
157
  async close() {