@gradio/core 0.12.0 → 0.12.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @gradio/core
2
2
 
3
+ ## 0.12.1
4
+
5
+ ### Features
6
+
7
+ - [#10694](https://github.com/gradio-app/gradio/pull/10694) [`16244f3`](https://github.com/gradio-app/gradio/commit/16244f3c1cb1a65ac1f719142f8fab67512fbb25) - Event Listeners in gradio sketch. Thanks @aliabid94!
8
+
9
+ ### Fixes
10
+
11
+ - [#10719](https://github.com/gradio-app/gradio/pull/10719) [`b710d7c`](https://github.com/gradio-app/gradio/commit/b710d7cf13c1277fd18c7809cad0f707b880ef70) - Fix error display. Thanks @aliabid94!
12
+
13
+ ### Dependency updates
14
+
15
+ - @gradio/code@0.11.2
16
+ - @gradio/video@0.14.4
17
+ - @gradio/client@1.13.1
18
+ - @gradio/wasm@0.17.4
19
+ - @gradio/gallery@0.15.9
20
+ - @gradio/upload@0.15.4
21
+ - @gradio/button@0.4.9
22
+ - @gradio/image@0.21.4
23
+ - @gradio/file@0.12.9
24
+
3
25
  ## 0.12.0
4
26
 
5
27
  ### Features
@@ -98,7 +98,11 @@ function set_settings_visible(visible) {
98
98
  let api_calls = [];
99
99
  export let render_complete = false;
100
100
  async function handle_update(data, fn_index) {
101
- const outputs = dependencies.find((dep) => dep.id == fn_index).outputs;
101
+ const dep = dependencies.find((dep2) => dep2.id === fn_index);
102
+ if (!dep) {
103
+ return;
104
+ }
105
+ const outputs = dep.outputs;
102
106
  const meta_updates = data?.map((value, i) => {
103
107
  return {
104
108
  id: outputs[i],
@@ -188,7 +192,11 @@ async function get_component_value_or_event_data(component_id, trigger_id, event
188
192
  return get_data(component_id);
189
193
  }
190
194
  async function trigger_api_call(dep_index, trigger_id = null, event_data = null) {
191
- let dep = dependencies.find((dep2) => dep2.id === dep_index);
195
+ const _dep = dependencies.find((dep2) => dep2.id === dep_index);
196
+ if (_dep === void 0) {
197
+ return;
198
+ }
199
+ const dep = _dep;
192
200
  if (inputs_waiting.length > 0) {
193
201
  for (const input of inputs_waiting) {
194
202
  if (dep.inputs.includes(input)) {
@@ -202,6 +210,17 @@ async function trigger_api_call(dep_index, trigger_id = null, event_data = null)
202
210
  if (current_status === "pending" || current_status === "generating") {
203
211
  dep.pending_request = true;
204
212
  }
213
+ let deps_to_remove = [];
214
+ if (dep.render_id != null) {
215
+ dependencies.forEach((other_dep, i) => {
216
+ if (other_dep.rendered_in === dep.render_id) {
217
+ deps_to_remove.push(i);
218
+ }
219
+ });
220
+ }
221
+ deps_to_remove.reverse().forEach((i) => {
222
+ dependencies.splice(i, 1);
223
+ });
205
224
  let payload = {
206
225
  fn_index: dep_index,
207
226
  data: await Promise.all(
@@ -294,7 +313,7 @@ async function trigger_api_call(dep_index, trigger_id = null, event_data = null)
294
313
  );
295
314
  } catch (e) {
296
315
  const fn_index = 0;
297
- if (!app.stream_status.open)
316
+ if (app.closed)
298
317
  return;
299
318
  messages = [
300
319
  new_message("Error", String(e), fn_index, "error"),
@@ -341,15 +360,6 @@ async function trigger_api_call(dep_index, trigger_id = null, event_data = null)
341
360
  let render_layout = data.layout;
342
361
  let _dependencies = data.dependencies;
343
362
  let render_id = data.render_id;
344
- let deps_to_remove = [];
345
- dependencies.forEach((dep2, i) => {
346
- if (dep2.rendered_in === render_id) {
347
- deps_to_remove.push(i);
348
- }
349
- });
350
- deps_to_remove.reverse().forEach((i) => {
351
- dependencies.splice(i, 1);
352
- });
353
363
  _dependencies.forEach((dep2) => {
354
364
  dependencies.push(dep2);
355
365
  });
@@ -406,11 +416,15 @@ async function trigger_api_call(dep_index, trigger_id = null, event_data = null)
406
416
  ];
407
417
  }
408
418
  if (status.stage === "complete" || status.stage === "generating") {
419
+ const deps_triggered_by_state = /* @__PURE__ */ new Set();
409
420
  status.changed_state_ids?.forEach((id) => {
410
421
  dependencies.filter((dep2) => dep2.targets.some(([_id, _2]) => _id === id)).forEach((dep2) => {
411
- wait_then_trigger_api_call(dep2.id, payload2.trigger_id);
422
+ deps_triggered_by_state.add(dep2);
412
423
  });
413
424
  });
425
+ deps_triggered_by_state.forEach((dep2) => {
426
+ wait_then_trigger_api_call(dep2.id, payload2.trigger_id);
427
+ });
414
428
  }
415
429
  if (status.stage === "complete") {
416
430
  dependencies.forEach(async (dep2) => {
@@ -564,7 +578,7 @@ function update_status(id, status, data) {
564
578
  function set_status(statuses) {
565
579
  let updates = [];
566
580
  Object.entries(statuses).forEach(([id, loading_status2]) => {
567
- if (!app.stream_status.open && loading_status2.status === "error") {
581
+ if (app.closed && loading_status2.status === "error") {
568
582
  return;
569
583
  }
570
584
  let dependency = dependencies.find(
@@ -66,6 +66,7 @@ export interface Dependency {
66
66
  final_event: Payload | null;
67
67
  show_api: boolean;
68
68
  rendered_in: number | null;
69
+ render_id: number | null;
69
70
  connection: "stream" | "sse";
70
71
  time_limit: number;
71
72
  stream_every: number;
package/package.json CHANGED
@@ -1,67 +1,67 @@
1
1
  {
2
2
  "name": "@gradio/core",
3
- "version": "0.12.0",
3
+ "version": "0.12.1",
4
4
  "type": "module",
5
5
  "devDependencies": {
6
6
  "@gradio/accordion": "^0.5.8",
7
+ "@gradio/annotatedimage": "^0.9.10",
7
8
  "@gradio/atoms": "^0.13.3",
8
- "@gradio/audio": "^0.17.3",
9
+ "@gradio/audio": "^0.17.4",
9
10
  "@gradio/box": "^0.2.12",
10
- "@gradio/annotatedimage": "^0.9.9",
11
- "@gradio/button": "^0.4.8",
12
- "@gradio/chatbot": "^0.24.2",
13
- "@gradio/checkbox": "^0.4.14",
11
+ "@gradio/button": "^0.4.9",
12
+ "@gradio/chatbot": "^0.24.3",
14
13
  "@gradio/checkboxgroup": "^0.6.14",
15
- "@gradio/client": "^1.13.0",
16
- "@gradio/code": "^0.11.1",
14
+ "@gradio/client": "^1.13.1",
15
+ "@gradio/checkbox": "^0.4.14",
16
+ "@gradio/code": "^0.11.2",
17
17
  "@gradio/colorpicker": "^0.4.14",
18
- "@gradio/dataset": "^0.4.8",
19
- "@gradio/datetime": "^0.3.6",
20
18
  "@gradio/column": "^0.2.0",
21
- "@gradio/downloadbutton": "^0.3.8",
22
- "@gradio/dataframe": "^0.16.4",
23
- "@gradio/fallback": "^0.4.14",
24
- "@gradio/file": "^0.12.8",
19
+ "@gradio/dataset": "^0.4.9",
20
+ "@gradio/dataframe": "^0.16.5",
21
+ "@gradio/datetime": "^0.3.6",
22
+ "@gradio/downloadbutton": "^0.3.9",
25
23
  "@gradio/dropdown": "^0.9.13",
24
+ "@gradio/fallback": "^0.4.14",
25
+ "@gradio/file": "^0.12.9",
26
+ "@gradio/fileexplorer": "^0.5.20",
27
+ "@gradio/gallery": "^0.15.9",
26
28
  "@gradio/form": "^0.2.12",
27
- "@gradio/fileexplorer": "^0.5.19",
28
- "@gradio/gallery": "^0.15.8",
29
29
  "@gradio/group": "^0.2.0",
30
- "@gradio/html": "^0.6.5",
31
- "@gradio/icons": "^0.10.0",
32
30
  "@gradio/highlightedtext": "^0.8.14",
33
- "@gradio/imageeditor": "^0.12.10",
34
- "@gradio/image": "^0.21.3",
31
+ "@gradio/icons": "^0.10.0",
32
+ "@gradio/html": "^0.6.5",
33
+ "@gradio/image": "^0.21.4",
34
+ "@gradio/imageeditor": "^0.12.11",
35
35
  "@gradio/json": "^0.5.14",
36
36
  "@gradio/label": "^0.5.6",
37
37
  "@gradio/browserstate": "^0.3.1",
38
38
  "@gradio/markdown": "^0.13.4",
39
- "@gradio/multimodaltextbox": "^0.9.9",
40
- "@gradio/model3d": "^0.14.3",
39
+ "@gradio/model3d": "^0.14.4",
40
+ "@gradio/multimodaltextbox": "^0.9.10",
41
41
  "@gradio/nativeplot": "^0.5.8",
42
42
  "@gradio/paramviewer": "^0.7.2",
43
- "@gradio/plot": "^0.9.9",
44
43
  "@gradio/number": "^0.5.14",
44
+ "@gradio/plot": "^0.9.9",
45
45
  "@gradio/radio": "^0.6.14",
46
- "@gradio/simpledropdown": "^0.3.14",
47
46
  "@gradio/row": "^0.2.1",
48
- "@gradio/simpleimage": "^0.8.19",
47
+ "@gradio/sidebar": "^0.1.6",
48
+ "@gradio/simpleimage": "^0.8.20",
49
49
  "@gradio/simpletextbox": "^0.3.14",
50
- "@gradio/sidebar": "^0.1.5",
51
- "@gradio/sketchbox": "^0.6.0",
50
+ "@gradio/simpledropdown": "^0.3.14",
51
+ "@gradio/sketchbox": "^0.6.1",
52
52
  "@gradio/slider": "^0.6.2",
53
53
  "@gradio/state": "^0.1.2",
54
- "@gradio/statustracker": "^0.10.4",
55
- "@gradio/tabitem": "^0.4.2",
56
54
  "@gradio/tabs": "^0.4.2",
55
+ "@gradio/tabitem": "^0.4.2",
56
+ "@gradio/textbox": "^0.10.4",
57
+ "@gradio/statustracker": "^0.10.4",
57
58
  "@gradio/theme": "^0.4.0",
58
59
  "@gradio/timer": "^0.4.4",
59
- "@gradio/upload": "^0.15.3",
60
- "@gradio/textbox": "^0.10.4",
61
- "@gradio/uploadbutton": "^0.8.8",
60
+ "@gradio/upload": "^0.15.4",
61
+ "@gradio/uploadbutton": "^0.8.9",
62
62
  "@gradio/utils": "^0.10.1",
63
- "@gradio/video": "^0.14.3",
64
- "@gradio/wasm": "^0.17.3"
63
+ "@gradio/video": "^0.14.4",
64
+ "@gradio/wasm": "^0.17.4"
65
65
  },
66
66
  "msw": {
67
67
  "workerDirectory": "public"
package/src/Blocks.svelte CHANGED
@@ -125,7 +125,11 @@
125
125
 
126
126
  export let render_complete = false;
127
127
  async function handle_update(data: any, fn_index: number): Promise<void> {
128
- const outputs = dependencies.find((dep) => dep.id == fn_index)!.outputs;
128
+ const dep = dependencies.find((dep) => dep.id === fn_index);
129
+ if (!dep) {
130
+ return;
131
+ }
132
+ const outputs = dep.outputs;
129
133
 
130
134
  const meta_updates = data?.map((value: any, i: number) => {
131
135
  return {
@@ -263,7 +267,11 @@
263
267
  trigger_id: number | null = null,
264
268
  event_data: unknown = null
265
269
  ): Promise<void> {
266
- let dep = dependencies.find((dep) => dep.id === dep_index)!;
270
+ const _dep = dependencies.find((dep) => dep.id === dep_index);
271
+ if (_dep === undefined) {
272
+ return;
273
+ }
274
+ const dep = _dep;
267
275
  if (inputs_waiting.length > 0) {
268
276
  for (const input of inputs_waiting) {
269
277
  if (dep.inputs.includes(input)) {
@@ -278,6 +286,18 @@
278
286
  dep.pending_request = true;
279
287
  }
280
288
 
289
+ let deps_to_remove: number[] = [];
290
+ if (dep.render_id != null) {
291
+ dependencies.forEach((other_dep, i) => {
292
+ if (other_dep.rendered_in === dep.render_id) {
293
+ deps_to_remove.push(i);
294
+ }
295
+ });
296
+ }
297
+ deps_to_remove.reverse().forEach((i) => {
298
+ dependencies.splice(i, 1);
299
+ });
300
+
281
301
  let payload: Payload = {
282
302
  fn_index: dep_index,
283
303
  data: await Promise.all(
@@ -387,7 +407,7 @@
387
407
  );
388
408
  } catch (e) {
389
409
  const fn_index = 0; // Mock value for fn_index
390
- if (!app.stream_status.open) return; // when a user navigates away in multipage app.
410
+ if (app.closed) return; // when a user navigates away in multipage app.
391
411
  messages = [
392
412
  new_message("Error", String(e), fn_index, "error"),
393
413
  ...messages
@@ -438,15 +458,6 @@
438
458
  let _dependencies: Dependency[] = data.dependencies;
439
459
  let render_id = data.render_id;
440
460
 
441
- let deps_to_remove: number[] = [];
442
- dependencies.forEach((dep, i) => {
443
- if (dep.rendered_in === render_id) {
444
- deps_to_remove.push(i);
445
- }
446
- });
447
- deps_to_remove.reverse().forEach((i) => {
448
- dependencies.splice(i, 1);
449
- });
450
461
  _dependencies.forEach((dep) => {
451
462
  dependencies.push(dep);
452
463
  });
@@ -529,13 +540,17 @@
529
540
  }
530
541
 
531
542
  if (status.stage === "complete" || status.stage === "generating") {
543
+ const deps_triggered_by_state: Set<Dependency> = new Set();
532
544
  status.changed_state_ids?.forEach((id) => {
533
545
  dependencies
534
546
  .filter((dep) => dep.targets.some(([_id, _]) => _id === id))
535
547
  .forEach((dep) => {
536
- wait_then_trigger_api_call(dep.id, payload.trigger_id);
548
+ deps_triggered_by_state.add(dep);
537
549
  });
538
550
  });
551
+ deps_triggered_by_state.forEach((dep) => {
552
+ wait_then_trigger_api_call(dep.id, payload.trigger_id);
553
+ });
539
554
  }
540
555
  if (status.stage === "complete") {
541
556
  dependencies.forEach(async (dep) => {
@@ -719,7 +734,7 @@
719
734
  value: LoadingStatus;
720
735
  }[] = [];
721
736
  Object.entries(statuses).forEach(([id, loading_status]) => {
722
- if (!app.stream_status.open && loading_status.status === "error") {
737
+ if (app.closed && loading_status.status === "error") {
723
738
  // when a user navigates away in multipage app.
724
739
  return;
725
740
  }
package/src/types.ts CHANGED
@@ -71,6 +71,7 @@ export interface Dependency {
71
71
  final_event: Payload | null;
72
72
  show_api: boolean;
73
73
  rendered_in: number | null;
74
+ render_id: number | null;
74
75
  connection: "stream" | "sse";
75
76
  time_limit: number;
76
77
  stream_every: number;