From cad537aac57998560c9f44a37499be734de66349 Mon Sep 17 00:00:00 2001 From: pngwn Date: Thu, 19 Oct 2023 18:03:06 +0100 Subject: [PATCH 1/2] pass props to example components and to example outputs (#6014) * pass props to example components and to example outputs * add changeset * make util less egenric/ more useful * fix demo * fix demo * fix * fix test * Fix test --------- Co-authored-by: gradio-pr-bot Co-authored-by: freddyaboulton --- .changeset/green-olives-shake.md | 6 ++++++ demo/examples_component/run.ipynb | 2 +- demo/examples_component/run.py | 10 +++++---- gradio/blocks.py | 7 ++----- gradio/components/dataset.py | 22 ++++++++++++++++---- gradio/helpers.py | 11 +++++++++- gradio/utils.py | 9 ++++++++ js/dataset/Index.svelte | 3 +++ test/test_components.py | 12 ++++++----- test/test_helpers.py | 34 +++++++++++++++++++++++++++++-- 10 files changed, 94 insertions(+), 22 deletions(-) create mode 100644 .changeset/green-olives-shake.md diff --git a/.changeset/green-olives-shake.md b/.changeset/green-olives-shake.md new file mode 100644 index 0000000000000..4ca71c8a26523 --- /dev/null +++ b/.changeset/green-olives-shake.md @@ -0,0 +1,6 @@ +--- +"@gradio/dataset": minor +"gradio": minor +--- + +feat:pass props to example components and to example outputs diff --git a/demo/examples_component/run.ipynb b/demo/examples_component/run.ipynb index ec52d7767f2f9..090af8fc0feb0 100644 --- a/demo/examples_component/run.ipynb +++ b/demo/examples_component/run.ipynb @@ -1 +1 @@ -{"cells": [{"cell_type": "markdown", "id": "302934307671667531413257853548643485645", "metadata": {}, "source": ["# Gradio Demo: examples_component"]}, {"cell_type": "code", "execution_count": null, "id": "272996653310673477252411125948039410165", "metadata": {}, "outputs": [], "source": ["!pip install -q gradio "]}, {"cell_type": "code", "execution_count": null, "id": "288918539441861185822528903084949547379", "metadata": {}, "outputs": [], "source": ["# Downloading files from the demo repo\n", "import os\n", "os.mkdir('images')\n", "!wget -q -O images/cheetah1.jpg https://github.com/gradio-app/gradio/raw/main/demo/examples_component/images/cheetah1.jpg\n", "!wget -q -O images/lion.jpg https://github.com/gradio-app/gradio/raw/main/demo/examples_component/images/lion.jpg\n", "!wget -q -O images/lion.webp https://github.com/gradio-app/gradio/raw/main/demo/examples_component/images/lion.webp\n", "!wget -q -O images/logo.png https://github.com/gradio-app/gradio/raw/main/demo/examples_component/images/logo.png"]}, {"cell_type": "code", "execution_count": null, "id": "44380577570523278879349135829904343037", "metadata": {}, "outputs": [], "source": ["import gradio as gr\n", "import os\n", "\n", "def flip(i):\n", " return i.rotate(180)\n", "\n", "with gr.Blocks() as demo:\n", " with gr.Row():\n", " with gr.Column():\n", " img_i = gr.Image(label=\"Input Image\", type=\"pil\")\n", " with gr.Column():\n", " img_o = gr.Image(label=\"Output Image\")\n", " with gr.Row():\n", " btn = gr.Button(value=\"Flip Image\")\n", " btn.click(flip, inputs=[img_i], outputs=[img_o])\n", "\n", " gr.Examples(\n", " [ \n", " os.path.join(os.path.abspath(''), \"images/cheetah1.jpg\"),\n", " os.path.join(os.path.abspath(''), \"images/lion.jpg\"),\n", " ],\n", " img_i,\n", " img_o,\n", " flip\n", " )\n", " \n", "demo.launch()"]}], "metadata": {}, "nbformat": 4, "nbformat_minor": 5} \ No newline at end of file +{"cells": [{"cell_type": "markdown", "id": "302934307671667531413257853548643485645", "metadata": {}, "source": ["# Gradio Demo: examples_component"]}, {"cell_type": "code", "execution_count": null, "id": "272996653310673477252411125948039410165", "metadata": {}, "outputs": [], "source": ["!pip install -q gradio "]}, {"cell_type": "code", "execution_count": null, "id": "288918539441861185822528903084949547379", "metadata": {}, "outputs": [], "source": ["# Downloading files from the demo repo\n", "import os\n", "os.mkdir('images')\n", "!wget -q -O images/cheetah1.jpg https://github.com/gradio-app/gradio/raw/main/demo/examples_component/images/cheetah1.jpg\n", "!wget -q -O images/lion.jpg https://github.com/gradio-app/gradio/raw/main/demo/examples_component/images/lion.jpg\n", "!wget -q -O images/lion.webp https://github.com/gradio-app/gradio/raw/main/demo/examples_component/images/lion.webp\n", "!wget -q -O images/logo.png https://github.com/gradio-app/gradio/raw/main/demo/examples_component/images/logo.png"]}, {"cell_type": "code", "execution_count": null, "id": "44380577570523278879349135829904343037", "metadata": {}, "outputs": [], "source": ["import gradio as gr\n", "import os\n", "\n", "\n", "def flip(i):\n", " return i.rotate(180)\n", "\n", "\n", "with gr.Blocks() as demo:\n", " with gr.Row():\n", " with gr.Column():\n", " img_i = gr.Image(label=\"Input Image\", type=\"pil\")\n", " with gr.Column():\n", " img_o = gr.Image(label=\"Output Image\")\n", " with gr.Row():\n", " btn = gr.Button(value=\"Flip Image\")\n", " btn.click(flip, inputs=[img_i], outputs=[img_o])\n", "\n", " gr.Examples(\n", " [\n", " os.path.join(os.path.abspath(''), \"images/cheetah1.jpg\"),\n", " os.path.join(os.path.abspath(''), \"images/lion.jpg\"),\n", " ],\n", " img_i,\n", " img_o,\n", " flip,\n", " )\n", "\n", "demo.launch()\n"]}], "metadata": {}, "nbformat": 4, "nbformat_minor": 5} \ No newline at end of file diff --git a/demo/examples_component/run.py b/demo/examples_component/run.py index 4b05d826f4903..60f615a30e4ef 100644 --- a/demo/examples_component/run.py +++ b/demo/examples_component/run.py @@ -1,9 +1,11 @@ import gradio as gr import os + def flip(i): return i.rotate(180) + with gr.Blocks() as demo: with gr.Row(): with gr.Column(): @@ -15,13 +17,13 @@ def flip(i): btn.click(flip, inputs=[img_i], outputs=[img_o]) gr.Examples( - [ + [ os.path.join(os.path.dirname(__file__), "images/cheetah1.jpg"), os.path.join(os.path.dirname(__file__), "images/lion.jpg"), ], img_i, img_o, - flip + flip, ) - -demo.launch() \ No newline at end of file + +demo.launch() diff --git a/gradio/blocks.py b/gradio/blocks.py index 07d39a750faa8..c2b21db201353 100644 --- a/gradio/blocks.py +++ b/gradio/blocks.py @@ -588,11 +588,8 @@ def get_block_instance(id: int) -> Block: else: raise ValueError(f"Cannot find block with id {id}") cls = component_or_layout_class(block_config["type"]) - block_config["props"].pop("type", None) - block_config["props"].pop("name", None) - block_config["props"].pop("selectable", None) - block_config["props"].pop("streamable", None) - block_config["props"].pop("server_fns", None) + + block_config["props"] = utils.recover_kwargs(block_config["props"]) # If a Gradio app B is loaded into a Gradio app A, and B itself loads a # Gradio app C, then the root_urls of the components in A need to be the diff --git a/gradio/components/dataset.py b/gradio/components/dataset.py index 7fd262151d56f..8e5fd1b524f6b 100644 --- a/gradio/components/dataset.py +++ b/gradio/components/dataset.py @@ -6,6 +6,7 @@ from gradio_client.documentation import document, set_documentation_group +import gradio.utils as utils from gradio.components.base import ( Component, get_component_instance, @@ -66,6 +67,13 @@ def __init__( self.scale = scale self.min_width = min_width self._components = [get_component_instance(c) for c in components] + self.component_props = [ + utils.recover_kwargs( + component.get_config(), + ["value"], + ) + for component in self._components + ] # Narrow type to Component assert all( @@ -95,10 +103,16 @@ def skip_api(self): def get_config(self): config = super().get_config() - config["components"] = [ - component.get_block_name() for component in self._components - ] - config["component_ids"] = [component._id for component in self._components] + + config["components"] = [] + config["component_props"] = self.component_props + config["component_ids"] = [] + + for component in self._components: + config["components"].append(component.get_block_name()) + + config["component_ids"].append(component._id) + return config def preprocess(self, x: Any) -> Any: diff --git a/gradio/helpers.py b/gradio/helpers.py index 893a789260f7f..051f43d830bdc 100644 --- a/gradio/helpers.py +++ b/gradio/helpers.py @@ -259,7 +259,16 @@ def create(self) -> None: async def load_example(example_id): processed_example = self.non_none_processed_examples[example_id] - return utils.resolve_singleton(processed_example) + examples = utils.resolve_singleton(processed_example) + + return ( + update(value=examples, **self.dataset.component_props[0]) + if not isinstance(examples, list) + else [ + update(value=ex, **self.dataset.component_props[i]) + for i, ex in enumerate(examples) + ] + ) if Context.root_block: self.load_input_event = self.dataset.click( diff --git a/gradio/utils.py b/gradio/utils.py index 20494fccdd955..ef246afe4897e 100644 --- a/gradio/utils.py +++ b/gradio/utils.py @@ -950,3 +950,12 @@ def find_user_stack_level() -> int: frame = frame.f_back n += 1 return n + + +def recover_kwargs(config: dict, additional_keys_to_ignore: list[str] | None = None): + not_kwargs = ["type", "name", "selectable", "server_fns", "streamable"] + return { + k: v + for k, v in config.items() + if k not in not_kwargs and k not in (additional_keys_to_ignore or []) + } diff --git a/js/dataset/Index.svelte b/js/dataset/Index.svelte index cf3fbb2e2e48f..fd89cf0fb9eea 100644 --- a/js/dataset/Index.svelte +++ b/js/dataset/Index.svelte @@ -4,6 +4,7 @@ import type { Gradio, SelectData } from "@gradio/utils"; import { get_fetchable_url_or_file } from "@gradio/upload"; export let components: string[]; + export let component_props: Record[]; export let component_map: Map< string, Promise<{ @@ -141,6 +142,7 @@ {#if component_meta.length && component_map.get(components[0])} Date: Thu, 19 Oct 2023 13:11:00 -0400 Subject: [PATCH 2/2] Format js in v4 branch (#6016) * Format v4 branch js * add changeset * lint --------- Co-authored-by: gradio-pr-bot --- .changeset/five-islands-joke.md | 48 + .changeset/pre.json | 250 ++-- .config/basevite.config.ts | 4 +- client/js/src/client.ts | 8 +- js/_website/src/app.html | 5 +- .../src/lib/components/CopyButton.svelte | 31 +- js/_website/src/lib/components/DocsNav.svelte | 5 +- .../src/lib/components/FunctionDoc.svelte | 1 - .../lib/components/icons/DownloadIcon.svelte | 6 +- js/_website/src/routes/+layout.svelte | 18 +- .../[[version]]/docs/[doc]/+page.server.ts | 21 +- .../[[version]]/docs/[doc]/+page.svelte | 27 +- .../docs/components/+page.server.ts | 11 +- .../[[version]]/docs/components/+page.svelte | 35 +- .../[[version]]/docs/flagging/+page.server.ts | 11 +- .../[[version]]/docs/flagging/+page.svelte | 17 +- .../docs/js-client/+page.server.ts | 11 +- .../[[version]]/docs/js-client/+page.svelte | 6 +- .../docs/python-client/+page.server.ts | 5 +- .../docs/python-client/+page.svelte | 23 +- .../[[version]]/docs/themes/+page.server.ts | 13 +- .../[[version]]/docs/themes/+page.svelte | 17 +- .../guides/[guide]/+page.server.ts | 22 +- .../[[version]]/guides/[guide]/+page.svelte | 65 +- js/accordion/package.json | 2 +- js/annotatedimage/package.json | 2 +- js/app/build_plugins.ts | 2 - js/app/src/Login.stories.svelte | 4 +- js/app/src/api_docs/CodeSnippets.svelte | 9 +- js/app/src/api_docs/ResponseObject.svelte | 8 +- js/app/src/lang/ckb.json | 214 ++-- js/app/src/lang/eu.json | 32 +- js/audio/package.json | 2 +- js/box/package.json | 2 +- js/chatbot/Chatbot.stories.svelte | 28 +- js/chatbot/package.json | 2 +- js/checkbox/package.json | 2 +- js/checkbox/shared/Checkbox.svelte | 4 +- js/checkboxgroup/package.json | 2 +- js/checkboxgroup/shared/Checkboxgroup.svelte | 4 +- js/code/package.json | 2 +- js/code/shared/Code.svelte | 30 +- js/colorpicker/package.json | 2 +- js/column/package.json | 2 +- js/dataframe/package.json | 2 +- js/dataset/package.json | 2 +- js/dropdown/package.json | 2 +- js/dropdown/shared/Multiselect.svelte | 6 +- js/fallback/package.json | 2 +- js/file/package.json | 2 +- js/fileexplorer/package.json | 2 +- js/form/package.json | 2 +- js/gallery/package.json | 2 +- js/gallery/shared/Gallery.svelte | 2 +- js/group/package.json | 2 +- js/highlightedtext/package.json | 2 +- js/html/package.json | 2 +- js/image/package.json | 2 +- js/image/shared/Webcam.svelte | 4 +- js/json/package.json | 2 +- js/label/package.json | 2 +- js/markdown/package.json | 2 +- js/model3D/package.json | 2 +- js/number/package.json | 2 +- js/plot/package.json | 2 +- js/preview/package.json | 80 +- .../test/imageslider/frontend/package.json | 52 +- .../test/newtext/frontend/example/index.ts | 2 +- .../newtext/frontend/example/newtext.svelte | 10 +- .../newtext/frontend/interactive/index.ts | 2 +- .../frontend/interactive/newtext.svelte | 10 +- js/preview/test/newtext/frontend/package.json | 38 +- .../test/newtext/frontend/shared/index.ts | 2 +- .../newtext/frontend/shared/newtext.svelte | 10 +- .../test/newtext/frontend/static/index.ts | 2 +- .../newtext/frontend/static/newtext.svelte | 10 +- js/radio/package.json | 2 +- js/row/package.json | 2 +- js/slider/package.json | 2 +- js/state/package.json | 2 +- .../design-tokens/Colors.stories.svelte | 2 +- .../design-tokens/Icons.stories.svelte | 4 +- .../design-tokens/Radii.stories.svelte | 2 +- .../design-tokens/Spacing.stories.svelte | 2 +- .../design-tokens/TextSize.stories.svelte | 2 +- js/tabitem/package.json | 2 +- js/tabs/package.json | 2 +- js/textbox/package.json | 2 +- js/textbox/shared/Textbox.svelte | 6 +- js/uploadbutton/package.json | 2 +- js/video/package.json | 2 +- test/test_files/xray_config.json | 951 +++++++------- test/test_files/xray_config_diff_ids.json | 951 +++++++------- test/test_files/xray_config_wrong.json | 1098 ++++++++--------- 94 files changed, 2173 insertions(+), 2144 deletions(-) create mode 100644 .changeset/five-islands-joke.md diff --git a/.changeset/five-islands-joke.md b/.changeset/five-islands-joke.md new file mode 100644 index 0000000000000..d5a990ab289aa --- /dev/null +++ b/.changeset/five-islands-joke.md @@ -0,0 +1,48 @@ +--- +"@gradio/accordion": minor +"@gradio/annotatedimage": minor +"@gradio/app": minor +"@gradio/audio": minor +"@gradio/box": minor +"@gradio/chatbot": minor +"@gradio/checkbox": minor +"@gradio/checkboxgroup": minor +"@gradio/client": minor +"@gradio/code": minor +"@gradio/colorpicker": minor +"@gradio/column": minor +"@gradio/dataframe": minor +"@gradio/dataset": minor +"@gradio/dropdown": minor +"@gradio/fallback": minor +"@gradio/file": minor +"@gradio/fileexplorer": minor +"@gradio/form": minor +"@gradio/gallery": minor +"@gradio/group": minor +"@gradio/highlightedtext": minor +"@gradio/html": minor +"@gradio/image": minor +"@gradio/json": minor +"@gradio/label": minor +"@gradio/markdown": minor +"@gradio/model3d": minor +"@gradio/number": minor +"@gradio/plot": minor +"@gradio/preview": minor +"@gradio/radio": minor +"@gradio/row": minor +"@gradio/slider": minor +"@gradio/state": minor +"@gradio/tabitem": minor +"@gradio/tabs": minor +"@gradio/textbox": minor +"@gradio/uploadbutton": minor +"@gradio/video": minor +"gradio": minor +"imageslider": minor +"newtext": minor +"website": minor +--- + +feat:Format js in v4 branch diff --git a/.changeset/pre.json b/.changeset/pre.json index e1590e565189a..0745f399daf94 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -1,127 +1,127 @@ { - "mode": "pre", - "tag": "beta", - "initialVersions": { - "@gradio/client": "0.3.1", - "gradio_client": "0.5.0", - "gradio": "3.43.2", - "@gradio/cdn-test": "0.0.1", - "@gradio/spaces-test": "0.0.1", - "website": "0.4.0", - "@gradio/accordion": "0.0.4", - "@gradio/annotatedimage": "0.1.2", - "@gradio/app": "1.4.3", - "@gradio/atoms": "0.1.2", - "@gradio/audio": "0.3.2", - "@gradio/box": "0.0.4", - "@gradio/button": "0.1.3", - "@gradio/chatbot": "0.3.1", - "@gradio/checkbox": "0.1.3", - "@gradio/checkboxgroup": "0.1.2", - "@gradio/code": "0.1.2", - "@gradio/colorpicker": "0.1.2", - "@gradio/column": "0.0.1", - "@gradio/dataframe": "0.2.2", - "@gradio/dropdown": "0.1.3", - "@gradio/file": "0.1.2", - "@gradio/form": "0.0.5", - "@gradio/gallery": "0.3.2", - "@gradio/group": "0.0.1", - "@gradio/highlightedtext": "0.2.3", - "@gradio/html": "0.0.4", - "@gradio/icons": "0.1.0", - "@gradio/image": "0.2.2", - "@gradio/json": "0.0.5", - "@gradio/label": "0.1.2", - "@gradio/lite": "0.3.1", - "@gradio/markdown": "0.2.0", - "@gradio/model3d": "0.2.1", - "@gradio/number": "0.2.2", - "@gradio/plot": "0.1.2", - "@gradio/radio": "0.1.2", - "@gradio/row": "0.0.1", - "@gradio/slider": "0.1.2", - "@gradio/state": "0.0.1", - "@gradio/statustracker": "0.2.0", - "@gradio/tabitem": "0.0.4", - "@gradio/tabs": "0.0.5", - "@gradio/textbox": "0.2.0", - "@gradio/theme": "0.1.0", - "@gradio/tooltip": "0.0.1", - "@gradio/tootils": "0.0.2", - "@gradio/upload": "0.2.1", - "@gradio/uploadbutton": "0.0.5", - "@gradio/utils": "0.1.1", - "@gradio/video": "0.0.6", - "@gradio/wasm": "0.0.1", - "@gradio/fallback": "0.1.1", - "@gradio/preview": "0.0.2", - "@gradio/dataset": "0.0.1", - "@gradio/fileexplorer": "0.2.2", - "imageslider": "0.2.0", - "newnewtext": "0.1.2", - "newtext": "0.0.1", - "@gradio/storybook": "0.0.1" - }, - "changesets": [ - "afraid-cougars-rescue", - "bright-planes-divide", - "bright-yaks-wink", - "cold-hoops-heal", - "cold-lemons-roll", - "crazy-dancers-allow", - "cute-crabs-know", - "dark-cups-see", - "dirty-ghosts-tickle", - "dry-points-join", - "easy-mirrors-retire", - "eleven-steaks-tan", - "empty-bobcats-judge", - "flat-experts-wink", - "fresh-ears-pump", - "gentle-parks-fry", - "great-rice-grab", - "green-tips-read", - "heavy-animals-think", - "hip-drinks-bow", - "hot-icons-film", - "hungry-melons-pump", - "icy-cars-boil", - "large-banks-push", - "lazy-aliens-drive", - "lovely-news-speak", - "modern-forks-march", - "nasty-dryers-show", - "nice-actors-write", - "old-heads-give", - "plain-groups-win", - "plenty-teeth-clap", - "public-chairs-chew", - "purple-jokes-shake", - "real-spoons-pick", - "sad-ears-sink", - "sad-eels-sink", - "sad-icons-relax", - "short-clouds-see", - "silver-beers-refuse", - "slick-bats-study", - "slick-pants-stand", - "smart-groups-study", - "some-shoes-relate", - "strange-lizards-boil", - "strong-peas-tell", - "tame-chairs-tan", - "tasty-candies-type", - "three-trams-sniff", - "tough-parrots-relate", - "true-bugs-shine", - "twenty-dryers-wave", - "twenty-gifts-tickle", - "two-games-dress", - "two-mirrors-nail", - "upset-crews-learn", - "vast-terms-rhyme", - "wet-places-hunt", - "wise-beans-itch" - ] + "mode": "pre", + "tag": "beta", + "initialVersions": { + "@gradio/client": "0.3.1", + "gradio_client": "0.5.0", + "gradio": "3.43.2", + "@gradio/cdn-test": "0.0.1", + "@gradio/spaces-test": "0.0.1", + "website": "0.4.0", + "@gradio/accordion": "0.0.4", + "@gradio/annotatedimage": "0.1.2", + "@gradio/app": "1.4.3", + "@gradio/atoms": "0.1.2", + "@gradio/audio": "0.3.2", + "@gradio/box": "0.0.4", + "@gradio/button": "0.1.3", + "@gradio/chatbot": "0.3.1", + "@gradio/checkbox": "0.1.3", + "@gradio/checkboxgroup": "0.1.2", + "@gradio/code": "0.1.2", + "@gradio/colorpicker": "0.1.2", + "@gradio/column": "0.0.1", + "@gradio/dataframe": "0.2.2", + "@gradio/dropdown": "0.1.3", + "@gradio/file": "0.1.2", + "@gradio/form": "0.0.5", + "@gradio/gallery": "0.3.2", + "@gradio/group": "0.0.1", + "@gradio/highlightedtext": "0.2.3", + "@gradio/html": "0.0.4", + "@gradio/icons": "0.1.0", + "@gradio/image": "0.2.2", + "@gradio/json": "0.0.5", + "@gradio/label": "0.1.2", + "@gradio/lite": "0.3.1", + "@gradio/markdown": "0.2.0", + "@gradio/model3d": "0.2.1", + "@gradio/number": "0.2.2", + "@gradio/plot": "0.1.2", + "@gradio/radio": "0.1.2", + "@gradio/row": "0.0.1", + "@gradio/slider": "0.1.2", + "@gradio/state": "0.0.1", + "@gradio/statustracker": "0.2.0", + "@gradio/tabitem": "0.0.4", + "@gradio/tabs": "0.0.5", + "@gradio/textbox": "0.2.0", + "@gradio/theme": "0.1.0", + "@gradio/tooltip": "0.0.1", + "@gradio/tootils": "0.0.2", + "@gradio/upload": "0.2.1", + "@gradio/uploadbutton": "0.0.5", + "@gradio/utils": "0.1.1", + "@gradio/video": "0.0.6", + "@gradio/wasm": "0.0.1", + "@gradio/fallback": "0.1.1", + "@gradio/preview": "0.0.2", + "@gradio/dataset": "0.0.1", + "@gradio/fileexplorer": "0.2.2", + "imageslider": "0.2.0", + "newnewtext": "0.1.2", + "newtext": "0.0.1", + "@gradio/storybook": "0.0.1" + }, + "changesets": [ + "afraid-cougars-rescue", + "bright-planes-divide", + "bright-yaks-wink", + "cold-hoops-heal", + "cold-lemons-roll", + "crazy-dancers-allow", + "cute-crabs-know", + "dark-cups-see", + "dirty-ghosts-tickle", + "dry-points-join", + "easy-mirrors-retire", + "eleven-steaks-tan", + "empty-bobcats-judge", + "flat-experts-wink", + "fresh-ears-pump", + "gentle-parks-fry", + "great-rice-grab", + "green-tips-read", + "heavy-animals-think", + "hip-drinks-bow", + "hot-icons-film", + "hungry-melons-pump", + "icy-cars-boil", + "large-banks-push", + "lazy-aliens-drive", + "lovely-news-speak", + "modern-forks-march", + "nasty-dryers-show", + "nice-actors-write", + "old-heads-give", + "plain-groups-win", + "plenty-teeth-clap", + "public-chairs-chew", + "purple-jokes-shake", + "real-spoons-pick", + "sad-ears-sink", + "sad-eels-sink", + "sad-icons-relax", + "short-clouds-see", + "silver-beers-refuse", + "slick-bats-study", + "slick-pants-stand", + "smart-groups-study", + "some-shoes-relate", + "strange-lizards-boil", + "strong-peas-tell", + "tame-chairs-tan", + "tasty-candies-type", + "three-trams-sniff", + "tough-parrots-relate", + "true-bugs-shine", + "twenty-dryers-wave", + "twenty-gifts-tickle", + "two-games-dress", + "two-mirrors-nail", + "upset-crews-learn", + "vast-terms-rhyme", + "wet-places-hunt", + "wise-beans-itch" + ] } diff --git a/.config/basevite.config.ts b/.config/basevite.config.ts index 5e12d3264312d..378aa1bf963b8 100644 --- a/.config/basevite.config.ts +++ b/.config/basevite.config.ts @@ -21,7 +21,9 @@ const theme_token_path = join( "tokens.css" ); -const version = JSON.parse(readFileSync(version_path, { encoding: 'utf-8' })).version.trim().replace(/\./g, '-'); +const version = JSON.parse(readFileSync(version_path, { encoding: "utf-8" })) + .version.trim() + .replace(/\./g, "-"); //@ts-ignore export default defineConfig(({ mode }) => { diff --git a/client/js/src/client.ts b/client/js/src/client.ts index f3a8b8ad4e4b6..c7140909c55ae 100644 --- a/client/js/src/client.ts +++ b/client/js/src/client.ts @@ -432,11 +432,9 @@ export function api_factory( let payload: Payload; let complete: false | Record = false; const listener_map: ListenerMap = {}; - let url_params = "" - if (typeof(window) !== "undefined") { - url_params = new URLSearchParams( - window.location.search - ).toString(); + let url_params = ""; + if (typeof window !== "undefined") { + url_params = new URLSearchParams(window.location.search).toString(); } handle_blob( diff --git a/js/_website/src/app.html b/js/_website/src/app.html index 06dda00f89ee0..c8f78c33b6d87 100644 --- a/js/_website/src/app.html +++ b/js/_website/src/app.html @@ -7,7 +7,10 @@ %sveltekit.head% - +
%sveltekit.body%
diff --git a/js/_website/src/lib/components/CopyButton.svelte b/js/_website/src/lib/components/CopyButton.svelte index 3e0f6582ce6f5..17edb3ab34e6e 100644 --- a/js/_website/src/lib/components/CopyButton.svelte +++ b/js/_website/src/lib/components/CopyButton.svelte @@ -1,21 +1,20 @@ - \ No newline at end of file + diff --git a/js/_website/src/lib/components/DocsNav.svelte b/js/_website/src/lib/components/DocsNav.svelte index a46dd181c97c4..c7576636fbdea 100644 --- a/js/_website/src/lib/components/DocsNav.svelte +++ b/js/_website/src/lib/components/DocsNav.svelte @@ -121,10 +121,9 @@ TabbedInterfaceTabbedInterface - + - + diff --git a/js/_website/src/routes/+layout.svelte b/js/_website/src/routes/+layout.svelte index d43854ea41c65..7bfdf5d5e54ce 100644 --- a/js/_website/src/routes/+layout.svelte +++ b/js/_website/src/routes/+layout.svelte @@ -26,26 +26,26 @@ import version_json from "$lib/json/version.json"; let version = version_json.version; - import CopyButton from '$lib/components/CopyButton.svelte' + import CopyButton from "$lib/components/CopyButton.svelte"; import { afterNavigate } from "$app/navigation"; afterNavigate(() => { - for (const node of document.querySelectorAll('.codeblock')) { - let children = Array.from(node.querySelectorAll('pre, a')); + for (const node of document.querySelectorAll(".codeblock")) { + let children = Array.from(node.querySelectorAll("pre, a")); let textContent = node.textContent; node.innerHTML = ""; - + new CopyButton({ target: node, props: { - content: textContent ?? '', - }, - }) + content: textContent ?? "" + } + }); for (const child of children) { node.appendChild(child); } - }}) - + } + }); diff --git a/js/_website/src/routes/[[version]]/docs/[doc]/+page.server.ts b/js/_website/src/routes/[[version]]/docs/[doc]/+page.server.ts index bcfe132c9c969..78d491e52ca94 100644 --- a/js/_website/src/routes/[[version]]/docs/[doc]/+page.server.ts +++ b/js/_website/src/routes/[[version]]/docs/[doc]/+page.server.ts @@ -1,8 +1,7 @@ import Prism from "prismjs"; import "prismjs/components/prism-python"; import { make_slug_processor } from "$lib/utils"; -import { error } from '@sveltejs/kit'; - +import { error } from "@sveltejs/kit"; let language = "python"; @@ -16,7 +15,17 @@ const COLOR_SETS = [ ]; export async function load({ params, parent }) { - const { docs, components, helpers, modals, py_client, routes, on_main, wheel, pages } = await parent(); + const { + docs, + components, + helpers, + modals, + py_client, + routes, + on_main, + wheel, + pages + } = await parent(); let name = params.doc; let obj; @@ -25,7 +34,7 @@ export async function load({ params, parent }) { let method_headers = []; const get_slug = make_slug_processor(); - if (!(pages.some((p: string) => p === params.doc))) { + if (!pages.some((p: string) => p === params.doc)) { throw error(404); } @@ -49,10 +58,10 @@ export async function load({ params, parent }) { } else if (obj.name == "ChatInterface") { obj.prev_obj = "Interface"; obj.next_obj = "TabbedInterface"; - } else if (obj.name == "TabbedInterface") { + } else if (obj.name == "TabbedInterface") { obj.prev_obj = "ChatInterface"; obj.next_obj = "Blocks"; - } else if (obj.name == "Blocks") { + } else if (obj.name == "Blocks") { obj.prev_obj = "TabbedInterface"; obj.next_obj = "Row"; } diff --git a/js/_website/src/routes/[[version]]/docs/[doc]/+page.svelte b/js/_website/src/routes/[[version]]/docs/[doc]/+page.svelte index c9866a814663b..7b211db4fa179 100644 --- a/js/_website/src/routes/[[version]]/docs/[doc]/+page.svelte +++ b/js/_website/src/routes/[[version]]/docs/[doc]/+page.svelte @@ -104,19 +104,24 @@ See the Release History

- + {#if on_main} -
+

To install Gradio from main, run the following command:

-
pip install {wheel}
+
pip install {wheel}
-

- *Note: Setting share=True in launch() will not work. +

+ *Note: Setting share=True in + launch() will not work.

-
+
{/if}
@@ -164,11 +169,11 @@
- {#if obj.override_signature} + {#if obj.override_signature}
{obj.override_signature}
- {:else} + {:else}
{obj.parent}.{obj.name}(	# {python_type.type} {#if python_type.description}({python_type.description}){/if} in '{label}' {component} component{/each}{#if named}
-		api_name="/{dependency.api_name}"{:else}
-		fn_index={dependency_index}
-		{/if}
+							fn_index={dependency_index}
+						{/if}
 )
 print(result)
diff --git a/js/app/src/api_docs/ResponseObject.svelte b/js/app/src/api_docs/ResponseObject.svelte index cf048802b1ef0..3def7e7c2d813 100644 --- a/js/app/src/api_docs/ResponseObject.svelte +++ b/js/app/src/api_docs/ResponseObject.svelte @@ -24,12 +24,8 @@ > # {#if current_language === "python"}{python_type.type}{#if python_type?.description} ({python_type.description}){/if}{:else}{js_returns[ i - ].type}{#if js_returns[ - i - ].description} ({js_returns[ - i - ] - .description}){/if}{/if} + ].type}{#if js_returns[i].description} ({js_returns[i] + .description}){/if}{/if} representing output in '{label}' {component} diff --git a/js/app/src/lang/ckb.json b/js/app/src/lang/ckb.json index 12bb01ac376a6..fcbbaae925ad3 100644 --- a/js/app/src/lang/ckb.json +++ b/js/app/src/lang/ckb.json @@ -1,108 +1,108 @@ { - "3D_model": { - "3d_model": "مۆدێلی سێ ڕەهەندی" - }, - "annotated_image": { - "annotated_image": "وێنەی نیشانە کراو" - }, - "audio": { - "allow_recording_access": "تکایە ڕێگە بدە بە بەکارهێنانی مایکرۆفۆنەکە بۆ تۆمارکردن.", - "audio": "دەنگ", - "record_from_microphone": "تۆمارکردن لە مایکەوە", - "stop_recording": "تۆمارکردن بوەستێنە" - }, - "blocks": { - "connection_can_break": "لە مۆبایلدا، پەیوەندییەکە دەکرێت بپچڕێت ئەگەر ئەم تابە چالاک نەبێت یان ئامێرەکە بچێتە دۆخی پشوو، ئەمەش شوێنی خۆت لە ڕیزدا لەدەست دەدات.", - "long_requests_queue": "ڕیزێکی درێژی داواکاری هەیە. ئەم سپەیسە دووباد بکە بۆی چاوەڕوان نەبیت.", - "lost_connection": "پەیوەندی پچڕا بەهۆی جێهێشتنی پەیج. " - }, - "checkbox": { - "checkbox": "بۆکسی هەڵبژاردن", - "checkbox_group": "گروپی بۆکسی هەڵبژاردن" - }, - "code": { - "code": "کۆد" - }, - "color_picker": { - "color_picker": "ڕەنگ هەڵبژاردە" - }, - "common": { - "built_with": "دروستکراوە لەگەڵ...", - "built_with_gradio": "Gradio دروستکراوە بە", - "clear": "خاوێنکردنەوە", - "download": "دابەزاندن", - "edit": "بژارکردن", - "empty": "بەتاڵ", - "error": "هەڵە", - "hosted_on": "میوانداری کراوە لە", - "loading": "بارکردن", - "logo": "لۆگۆ", - "or": "یان", - "remove": "لابردن", - "share": "هاوبەشکردن", - "submit": "پێشکەشکردن", - "undo": "پووچکردنەوە" - }, - "dataframe": { - "incorrect_format": "فۆرماتێکی هەڵە، تەنها فایلەکانی CSV و TSV پشتگیری دەکرێن", - "new_column": "ستوونی نوێ", - "new_row": "ڕیزێکی نوێ" - }, - "dropdown": { - "dropdown": "فڕێدانە خوار" - }, - "errors": { - "build_error": "هەڵەی دروستکردن هەیە", - "config_error": "هەڵەی ڕێکخستن هەیە", - "contact_page_author": "تکایە پەیوەندی بە نووسەری پەیجەوە بکەن بۆ ئەوەی ئاگاداریان بکەنەوە.", - "no_app_file": "هیچ فایلێکی ئەپ نییە", - "runtime_error": "هەڵەیەکی runtime هەیە", - "space_not_working": "\"سپەیسەکە کارناکات چونکە\" {0}", - "space_paused": "فەزاکە وەستاوە", - "use_via_api": "لە ڕێگەی API بەکاری بهێنە" - }, - "file": { - "uploading": "بارکردن..." - }, - "highlighted_text": { - "highlighted_text": "دەقی ڕۆشن کراو" - }, - "image": { - "allow_webcam_access": "تکایە ڕێگە بدە بە بەکارهێنانی وێبکامەکە بۆ تۆمارکردن.", - "brush_color": "ڕەنگی فڵچە", - "brush_radius": "تیژڕەوی فڵچە", - "image": "وێنە", - "remove_image": "لابردنی وێنە", - "select_brush_color": "ڕەنگی فڵچە هەڵبژێرە", - "start_drawing": "دەست بکە بە وێنەکێشان", - "use_brush": "فڵچە بەکاربهێنە" - }, - "label": { - "label": "لەیبڵ" - }, - "login": { - "enable_cookies": "ئەگەر تۆ سەردانی HuggingFace Space دەکەیت لە دۆخی نادیاردا، پێویستە کووکی لایەنی سێیەم چالاک بکەیت.", - "incorrect_credentials": "بڕوانامەی هەڵە", - "login": "چونه‌ ژووره‌وه‌" - }, - "number": { - "number": "ژمارە" - }, - "plot": { - "plot": "هێڵکاری" - }, - "radio": { - "radio": "ڕادیۆ" - }, - "slider": { - "slider": "خلیسکە" - }, - "upload_text": { - "click_to_upload": "کلیک بکە بۆ بارکردن", - "drop_audio": "دەنگ لێرە دابنێ", - "drop_csv": "لێرەدا CSV دابنێ", - "drop_file": "فایل لێرە دابنێ", - "drop_image": "وێنە لێرەدا دابنێ", - "drop_video": "ڤیدیۆ لێرە دابنێ" - } - } \ No newline at end of file + "3D_model": { + "3d_model": "مۆدێلی سێ ڕەهەندی" + }, + "annotated_image": { + "annotated_image": "وێنەی نیشانە کراو" + }, + "audio": { + "allow_recording_access": "تکایە ڕێگە بدە بە بەکارهێنانی مایکرۆفۆنەکە بۆ تۆمارکردن.", + "audio": "دەنگ", + "record_from_microphone": "تۆمارکردن لە مایکەوە", + "stop_recording": "تۆمارکردن بوەستێنە" + }, + "blocks": { + "connection_can_break": "لە مۆبایلدا، پەیوەندییەکە دەکرێت بپچڕێت ئەگەر ئەم تابە چالاک نەبێت یان ئامێرەکە بچێتە دۆخی پشوو، ئەمەش شوێنی خۆت لە ڕیزدا لەدەست دەدات.", + "long_requests_queue": "ڕیزێکی درێژی داواکاری هەیە. ئەم سپەیسە دووباد بکە بۆی چاوەڕوان نەبیت.", + "lost_connection": "پەیوەندی پچڕا بەهۆی جێهێشتنی پەیج. " + }, + "checkbox": { + "checkbox": "بۆکسی هەڵبژاردن", + "checkbox_group": "گروپی بۆکسی هەڵبژاردن" + }, + "code": { + "code": "کۆد" + }, + "color_picker": { + "color_picker": "ڕەنگ هەڵبژاردە" + }, + "common": { + "built_with": "دروستکراوە لەگەڵ...", + "built_with_gradio": "Gradio دروستکراوە بە", + "clear": "خاوێنکردنەوە", + "download": "دابەزاندن", + "edit": "بژارکردن", + "empty": "بەتاڵ", + "error": "هەڵە", + "hosted_on": "میوانداری کراوە لە", + "loading": "بارکردن", + "logo": "لۆگۆ", + "or": "یان", + "remove": "لابردن", + "share": "هاوبەشکردن", + "submit": "پێشکەشکردن", + "undo": "پووچکردنەوە" + }, + "dataframe": { + "incorrect_format": "فۆرماتێکی هەڵە، تەنها فایلەکانی CSV و TSV پشتگیری دەکرێن", + "new_column": "ستوونی نوێ", + "new_row": "ڕیزێکی نوێ" + }, + "dropdown": { + "dropdown": "فڕێدانە خوار" + }, + "errors": { + "build_error": "هەڵەی دروستکردن هەیە", + "config_error": "هەڵەی ڕێکخستن هەیە", + "contact_page_author": "تکایە پەیوەندی بە نووسەری پەیجەوە بکەن بۆ ئەوەی ئاگاداریان بکەنەوە.", + "no_app_file": "هیچ فایلێکی ئەپ نییە", + "runtime_error": "هەڵەیەکی runtime هەیە", + "space_not_working": "\"سپەیسەکە کارناکات چونکە\" {0}", + "space_paused": "فەزاکە وەستاوە", + "use_via_api": "لە ڕێگەی API بەکاری بهێنە" + }, + "file": { + "uploading": "بارکردن..." + }, + "highlighted_text": { + "highlighted_text": "دەقی ڕۆشن کراو" + }, + "image": { + "allow_webcam_access": "تکایە ڕێگە بدە بە بەکارهێنانی وێبکامەکە بۆ تۆمارکردن.", + "brush_color": "ڕەنگی فڵچە", + "brush_radius": "تیژڕەوی فڵچە", + "image": "وێنە", + "remove_image": "لابردنی وێنە", + "select_brush_color": "ڕەنگی فڵچە هەڵبژێرە", + "start_drawing": "دەست بکە بە وێنەکێشان", + "use_brush": "فڵچە بەکاربهێنە" + }, + "label": { + "label": "لەیبڵ" + }, + "login": { + "enable_cookies": "ئەگەر تۆ سەردانی HuggingFace Space دەکەیت لە دۆخی نادیاردا، پێویستە کووکی لایەنی سێیەم چالاک بکەیت.", + "incorrect_credentials": "بڕوانامەی هەڵە", + "login": "چونه‌ ژووره‌وه‌" + }, + "number": { + "number": "ژمارە" + }, + "plot": { + "plot": "هێڵکاری" + }, + "radio": { + "radio": "ڕادیۆ" + }, + "slider": { + "slider": "خلیسکە" + }, + "upload_text": { + "click_to_upload": "کلیک بکە بۆ بارکردن", + "drop_audio": "دەنگ لێرە دابنێ", + "drop_csv": "لێرەدا CSV دابنێ", + "drop_file": "فایل لێرە دابنێ", + "drop_image": "وێنە لێرەدا دابنێ", + "drop_video": "ڤیدیۆ لێرە دابنێ" + } +} diff --git a/js/app/src/lang/eu.json b/js/app/src/lang/eu.json index 09a3eb0c839e0..50a124d50230e 100644 --- a/js/app/src/lang/eu.json +++ b/js/app/src/lang/eu.json @@ -1,16 +1,16 @@ -{ - "common": { - "built_with_gradio": "Gradiorekin eraikia", - "clear": "Garbitu", - "or": "edo", - "submit": "Bidali" - }, - "upload_text": { - "click_to_upload": "Klik egin kargatzeko", - "drop_audio": "Jarri hemen audioa", - "drop_csv": "Jarri hemen CSVa", - "drop_file": "Jarri hemen fitxategia", - "drop_image": "Jarri hemen irudia", - "drop_video": "Jarri hemen bideoa" - } -} \ No newline at end of file +{ + "common": { + "built_with_gradio": "Gradiorekin eraikia", + "clear": "Garbitu", + "or": "edo", + "submit": "Bidali" + }, + "upload_text": { + "click_to_upload": "Klik egin kargatzeko", + "drop_audio": "Jarri hemen audioa", + "drop_csv": "Jarri hemen CSVa", + "drop_file": "Jarri hemen fitxategia", + "drop_image": "Jarri hemen irudia", + "drop_video": "Jarri hemen bideoa" + } +} diff --git a/js/audio/package.json b/js/audio/package.json index 1ed493acafe8c..8b68d3692fb0c 100644 --- a/js/audio/package.json +++ b/js/audio/package.json @@ -24,4 +24,4 @@ "./example": "./Example.svelte", "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/js/box/package.json b/js/box/package.json index d846cb5a3e9f5..3d7f65b6f78b4 100644 --- a/js/box/package.json +++ b/js/box/package.json @@ -14,4 +14,4 @@ "dependencies": { "@gradio/atoms": "workspace:^" } -} \ No newline at end of file +} diff --git a/js/chatbot/Chatbot.stories.svelte b/js/chatbot/Chatbot.stories.svelte index daba5aa292fbd..8a6d750d4ce1e 100644 --- a/js/chatbot/Chatbot.stories.svelte +++ b/js/chatbot/Chatbot.stories.svelte @@ -10,20 +10,20 @@ label: { control: "text", description: "The textbox label", - name: "label", + name: "label" }, show_label: { options: [true, false], description: "Whether to show the label", control: { type: "boolean" }, - defaultValue: true, + defaultValue: true }, rtl: { options: [true, false], description: "Whether to render right-to-left", control: { type: "boolean" }, - defaultValue: false, - }, + defaultValue: false + } }} /> @@ -33,10 +33,10 @@ value={[ [ "Can you write a function in Python?", - "```py\ndef test():\n\tprint(x)\n```", + "```py\ndef test():\n\tprint(x)\n```" ], ["Can you do math?", "$$1+1=2$$"], - ["Can you say nothing?", null], + ["Can you say nothing?", null] ]} /> @@ -55,7 +55,7 @@ name="Chatbot with text rendered right-to-left" args={{ rtl: true, - latex_delimiters: [{ left: "$$", right: "$$", display: true }], + latex_delimiters: [{ left: "$$", right: "$$", display: true }] }} /> @@ -64,14 +64,14 @@ args={{ rtl: true, latex_delimiters: [{ left: "$$", right: "$$", display: true }], - show_copy_button: true, + show_copy_button: true }} /> @@ -79,7 +79,7 @@ name="Chatbot with panel layout enabled" args={{ bubble_full_width: false, - layout: "panel", + layout: "panel" }} /> @@ -89,8 +89,8 @@ layout: "panel", avatar_images: [ "https://avatars.githubusercontent.com/u/100000?v=4", - "https://avatars.githubusercontent.com/u/100000?v=4", - ], + "https://avatars.githubusercontent.com/u/100000?v=4" + ] }} /> @@ -101,7 +101,7 @@ layout: "bubble", avatar_images: [ "https://avatars.githubusercontent.com/u/100000?v=4", - "https://avatars.githubusercontent.com/u/100000?v=4", - ], + "https://avatars.githubusercontent.com/u/100000?v=4" + ] }} /> diff --git a/js/chatbot/package.json b/js/chatbot/package.json index 396aa6779512f..6e09ed323e07e 100644 --- a/js/chatbot/package.json +++ b/js/chatbot/package.json @@ -24,4 +24,4 @@ ".": "./Index.svelte", "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/js/checkbox/package.json b/js/checkbox/package.json index ca7860d637c50..8b372a0282b5e 100644 --- a/js/checkbox/package.json +++ b/js/checkbox/package.json @@ -17,4 +17,4 @@ "@gradio/statustracker": "workspace:^", "@gradio/utils": "workspace:^" } -} \ No newline at end of file +} diff --git a/js/checkbox/shared/Checkbox.svelte b/js/checkbox/shared/Checkbox.svelte index 5e7a0606e09ff..fb2e054742570 100644 --- a/js/checkbox/shared/Checkbox.svelte +++ b/js/checkbox/shared/Checkbox.svelte @@ -34,7 +34,7 @@ dispatch("select", { index: 0, value: label, - selected: value, + selected: value }); } }} @@ -43,7 +43,7 @@ dispatch("select", { index: 0, value: label, - selected: evt.currentTarget.checked, + selected: evt.currentTarget.checked }); }} {disabled} diff --git a/js/checkboxgroup/package.json b/js/checkboxgroup/package.json index 638cd4d952b7b..6c6ed6af8942a 100644 --- a/js/checkboxgroup/package.json +++ b/js/checkboxgroup/package.json @@ -17,4 +17,4 @@ "@gradio/statustracker": "workspace:^", "@gradio/utils": "workspace:^" } -} \ No newline at end of file +} diff --git a/js/checkboxgroup/shared/Checkboxgroup.svelte b/js/checkboxgroup/shared/Checkboxgroup.svelte index 9dd9b4682e0da..ca801986ff885 100644 --- a/js/checkboxgroup/shared/Checkboxgroup.svelte +++ b/js/checkboxgroup/shared/Checkboxgroup.svelte @@ -58,7 +58,7 @@ dispatch("select", { index: i, value: choice[1], - selected: evt.currentTarget.checked, + selected: evt.currentTarget.checked })} on:keydown={(event) => { if (event.key === "Enter") { @@ -66,7 +66,7 @@ dispatch("select", { index: i, value: choice[1], - selected: !value.includes(choice[1]), + selected: !value.includes(choice[1]) }); } }} diff --git a/js/code/package.json b/js/code/package.json index 55fd93cbac0f7..a921a06a1006f 100644 --- a/js/code/package.json +++ b/js/code/package.json @@ -39,4 +39,4 @@ "./example": "./Example.svelte", "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/js/code/shared/Code.svelte b/js/code/shared/Code.svelte index 101cb25569494..3e69f612f37c8 100644 --- a/js/code/shared/Code.svelte +++ b/js/code/shared/Code.svelte @@ -4,7 +4,7 @@ import { EditorView, keymap, - placeholder as placeholderExt, + placeholder as placeholderExt } from "@codemirror/view"; import { StateEffect, EditorState, type Extension } from "@codemirror/state"; import { indentWithTab } from "@codemirror/commands"; @@ -50,8 +50,8 @@ changes: { from: 0, to: view.state.doc.length, - insert: newDoc, - }, + insert: newDoc + } }); } } @@ -65,7 +65,7 @@ function createEditorView(): EditorView { return new EditorView({ parent: element, - state: createEditorState(value), + state: createEditorState(value) }); } @@ -119,7 +119,7 @@ ), FontTheme, ...getTheme(), - ...extensions, + ...extensions ]; return stateExtensions; } @@ -127,36 +127,36 @@ const FontTheme = EditorView.theme({ "&": { fontSize: "var(--text-sm)", - backgroundColor: "var(--border-color-secondary)", + backgroundColor: "var(--border-color-secondary)" }, ".cm-content": { paddingTop: "5px", paddingBottom: "5px", color: "var(--body-text-color)", fontFamily: "var(--font-mono)", - minHeight: "100%", + minHeight: "100%" }, ".cm-gutters": { marginRight: "1px", borderRight: "1px solid var(--border-color-primary)", backgroundColor: "transparent", - color: "var(--body-text-color-subdued)", + color: "var(--body-text-color-subdued)" }, ".cm-focused": { - outline: "none", + outline: "none" }, ".cm-scroller": { - height: "auto", + height: "auto" }, ".cm-cursor": { - borderLeftColor: "var(--body-text-color)", - }, + borderLeftColor: "var(--body-text-color)" + } }); function createEditorState(_value: string | null | undefined): EditorState { return EditorState.create({ doc: _value ?? undefined, - extensions: getExtensions(), + extensions: getExtensions() }); } @@ -170,7 +170,7 @@ const extensions: Extension[] = [ EditorView.editable.of(!readonly), EditorState.readOnly.of(readonly), - EditorView.contentAttributes.of({ "aria-label": "Code input container" }), + EditorView.contentAttributes.of({ "aria-label": "Code input container" }) ]; if (basic) { @@ -203,7 +203,7 @@ function reconfigure(): void { view?.dispatch({ - effects: StateEffect.reconfigure.of(getExtensions()), + effects: StateEffect.reconfigure.of(getExtensions()) }); } diff --git a/js/colorpicker/package.json b/js/colorpicker/package.json index b469481f91b12..71516bf5ed332 100644 --- a/js/colorpicker/package.json +++ b/js/colorpicker/package.json @@ -17,4 +17,4 @@ "@gradio/statustracker": "workspace:^", "@gradio/utils": "workspace:^" } -} \ No newline at end of file +} diff --git a/js/column/package.json b/js/column/package.json index f2ec3d9406689..0cb169c327aec 100644 --- a/js/column/package.json +++ b/js/column/package.json @@ -11,4 +11,4 @@ ".": "./Index.svelte", "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/js/dataframe/package.json b/js/dataframe/package.json index 9a7c6e6d746cd..bdee98a81ed5f 100644 --- a/js/dataframe/package.json +++ b/js/dataframe/package.json @@ -28,4 +28,4 @@ "./example": "./Example.svelte", "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/js/dataset/package.json b/js/dataset/package.json index 1554b0e9a6efa..4cdc06fd80f76 100644 --- a/js/dataset/package.json +++ b/js/dataset/package.json @@ -16,4 +16,4 @@ "@gradio/utils": "workspace:^", "@gradio/upload": "workspace:^" } -} \ No newline at end of file +} diff --git a/js/dropdown/package.json b/js/dropdown/package.json index 4c671fa94f92a..d051cf5e5b064 100644 --- a/js/dropdown/package.json +++ b/js/dropdown/package.json @@ -18,4 +18,4 @@ "@gradio/statustracker": "workspace:^", "@gradio/utils": "workspace:^" } -} \ No newline at end of file +} diff --git a/js/dropdown/shared/Multiselect.svelte b/js/dropdown/shared/Multiselect.svelte index e7bd9fc70de7f..7fd1f31cc392c 100644 --- a/js/dropdown/shared/Multiselect.svelte +++ b/js/dropdown/shared/Multiselect.svelte @@ -20,7 +20,7 @@ export let container = true; export let allow_custom_value = false; export let filterable = true; - export let i18n: I18nFormatter + export let i18n: I18nFormatter; let filter_input: HTMLElement; let input_text = ""; @@ -113,7 +113,7 @@ typeof option_index === "number" ? choices_values[option_index] : option_index, - selected: false, + selected: false }); } @@ -126,7 +126,7 @@ typeof option_index === "number" ? choices_values[option_index] : option_index, - selected: true, + selected: true }); } if (selected_indices.length === max_choices) { diff --git a/js/fallback/package.json b/js/fallback/package.json index f59c55471ccdb..a46d64925781e 100644 --- a/js/fallback/package.json +++ b/js/fallback/package.json @@ -18,4 +18,4 @@ "@gradio/utils": "workspace:^", "@zerodevx/svelte-json-view": "^1.0.7" } -} \ No newline at end of file +} diff --git a/js/file/package.json b/js/file/package.json index b62599b73faef..70d2ce10eacc7 100644 --- a/js/file/package.json +++ b/js/file/package.json @@ -20,4 +20,4 @@ "./example": "./Example.svelte", "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/js/fileexplorer/package.json b/js/fileexplorer/package.json index 0272685af2c1b..c5f479f38ba36 100644 --- a/js/fileexplorer/package.json +++ b/js/fileexplorer/package.json @@ -23,4 +23,4 @@ "./example": "./Example.svelte", "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/js/form/package.json b/js/form/package.json index 0981e7e55c5b4..7a5c0e6456dc8 100644 --- a/js/form/package.json +++ b/js/form/package.json @@ -16,4 +16,4 @@ ".": "./Index.svelte", "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/js/gallery/package.json b/js/gallery/package.json index 01e2bfc1a1d70..120388a4eff16 100644 --- a/js/gallery/package.json +++ b/js/gallery/package.json @@ -20,4 +20,4 @@ ".": "./Index.svelte", "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/js/gallery/shared/Gallery.svelte b/js/gallery/shared/Gallery.svelte index c1731d80b7489..aedc48073bb4a 100644 --- a/js/gallery/shared/Gallery.svelte +++ b/js/gallery/shared/Gallery.svelte @@ -466,4 +466,4 @@ .icon-buttons a { margin: var(--size-1) 0; } - \ No newline at end of file + diff --git a/js/group/package.json b/js/group/package.json index 13b940d93e18d..8d98e7770b97c 100644 --- a/js/group/package.json +++ b/js/group/package.json @@ -11,4 +11,4 @@ ".": "./Index.svelte", "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/js/highlightedtext/package.json b/js/highlightedtext/package.json index 537b9726b210c..d3de16e8b06da 100644 --- a/js/highlightedtext/package.json +++ b/js/highlightedtext/package.json @@ -18,4 +18,4 @@ ".": "./Index.svelte", "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/js/html/package.json b/js/html/package.json index aa61ed5e2b9e6..e4324bbbe57fb 100644 --- a/js/html/package.json +++ b/js/html/package.json @@ -17,4 +17,4 @@ "./example": "./Example.svelte", "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/js/image/package.json b/js/image/package.json index 29ca5559f4ae1..e75e5bf598d5b 100644 --- a/js/image/package.json +++ b/js/image/package.json @@ -23,4 +23,4 @@ "./example": "./Example.svelte", "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/js/image/shared/Webcam.svelte b/js/image/shared/Webcam.svelte index b501b26e00bfd..160b11e1b2570 100644 --- a/js/image/shared/Webcam.svelte +++ b/js/image/shared/Webcam.svelte @@ -34,7 +34,7 @@ try { stream = await navigator.mediaDevices.getUserMedia({ video: true, - audio: include_audio, + audio: include_audio }); video_source.srcObject = stream; video_source.muted = true; @@ -105,7 +105,7 @@ return; } media_recorder = new MediaRecorder(stream, { - mimeType: mimeType, + mimeType: mimeType }); media_recorder.addEventListener("dataavailable", function (e) { recorded_blobs.push(e.data); diff --git a/js/json/package.json b/js/json/package.json index faa23b5c31f56..aaf1c0fdd454f 100644 --- a/js/json/package.json +++ b/js/json/package.json @@ -17,4 +17,4 @@ ".": "./Index.svelte", "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/js/label/package.json b/js/label/package.json index 51a8cbc81177d..20c35add9b10d 100644 --- a/js/label/package.json +++ b/js/label/package.json @@ -17,4 +17,4 @@ ".": "./Index.svelte", "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/js/markdown/package.json b/js/markdown/package.json index 2d1bacf9d208c..4e0aa49da4adb 100644 --- a/js/markdown/package.json +++ b/js/markdown/package.json @@ -25,4 +25,4 @@ "marked-highlight": "^2.0.1", "prismjs": "1.29.0" } -} \ No newline at end of file +} diff --git a/js/model3D/package.json b/js/model3D/package.json index 7781784105b2d..eac7e2c87339a 100644 --- a/js/model3D/package.json +++ b/js/model3D/package.json @@ -22,4 +22,4 @@ "./example": "./Example.svelte", "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/js/number/package.json b/js/number/package.json index d2088810c7e14..a0a3d9c6eab5e 100644 --- a/js/number/package.json +++ b/js/number/package.json @@ -17,4 +17,4 @@ "@gradio/statustracker": "workspace:^", "@gradio/utils": "workspace:^" } -} \ No newline at end of file +} diff --git a/js/plot/package.json b/js/plot/package.json index 110ae0829b8ff..0d48e8d6177de 100644 --- a/js/plot/package.json +++ b/js/plot/package.json @@ -23,4 +23,4 @@ ".": "./Index.svelte", "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/js/preview/package.json b/js/preview/package.json index 8e811c1dd88ce..0f9d6bb553653 100644 --- a/js/preview/package.json +++ b/js/preview/package.json @@ -1,41 +1,41 @@ { - "name": "@gradio/preview", - "version": "0.1.0-beta.6", - "description": "Gradio UI packages", - "type": "module", - "main": "src/index.ts", - "author": "", - "license": "ISC", - "private": false, - "scripts": { - "build": "rollup -c" - }, - "devDependencies": { - "@rollup/plugin-commonjs": "^25.0.4", - "@rollup/plugin-json": "^6.0.0", - "@rollup/plugin-node-resolve": "^15.1.0", - "@rollup/plugin-typescript": "^11.1.2", - "rollup": "^3.28.0", - "svelte-hmr": "^0.15.3", - "vite": "^4.4.9" - }, - "dependencies": { - "@originjs/vite-plugin-commonjs": "^1.0.3", - "@rollup/plugin-sucrase": "^5.0.1", - "@sveltejs/vite-plugin-svelte": "^2.4.2", - "@types/which": "^3.0.0", - "coffeescript": "^2.7.0", - "css-tree": "2.3.1", - "esbuild-wasm": "^0.19.0", - "lightningcss": "^1.21.7", - "pug": "^3.0.2", - "rollup-plugin-ignore": "^1.0.10", - "sass": "^1.66.1", - "stylus": "^0.60.0", - "sucrase": "^3.34.0", - "sugarss": "^4.0.1", - "svelte": "^4.2.0", - "which": "4.0.0", - "yootils": "^0.3.1" - } -} \ No newline at end of file + "name": "@gradio/preview", + "version": "0.1.0-beta.6", + "description": "Gradio UI packages", + "type": "module", + "main": "src/index.ts", + "author": "", + "license": "ISC", + "private": false, + "scripts": { + "build": "rollup -c" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^25.0.4", + "@rollup/plugin-json": "^6.0.0", + "@rollup/plugin-node-resolve": "^15.1.0", + "@rollup/plugin-typescript": "^11.1.2", + "rollup": "^3.28.0", + "svelte-hmr": "^0.15.3", + "vite": "^4.4.9" + }, + "dependencies": { + "@originjs/vite-plugin-commonjs": "^1.0.3", + "@rollup/plugin-sucrase": "^5.0.1", + "@sveltejs/vite-plugin-svelte": "^2.4.2", + "@types/which": "^3.0.0", + "coffeescript": "^2.7.0", + "css-tree": "2.3.1", + "esbuild-wasm": "^0.19.0", + "lightningcss": "^1.21.7", + "pug": "^3.0.2", + "rollup-plugin-ignore": "^1.0.10", + "sass": "^1.66.1", + "stylus": "^0.60.0", + "sucrase": "^3.34.0", + "sugarss": "^4.0.1", + "svelte": "^4.2.0", + "which": "4.0.0", + "yootils": "^0.3.1" + } +} diff --git a/js/preview/test/imageslider/frontend/package.json b/js/preview/test/imageslider/frontend/package.json index 50368a26c972d..47718cc42d11c 100644 --- a/js/preview/test/imageslider/frontend/package.json +++ b/js/preview/test/imageslider/frontend/package.json @@ -1,27 +1,27 @@ { - "name": "imageslider", - "version": "0.2.1-beta.0", - "description": "Gradio UI packages", - "type": "module", - "main": "./index.svelte", - "author": "", - "license": "ISC", - "private": true, - "dependencies": { - "@gradio/atoms": "workspace:^", - "@gradio/icons": "workspace:^", - "@gradio/statustracker": "workspace:^", - "@gradio/upload": "workspace:^", - "@gradio/utils": "workspace:^", - "cropperjs": "^1.5.12", - "lazy-brush": "^1.0.1", - "resize-observer-polyfill": "^1.5.1" - }, - "main_changeset": true, - "exports": { - "./package.json": "./package.json", - "./interactive": "./interactive/index.ts", - "./static": "./static/index.ts", - "./example": "./example/index.ts" - } -} \ No newline at end of file + "name": "imageslider", + "version": "0.2.1-beta.0", + "description": "Gradio UI packages", + "type": "module", + "main": "./index.svelte", + "author": "", + "license": "ISC", + "private": true, + "dependencies": { + "@gradio/atoms": "workspace:^", + "@gradio/icons": "workspace:^", + "@gradio/statustracker": "workspace:^", + "@gradio/upload": "workspace:^", + "@gradio/utils": "workspace:^", + "cropperjs": "^1.5.12", + "lazy-brush": "^1.0.1", + "resize-observer-polyfill": "^1.5.1" + }, + "main_changeset": true, + "exports": { + "./package.json": "./package.json", + "./interactive": "./interactive/index.ts", + "./static": "./static/index.ts", + "./example": "./example/index.ts" + } +} diff --git a/js/preview/test/newtext/frontend/example/index.ts b/js/preview/test/newtext/frontend/example/index.ts index 5f87dcb3a1b3a..ccf7b447f6d29 100644 --- a/js/preview/test/newtext/frontend/example/index.ts +++ b/js/preview/test/newtext/frontend/example/index.ts @@ -1 +1 @@ -export { default } from "./newtext.svelte"; \ No newline at end of file +export { default } from "./newtext.svelte"; diff --git a/js/preview/test/newtext/frontend/example/newtext.svelte b/js/preview/test/newtext/frontend/example/newtext.svelte index e5e40bb4b2546..2ccd9894d9605 100644 --- a/js/preview/test/newtext/frontend/example/newtext.svelte +++ b/js/preview/test/newtext/frontend/example/newtext.svelte @@ -1,7 +1,7 @@ - - \ No newline at end of file + + diff --git a/js/preview/test/newtext/frontend/interactive/index.ts b/js/preview/test/newtext/frontend/interactive/index.ts index 5f87dcb3a1b3a..ccf7b447f6d29 100644 --- a/js/preview/test/newtext/frontend/interactive/index.ts +++ b/js/preview/test/newtext/frontend/interactive/index.ts @@ -1 +1 @@ -export { default } from "./newtext.svelte"; \ No newline at end of file +export { default } from "./newtext.svelte"; diff --git a/js/preview/test/newtext/frontend/interactive/newtext.svelte b/js/preview/test/newtext/frontend/interactive/newtext.svelte index e5e40bb4b2546..2ccd9894d9605 100644 --- a/js/preview/test/newtext/frontend/interactive/newtext.svelte +++ b/js/preview/test/newtext/frontend/interactive/newtext.svelte @@ -1,7 +1,7 @@ - - \ No newline at end of file + + diff --git a/js/preview/test/newtext/frontend/package.json b/js/preview/test/newtext/frontend/package.json index f9ce53615df98..c2d1cbae87841 100644 --- a/js/preview/test/newtext/frontend/package.json +++ b/js/preview/test/newtext/frontend/package.json @@ -1,20 +1,20 @@ { - "name": "newtext", - "version": "0.1.0-beta.0", - "description": "Custom Component", - "type": "module", - "main": "./index.svelte", - "author": "", - "license": "ISC", - "private": true, - "dependencies": { - "@zerodevx/svelte-json-view": "^1.0" - }, - "exports": { - ".": "./index.svelte", - "./package.json": "./package.json", - "./interactive": "./interactive/index.ts", - "./static": "./static/index.ts", - "./example": "./example/index.ts" - } -} \ No newline at end of file + "name": "newtext", + "version": "0.1.0-beta.0", + "description": "Custom Component", + "type": "module", + "main": "./index.svelte", + "author": "", + "license": "ISC", + "private": true, + "dependencies": { + "@zerodevx/svelte-json-view": "^1.0" + }, + "exports": { + ".": "./index.svelte", + "./package.json": "./package.json", + "./interactive": "./interactive/index.ts", + "./static": "./static/index.ts", + "./example": "./example/index.ts" + } +} diff --git a/js/preview/test/newtext/frontend/shared/index.ts b/js/preview/test/newtext/frontend/shared/index.ts index 5f87dcb3a1b3a..ccf7b447f6d29 100644 --- a/js/preview/test/newtext/frontend/shared/index.ts +++ b/js/preview/test/newtext/frontend/shared/index.ts @@ -1 +1 @@ -export { default } from "./newtext.svelte"; \ No newline at end of file +export { default } from "./newtext.svelte"; diff --git a/js/preview/test/newtext/frontend/shared/newtext.svelte b/js/preview/test/newtext/frontend/shared/newtext.svelte index e5e40bb4b2546..2ccd9894d9605 100644 --- a/js/preview/test/newtext/frontend/shared/newtext.svelte +++ b/js/preview/test/newtext/frontend/shared/newtext.svelte @@ -1,7 +1,7 @@ - - \ No newline at end of file + + diff --git a/js/preview/test/newtext/frontend/static/index.ts b/js/preview/test/newtext/frontend/static/index.ts index 5f87dcb3a1b3a..ccf7b447f6d29 100644 --- a/js/preview/test/newtext/frontend/static/index.ts +++ b/js/preview/test/newtext/frontend/static/index.ts @@ -1 +1 @@ -export { default } from "./newtext.svelte"; \ No newline at end of file +export { default } from "./newtext.svelte"; diff --git a/js/preview/test/newtext/frontend/static/newtext.svelte b/js/preview/test/newtext/frontend/static/newtext.svelte index e5e40bb4b2546..2ccd9894d9605 100644 --- a/js/preview/test/newtext/frontend/static/newtext.svelte +++ b/js/preview/test/newtext/frontend/static/newtext.svelte @@ -1,7 +1,7 @@ - - \ No newline at end of file + + diff --git a/js/radio/package.json b/js/radio/package.json index 21fa89780dbad..a7ee1a0983d14 100644 --- a/js/radio/package.json +++ b/js/radio/package.json @@ -17,4 +17,4 @@ "@gradio/statustracker": "workspace:^", "@gradio/utils": "workspace:^" } -} \ No newline at end of file +} diff --git a/js/row/package.json b/js/row/package.json index 40bc259eaad07..4cbd798695f9b 100644 --- a/js/row/package.json +++ b/js/row/package.json @@ -14,4 +14,4 @@ "devDependencies": { "@gradio/image": "workspace:^" } -} \ No newline at end of file +} diff --git a/js/slider/package.json b/js/slider/package.json index 77cf72a5092b1..aae4af8444c49 100644 --- a/js/slider/package.json +++ b/js/slider/package.json @@ -17,4 +17,4 @@ "@gradio/statustracker": "workspace:^", "@gradio/utils": "workspace:^" } -} \ No newline at end of file +} diff --git a/js/state/package.json b/js/state/package.json index 2a67c1ec382a6..572593904f40f 100644 --- a/js/state/package.json +++ b/js/state/package.json @@ -11,4 +11,4 @@ ".": "./Index.svelte", "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/js/storybook/design-tokens/Colors.stories.svelte b/js/storybook/design-tokens/Colors.stories.svelte index e324b2f3b643f..a29de50de88ff 100644 --- a/js/storybook/design-tokens/Colors.stories.svelte +++ b/js/storybook/design-tokens/Colors.stories.svelte @@ -36,7 +36,7 @@ { tokenName: "--neutral-700", value: "#374151" }, { tokenName: "--neutral-800", value: "#1f2937" }, { tokenName: "--neutral-900", value: "#111827" }, - { tokenName: "--neutral-950", value: "#0b0f19" }, + { tokenName: "--neutral-950", value: "#0b0f19" } ]; diff --git a/js/storybook/design-tokens/Icons.stories.svelte b/js/storybook/design-tokens/Icons.stories.svelte index 0ca6e1843f56e..c18de6ccd62cf 100644 --- a/js/storybook/design-tokens/Icons.stories.svelte +++ b/js/storybook/design-tokens/Icons.stories.svelte @@ -40,7 +40,7 @@ Tree, Undo, Video, - Warning, + Warning } from "../../icons/src"; const icons = [ @@ -81,7 +81,7 @@ { name: "Tree", value: Tree }, { name: "Undo", value: Undo }, { name: "Video", value: Video }, - { name: "Warning", value: Warning }, + { name: "Warning", value: Warning } ]; diff --git a/js/storybook/design-tokens/Radii.stories.svelte b/js/storybook/design-tokens/Radii.stories.svelte index f150a4347a982..f5293e2ac9def 100644 --- a/js/storybook/design-tokens/Radii.stories.svelte +++ b/js/storybook/design-tokens/Radii.stories.svelte @@ -10,7 +10,7 @@ { tokenName: "--radius-md", value: "6px" }, { tokenName: "--radius-lg", value: "8px" }, { tokenName: "--radius-xl", value: "12px" }, - { tokenName: "--radius-xxl", value: "22px" }, + { tokenName: "--radius-xxl", value: "22px" } ]; diff --git a/js/storybook/design-tokens/Spacing.stories.svelte b/js/storybook/design-tokens/Spacing.stories.svelte index a46d400916b45..5a65d0786b318 100644 --- a/js/storybook/design-tokens/Spacing.stories.svelte +++ b/js/storybook/design-tokens/Spacing.stories.svelte @@ -10,7 +10,7 @@ { tokenName: "--spacing-md", value: "6px" }, { tokenName: "--spacing-lg", value: "8px" }, { tokenName: "--spacing-xl", value: "10px" }, - { tokenName: "--spacing-xxl", value: "16px" }, + { tokenName: "--spacing-xxl", value: "16px" } ]; diff --git a/js/storybook/design-tokens/TextSize.stories.svelte b/js/storybook/design-tokens/TextSize.stories.svelte index 233e24332218b..8ab046ece69c9 100644 --- a/js/storybook/design-tokens/TextSize.stories.svelte +++ b/js/storybook/design-tokens/TextSize.stories.svelte @@ -10,7 +10,7 @@ { tokenName: "--text-md", value: "14px" }, { tokenName: "--text-lg", value: "16px" }, { tokenName: "--text-xl", value: "22px" }, - { tokenName: "--text-xxl", value: "26px" }, + { tokenName: "--text-xxl", value: "26px" } ]; diff --git a/js/tabitem/package.json b/js/tabitem/package.json index 348eb90b23f93..daae9c5cec82f 100644 --- a/js/tabitem/package.json +++ b/js/tabitem/package.json @@ -16,4 +16,4 @@ "@gradio/tabs": "workspace:^", "@gradio/utils": "workspace:^" } -} \ No newline at end of file +} diff --git a/js/tabs/package.json b/js/tabs/package.json index 5e0c4d9deb2d4..90da3b3e4621c 100644 --- a/js/tabs/package.json +++ b/js/tabs/package.json @@ -14,4 +14,4 @@ "dependencies": { "@gradio/utils": "workspace:^" } -} \ No newline at end of file +} diff --git a/js/textbox/package.json b/js/textbox/package.json index cda843dd4800f..1877042f916d5 100644 --- a/js/textbox/package.json +++ b/js/textbox/package.json @@ -18,4 +18,4 @@ "@gradio/statustracker": "workspace:^", "@gradio/utils": "workspace:^" } -} \ No newline at end of file +} diff --git a/js/textbox/shared/Textbox.svelte b/js/textbox/shared/Textbox.svelte index b6169a9f61edb..02a4941a38f10 100644 --- a/js/textbox/shared/Textbox.svelte +++ b/js/textbox/shared/Textbox.svelte @@ -3,7 +3,7 @@ beforeUpdate, afterUpdate, createEventDispatcher, - tick, + tick } from "svelte"; import { BlockTitle } from "@gradio/atoms"; import { Copy, Check } from "@gradio/icons"; @@ -94,7 +94,7 @@ const text = target.value; const index: [number, number] = [ target.selectionStart as number, - target.selectionEnd as number, + target.selectionEnd as number ]; dispatch("select", { value: text.substring(...index), index: index }); } @@ -171,7 +171,7 @@ resize({ target: _el }); return { - destroy: () => _el.removeEventListener("input", resize), + destroy: () => _el.removeEventListener("input", resize) }; } diff --git a/js/uploadbutton/package.json b/js/uploadbutton/package.json index a55c9d8896bdb..ba7cf70de5736 100644 --- a/js/uploadbutton/package.json +++ b/js/uploadbutton/package.json @@ -17,4 +17,4 @@ "@gradio/upload": "workspace:^", "@gradio/utils": "workspace:^" } -} \ No newline at end of file +} diff --git a/js/video/package.json b/js/video/package.json index 17a604321a09e..c8981495c8f44 100644 --- a/js/video/package.json +++ b/js/video/package.json @@ -21,4 +21,4 @@ "./example": "./Example.svelte", "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/test/test_files/xray_config.json b/test/test_files/xray_config.json index 10976445406d9..374fa4bf86538 100644 --- a/test/test_files/xray_config.json +++ b/test/test_files/xray_config.json @@ -1,493 +1,460 @@ { - "version": "3.45.2", - "mode": "blocks", - "app_id": 9825271647306944906, - "dev_mode": false, - "analytics_enabled": true, - "components": [ - { - "id": 1, - "type": "markdown", - "props": { - "value": "# Detect Disease From Scan\nWith this model you can lorem ipsum\n- ipsum 1\n- ipsum 2", - "rtl": false, - "latex_delimiters": [ - { - "left": "$", - "right": "$", - "display": false - } - ], - "visible": true, - "sanitize_html": true, - "line_breaks": false, - "name": "markdown" - }, - "serializer": "StringSerializable", - "api_info": { - "info": { - "type": "string" - }, - "serialized_info": false - }, - "example_inputs": { - "raw": "Howdy!", - "serialized": "Howdy!" - } - }, - { - "id": 2, - "type": "checkboxgroup", - "props": { - "choices": [ - [ - "Covid", - "Covid" - ], - [ - "Malaria", - "Malaria" - ], - [ - "Lung Cancer", - "Lung Cancer" - ] - ], - "value": [], - "type": "value", - "label": "Disease to Scan For", - "show_label": true, - "container": true, - "min_width": 160, - "visible": true, - "name": "checkboxgroup", - "selectable": false - }, - "serializer": "ListStringSerializable", - "api_info": { - "info": { - "type": "array", - "items": { - "type": "string" - } - }, - "serialized_info": false - }, - "example_inputs": { - "raw": [ - "Covid" - ], - "serialized": [ - "Covid" - ] - } - }, - { - "id": 3, - "type": "tabs", - "props": { - "visible": true, - "name": "tabs", - "selectable": false - } - }, - { - "id": 4, - "type": "tabitem", - "props": { - "label": "X-ray", - "name": "tabitem", - "selectable": false - } - }, - { - "id": 5, - "type": "row", - "props": { - "variant": "default", - "visible": true, - "equal_height": true, - "name": "row" - } - }, - { - "id": 6, - "type": "image", - "props": { - "image_mode": "RGB", - "invert_colors": false, - "source": "upload", - "tool": "editor", - "type": "numpy", - "show_label": true, - "show_download_button": true, - "container": true, - "min_width": 160, - "visible": true, - "streaming": false, - "mirror_webcam": true, - "brush_color": "#000000", - "mask_opacity": 0.7, - "show_share_button": false, - "name": "image", - "selectable": false - }, - "serializer": "ImgSerializable", - "api_info": { - "info": { - "type": "string", - "description": "base64 representation of an image" - }, - "serialized_info": true - }, - "example_inputs": { - "raw": "data:image/png;base64,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", - "serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png" - } - }, - { - "id": 7, - "type": "json", - "props": { - "show_label": true, - "container": true, - "min_width": 160, - "visible": true, - "name": "json" - }, - "serializer": "JSONSerializable", - "api_info": { - "info": { - "type": {}, - "description": "any valid json" - }, - "serialized_info": true - }, - "example_inputs": { - "raw": { - "a": 1, - "b": 2 - }, - "serialized": null - } - }, - { - "id": 8, - "type": "button", - "props": { - "value": "Run", - "variant": "secondary", - "visible": true, - "interactive": true, - "name": "button" - }, - "serializer": "StringSerializable", - "api_info": { - "info": { - "type": "string" - }, - "serialized_info": false - }, - "example_inputs": { - "raw": "Howdy!", - "serialized": "Howdy!" - } - }, - { - "id": 9, - "type": "tabitem", - "props": { - "label": "CT Scan", - "name": "tabitem", - "selectable": false - } - }, - { - "id": 10, - "type": "row", - "props": { - "variant": "default", - "visible": true, - "equal_height": true, - "name": "row" - } - }, - { - "id": 11, - "type": "image", - "props": { - "image_mode": "RGB", - "invert_colors": false, - "source": "upload", - "tool": "editor", - "type": "numpy", - "show_label": true, - "show_download_button": true, - "container": true, - "min_width": 160, - "visible": true, - "streaming": false, - "mirror_webcam": true, - "brush_color": "#000000", - "mask_opacity": 0.7, - "show_share_button": false, - "name": "image", - "selectable": false - }, - "serializer": "ImgSerializable", - "api_info": { - "info": { - "type": "string", - "description": "base64 representation of an image" - }, - "serialized_info": true - }, - "example_inputs": { - "raw": "data:image/png;base64,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", - "serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png" - } - }, - { - "id": 12, - "type": "json", - "props": { - "show_label": true, - "container": true, - "min_width": 160, - "visible": true, - "name": "json" - }, - "serializer": "JSONSerializable", - "api_info": { - "info": { - "type": {}, - "description": "any valid json" - }, - "serialized_info": true - }, - "example_inputs": { - "raw": { - "a": 1, - "b": 2 - }, - "serialized": null - } - }, - { - "id": 13, - "type": "button", - "props": { - "value": "Run", - "variant": "secondary", - "visible": true, - "interactive": true, - "name": "button" - }, - "serializer": "StringSerializable", - "api_info": { - "info": { - "type": "string" - }, - "serialized_info": false - }, - "example_inputs": { - "raw": "Howdy!", - "serialized": "Howdy!" - } - }, - { - "id": 14, - "type": "textbox", - "props": { - "value": "", - "lines": 1, - "max_lines": 20, - "show_label": true, - "container": true, - "min_width": 160, - "visible": true, - "autofocus": false, - "autoscroll": true, - "type": "text", - "rtl": false, - "show_copy_button": false, - "name": "textbox", - "selectable": false - }, - "serializer": "StringSerializable", - "api_info": { - "info": { - "type": "string" - }, - "serialized_info": false - }, - "example_inputs": { - "raw": "Howdy!", - "serialized": "Howdy!" - } - }, - { - "id": 15, - "type": "form", - "props": { - "scale": 0, - "min_width": 0, - "name": "form" - } - }, - { - "id": 16, - "type": "form", - "props": { - "scale": 0, - "min_width": 0, - "name": "form" - } - } - ], - "css": null, - "title": "Gradio", - "space_id": null, - "enable_queue": null, - "show_error": true, - "show_api": true, - "is_colab": false, - "stylesheets": [ - "https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600&display=swap", - "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&display=swap" - ], - "theme": "default", - "layout": { - "id": 0, - "children": [ - { - "id": 1 - }, - { - "id": 15, - "children": [ - { - "id": 2 - } - ] - }, - { - "id": 3, - "children": [ - { - "id": 4, - "children": [ - { - "id": 5, - "children": [ - { - "id": 6 - }, - { - "id": 7 - } - ] - }, - { - "id": 8 - } - ] - }, - { - "id": 9, - "children": [ - { - "id": 10, - "children": [ - { - "id": 11 - }, - { - "id": 12 - } - ] - }, - { - "id": 13 - } - ] - } - ] - }, - { - "id": 16, - "children": [ - { - "id": 14 - } - ] - } - ] - }, - "dependencies": [ - { - "targets": [ - [ - 8, - "click" - ] - ], - "inputs": [ - 2, - 6 - ], - "outputs": [ - 7 - ], - "backend_fn": true, - "js": null, - "queue": null, - "api_name": null, - "scroll_to_output": false, - "show_progress": "full", - "every": null, - "batch": false, - "max_batch_size": 4, - "cancels": [], - "types": { - "continuous": false, - "generator": false - }, - "collects_event_data": false, - "trigger_after": null, - "trigger_only_on_success": false - }, - { - "targets": [ - [ - 13, - "click" - ] - ], - "inputs": [ - 2, - 11 - ], - "outputs": [ - 12 - ], - "backend_fn": true, - "js": null, - "queue": null, - "api_name": null, - "scroll_to_output": false, - "show_progress": "full", - "every": null, - "batch": false, - "max_batch_size": 4, - "cancels": [], - "types": { - "continuous": false, - "generator": false - }, - "collects_event_data": false, - "trigger_after": null, - "trigger_only_on_success": false - } - ] -} \ No newline at end of file + "version": "3.45.2", + "mode": "blocks", + "app_id": 9825271647306944906, + "dev_mode": false, + "analytics_enabled": true, + "components": [ + { + "id": 1, + "type": "markdown", + "props": { + "value": "# Detect Disease From Scan\nWith this model you can lorem ipsum\n- ipsum 1\n- ipsum 2", + "rtl": false, + "latex_delimiters": [ + { + "left": "$", + "right": "$", + "display": false + } + ], + "visible": true, + "sanitize_html": true, + "line_breaks": false, + "name": "markdown" + }, + "serializer": "StringSerializable", + "api_info": { + "info": { + "type": "string" + }, + "serialized_info": false + }, + "example_inputs": { + "raw": "Howdy!", + "serialized": "Howdy!" + } + }, + { + "id": 2, + "type": "checkboxgroup", + "props": { + "choices": [ + ["Covid", "Covid"], + ["Malaria", "Malaria"], + ["Lung Cancer", "Lung Cancer"] + ], + "value": [], + "type": "value", + "label": "Disease to Scan For", + "show_label": true, + "container": true, + "min_width": 160, + "visible": true, + "name": "checkboxgroup", + "selectable": false + }, + "serializer": "ListStringSerializable", + "api_info": { + "info": { + "type": "array", + "items": { + "type": "string" + } + }, + "serialized_info": false + }, + "example_inputs": { + "raw": ["Covid"], + "serialized": ["Covid"] + } + }, + { + "id": 3, + "type": "tabs", + "props": { + "visible": true, + "name": "tabs", + "selectable": false + } + }, + { + "id": 4, + "type": "tabitem", + "props": { + "label": "X-ray", + "name": "tabitem", + "selectable": false + } + }, + { + "id": 5, + "type": "row", + "props": { + "variant": "default", + "visible": true, + "equal_height": true, + "name": "row" + } + }, + { + "id": 6, + "type": "image", + "props": { + "image_mode": "RGB", + "invert_colors": false, + "source": "upload", + "tool": "editor", + "type": "numpy", + "show_label": true, + "show_download_button": true, + "container": true, + "min_width": 160, + "visible": true, + "streaming": false, + "mirror_webcam": true, + "brush_color": "#000000", + "mask_opacity": 0.7, + "show_share_button": false, + "name": "image", + "selectable": false + }, + "serializer": "ImgSerializable", + "api_info": { + "info": { + "type": "string", + "description": "base64 representation of an image" + }, + "serialized_info": true + }, + "example_inputs": { + "raw": "data:image/png;base64,R0lGODlhPQBEAPeoAJosM//AwO/AwHVYZ/z595kzAP/s7P+goOXMv8+fhw/v739/f+8PD98fH/8mJl+fn/9ZWb8/PzWlwv///6wWGbImAPgTEMImIN9gUFCEm/gDALULDN8PAD6atYdCTX9gUNKlj8wZAKUsAOzZz+UMAOsJAP/Z2ccMDA8PD/95eX5NWvsJCOVNQPtfX/8zM8+QePLl38MGBr8JCP+zs9myn/8GBqwpAP/GxgwJCPny78lzYLgjAJ8vAP9fX/+MjMUcAN8zM/9wcM8ZGcATEL+QePdZWf/29uc/P9cmJu9MTDImIN+/r7+/vz8/P8VNQGNugV8AAF9fX8swMNgTAFlDOICAgPNSUnNWSMQ5MBAQEJE3QPIGAM9AQMqGcG9vb6MhJsEdGM8vLx8fH98AANIWAMuQeL8fABkTEPPQ0OM5OSYdGFl5jo+Pj/+pqcsTE78wMFNGQLYmID4dGPvd3UBAQJmTkP+8vH9QUK+vr8ZWSHpzcJMmILdwcLOGcHRQUHxwcK9PT9DQ0O/v70w5MLypoG8wKOuwsP/g4P/Q0IcwKEswKMl8aJ9fX2xjdOtGRs/Pz+Dg4GImIP8gIH0sKEAwKKmTiKZ8aB/f39Wsl+LFt8dgUE9PT5x5aHBwcP+AgP+WltdgYMyZfyywz78AAAAAAAD///8AAP9mZv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAKgALAAAAAA9AEQAAAj/AFEJHEiwoMGDCBMqXMiwocAbBww4nEhxoYkUpzJGrMixogkfGUNqlNixJEIDB0SqHGmyJSojM1bKZOmyop0gM3Oe2liTISKMOoPy7GnwY9CjIYcSRYm0aVKSLmE6nfq05QycVLPuhDrxBlCtYJUqNAq2bNWEBj6ZXRuyxZyDRtqwnXvkhACDV+euTeJm1Ki7A73qNWtFiF+/gA95Gly2CJLDhwEHMOUAAuOpLYDEgBxZ4GRTlC1fDnpkM+fOqD6DDj1aZpITp0dtGCDhr+fVuCu3zlg49ijaokTZTo27uG7Gjn2P+hI8+PDPERoUB318bWbfAJ5sUNFcuGRTYUqV/3ogfXp1rWlMc6awJjiAAd2fm4ogXjz56aypOoIde4OE5u/F9x199dlXnnGiHZWEYbGpsAEA3QXYnHwEFliKAgswgJ8LPeiUXGwedCAKABACCN+EA1pYIIYaFlcDhytd51sGAJbo3onOpajiihlO92KHGaUXGwWjUBChjSPiWJuOO/LYIm4v1tXfE6J4gCSJEZ7YgRYUNrkji9P55sF/ogxw5ZkSqIDaZBV6aSGYq/lGZplndkckZ98xoICbTcIJGQAZcNmdmUc210hs35nCyJ58fgmIKX5RQGOZowxaZwYA+JaoKQwswGijBV4C6SiTUmpphMspJx9unX4KaimjDv9aaXOEBteBqmuuxgEHoLX6Kqx+yXqqBANsgCtit4FWQAEkrNbpq7HSOmtwag5w57GrmlJBASEU18ADjUYb3ADTinIttsgSB1oJFfA63bduimuqKB1keqwUhoCSK374wbujvOSu4QG6UvxBRydcpKsav++Ca6G8A6Pr1x2kVMyHwsVxUALDq/krnrhPSOzXG1lUTIoffqGR7Goi2MAxbv6O2kEG56I7CSlRsEFKFVyovDJoIRTg7sugNRDGqCJzJgcKE0ywc0ELm6KBCCJo8DIPFeCWNGcyqNFE06ToAfV0HBRgxsvLThHn1oddQMrXj5DyAQgjEHSAJMWZwS3HPxT/QMbabI/iBCliMLEJKX2EEkomBAUCxRi42VDADxyTYDVogV+wSChqmKxEKCDAYFDFj4OmwbY7bDGdBhtrnTQYOigeChUmc1K3QTnAUfEgGFgAWt88hKA6aCRIXhxnQ1yg3BCayK44EWdkUQcBByEQChFXfCB776aQsG0BIlQgQgE8qO26X1h8cEUep8ngRBnOy74E9QgRgEAC8SvOfQkh7FDBDmS43PmGoIiKUUEGkMEC/PJHgxw0xH74yx/3XnaYRJgMB8obxQW6kL9QYEJ0FIFgByfIL7/IQAlvQwEpnAC7DtLNJCKUoO/w45c44GwCXiAFB/OXAATQryUxdN4LfFiwgjCNYg+kYMIEFkCKDs6PKAIJouyGWMS1FSKJOMRB/BoIxYJIUXFUxNwoIkEKPAgCBZSQHQ1A2EWDfDEUVLyADj5AChSIQW6gu10bE/JG2VnCZGfo4R4d0sdQoBAHhPjhIB94v/wRoRKQWGRHgrhGSQJxCS+0pCZbEhAAOw==", + "serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png" + } + }, + { + "id": 7, + "type": "json", + "props": { + "show_label": true, + "container": true, + "min_width": 160, + "visible": true, + "name": "json" + }, + "serializer": "JSONSerializable", + "api_info": { + "info": { + "type": {}, + "description": "any valid json" + }, + "serialized_info": true + }, + "example_inputs": { + "raw": { + "a": 1, + "b": 2 + }, + "serialized": null + } + }, + { + "id": 8, + "type": "button", + "props": { + "value": "Run", + "variant": "secondary", + "visible": true, + "interactive": true, + "name": "button" + }, + "serializer": "StringSerializable", + "api_info": { + "info": { + "type": "string" + }, + "serialized_info": false + }, + "example_inputs": { + "raw": "Howdy!", + "serialized": "Howdy!" + } + }, + { + "id": 9, + "type": "tabitem", + "props": { + "label": "CT Scan", + "name": "tabitem", + "selectable": false + } + }, + { + "id": 10, + "type": "row", + "props": { + "variant": "default", + "visible": true, + "equal_height": true, + "name": "row" + } + }, + { + "id": 11, + "type": "image", + "props": { + "image_mode": "RGB", + "invert_colors": false, + "source": "upload", + "tool": "editor", + "type": "numpy", + "show_label": true, + "show_download_button": true, + "container": true, + "min_width": 160, + "visible": true, + "streaming": false, + "mirror_webcam": true, + "brush_color": "#000000", + "mask_opacity": 0.7, + "show_share_button": false, + "name": "image", + "selectable": false + }, + "serializer": "ImgSerializable", + "api_info": { + "info": { + "type": "string", + "description": "base64 representation of an image" + }, + "serialized_info": true + }, + "example_inputs": { + "raw": "data:image/png;base64,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", + "serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png" + } + }, + { + "id": 12, + "type": "json", + "props": { + "show_label": true, + "container": true, + "min_width": 160, + "visible": true, + "name": "json" + }, + "serializer": "JSONSerializable", + "api_info": { + "info": { + "type": {}, + "description": "any valid json" + }, + "serialized_info": true + }, + "example_inputs": { + "raw": { + "a": 1, + "b": 2 + }, + "serialized": null + } + }, + { + "id": 13, + "type": "button", + "props": { + "value": "Run", + "variant": "secondary", + "visible": true, + "interactive": true, + "name": "button" + }, + "serializer": "StringSerializable", + "api_info": { + "info": { + "type": "string" + }, + "serialized_info": false + }, + "example_inputs": { + "raw": "Howdy!", + "serialized": "Howdy!" + } + }, + { + "id": 14, + "type": "textbox", + "props": { + "value": "", + "lines": 1, + "max_lines": 20, + "show_label": true, + "container": true, + "min_width": 160, + "visible": true, + "autofocus": false, + "autoscroll": true, + "type": "text", + "rtl": false, + "show_copy_button": false, + "name": "textbox", + "selectable": false + }, + "serializer": "StringSerializable", + "api_info": { + "info": { + "type": "string" + }, + "serialized_info": false + }, + "example_inputs": { + "raw": "Howdy!", + "serialized": "Howdy!" + } + }, + { + "id": 15, + "type": "form", + "props": { + "scale": 0, + "min_width": 0, + "name": "form" + } + }, + { + "id": 16, + "type": "form", + "props": { + "scale": 0, + "min_width": 0, + "name": "form" + } + } + ], + "css": null, + "title": "Gradio", + "space_id": null, + "enable_queue": null, + "show_error": true, + "show_api": true, + "is_colab": false, + "stylesheets": [ + "https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600&display=swap", + "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&display=swap" + ], + "theme": "default", + "layout": { + "id": 0, + "children": [ + { + "id": 1 + }, + { + "id": 15, + "children": [ + { + "id": 2 + } + ] + }, + { + "id": 3, + "children": [ + { + "id": 4, + "children": [ + { + "id": 5, + "children": [ + { + "id": 6 + }, + { + "id": 7 + } + ] + }, + { + "id": 8 + } + ] + }, + { + "id": 9, + "children": [ + { + "id": 10, + "children": [ + { + "id": 11 + }, + { + "id": 12 + } + ] + }, + { + "id": 13 + } + ] + } + ] + }, + { + "id": 16, + "children": [ + { + "id": 14 + } + ] + } + ] + }, + "dependencies": [ + { + "targets": [[8, "click"]], + "inputs": [2, 6], + "outputs": [7], + "backend_fn": true, + "js": null, + "queue": null, + "api_name": null, + "scroll_to_output": false, + "show_progress": "full", + "every": null, + "batch": false, + "max_batch_size": 4, + "cancels": [], + "types": { + "continuous": false, + "generator": false + }, + "collects_event_data": false, + "trigger_after": null, + "trigger_only_on_success": false + }, + { + "targets": [[13, "click"]], + "inputs": [2, 11], + "outputs": [12], + "backend_fn": true, + "js": null, + "queue": null, + "api_name": null, + "scroll_to_output": false, + "show_progress": "full", + "every": null, + "batch": false, + "max_batch_size": 4, + "cancels": [], + "types": { + "continuous": false, + "generator": false + }, + "collects_event_data": false, + "trigger_after": null, + "trigger_only_on_success": false + } + ] +} diff --git a/test/test_files/xray_config_diff_ids.json b/test/test_files/xray_config_diff_ids.json index a60969a9c05c4..5c8ccab152e46 100644 --- a/test/test_files/xray_config_diff_ids.json +++ b/test/test_files/xray_config_diff_ids.json @@ -1,493 +1,460 @@ { - "version": "3.45.2", - "mode": "blocks", - "app_id": 3359633681304339607, - "dev_mode": false, - "analytics_enabled": true, - "components": [ - { - "id": 101, - "type": "markdown", - "props": { - "value": "# Detect Disease From Scan\nWith this model you can lorem ipsum\n- ipsum 1\n- ipsum 2", - "rtl": false, - "latex_delimiters": [ - { - "left": "$", - "right": "$", - "display": false - } - ], - "visible": true, - "sanitize_html": true, - "line_breaks": false, - "name": "markdown" - }, - "serializer": "StringSerializable", - "api_info": { - "info": { - "type": "string" - }, - "serialized_info": false - }, - "example_inputs": { - "raw": "Howdy!", - "serialized": "Howdy!" - } - }, - { - "id": 102, - "type": "checkboxgroup", - "props": { - "choices": [ - [ - "Covid", - "Covid" - ], - [ - "Malaria", - "Malaria" - ], - [ - "Lung Cancer", - "Lung Cancer" - ] - ], - "value": [], - "type": "value", - "label": "Disease to Scan For", - "show_label": true, - "container": true, - "min_width": 160, - "visible": true, - "name": "checkboxgroup", - "selectable": false - }, - "serializer": "ListStringSerializable", - "api_info": { - "info": { - "type": "array", - "items": { - "type": "string" - } - }, - "serialized_info": false - }, - "example_inputs": { - "raw": [ - "Covid" - ], - "serialized": [ - "Covid" - ] - } - }, - { - "id": 103, - "type": "tabs", - "props": { - "visible": true, - "name": "tabs", - "selectable": false - } - }, - { - "id": 104, - "type": "tabitem", - "props": { - "label": "X-ray", - "name": "tabitem", - "selectable": false - } - }, - { - "id": 105, - "type": "row", - "props": { - "variant": "default", - "visible": true, - "equal_height": true, - "name": "row" - } - }, - { - "id": 106, - "type": "image", - "props": { - "image_mode": "RGB", - "invert_colors": false, - "source": "upload", - "tool": "editor", - "type": "numpy", - "show_label": true, - "show_download_button": true, - "container": true, - "min_width": 160, - "visible": true, - "streaming": false, - "mirror_webcam": true, - "brush_color": "#000000", - "mask_opacity": 0.7, - "show_share_button": false, - "name": "image", - "selectable": false - }, - "serializer": "ImgSerializable", - "api_info": { - "info": { - "type": "string", - "description": "base64 representation of an image" - }, - "serialized_info": true - }, - "example_inputs": { - "raw": "data:image/png;base64,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", - "serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png" - } - }, - { - "id": 107, - "type": "json", - "props": { - "show_label": true, - "container": true, - "min_width": 160, - "visible": true, - "name": "json" - }, - "serializer": "JSONSerializable", - "api_info": { - "info": { - "type": {}, - "description": "any valid json" - }, - "serialized_info": true - }, - "example_inputs": { - "raw": { - "a": 1, - "b": 2 - }, - "serialized": null - } - }, - { - "id": 108, - "type": "button", - "props": { - "value": "Run", - "variant": "secondary", - "visible": true, - "interactive": true, - "name": "button" - }, - "serializer": "StringSerializable", - "api_info": { - "info": { - "type": "string" - }, - "serialized_info": false - }, - "example_inputs": { - "raw": "Howdy!", - "serialized": "Howdy!" - } - }, - { - "id": 109, - "type": "tabitem", - "props": { - "label": "CT Scan", - "name": "tabitem", - "selectable": false - } - }, - { - "id": 110, - "type": "row", - "props": { - "variant": "default", - "visible": true, - "equal_height": true, - "name": "row" - } - }, - { - "id": 111, - "type": "image", - "props": { - "image_mode": "RGB", - "invert_colors": false, - "source": "upload", - "tool": "editor", - "type": "numpy", - "show_label": true, - "show_download_button": true, - "container": true, - "min_width": 160, - "visible": true, - "streaming": false, - "mirror_webcam": true, - "brush_color": "#000000", - "mask_opacity": 0.7, - "show_share_button": false, - "name": "image", - "selectable": false - }, - "serializer": "ImgSerializable", - "api_info": { - "info": { - "type": "string", - "description": "base64 representation of an image" - }, - "serialized_info": true - }, - "example_inputs": { - "raw": "data:image/png;base64,R0lGODlhPQBEAPeoAJosM//AwO/AwHVYZ/z595kzAP/s7P+goOXMv8+fhw/v739/f+8PD98fH/8mJl+fn/9ZWb8/PzWlwv///6wWGbImAPgTEMImIN9gUFCEm/gDALULDN8PAD6atYdCTX9gUNKlj8wZAKUsAOzZz+UMAOsJAP/Z2ccMDA8PD/95eX5NWvsJCOVNQPtfX/8zM8+QePLl38MGBr8JCP+zs9myn/8GBqwpAP/GxgwJCPny78lzYLgjAJ8vAP9fX/+MjMUcAN8zM/9wcM8ZGcATEL+QePdZWf/29uc/P9cmJu9MTDImIN+/r7+/vz8/P8VNQGNugV8AAF9fX8swMNgTAFlDOICAgPNSUnNWSMQ5MBAQEJE3QPIGAM9AQMqGcG9vb6MhJsEdGM8vLx8fH98AANIWAMuQeL8fABkTEPPQ0OM5OSYdGFl5jo+Pj/+pqcsTE78wMFNGQLYmID4dGPvd3UBAQJmTkP+8vH9QUK+vr8ZWSHpzcJMmILdwcLOGcHRQUHxwcK9PT9DQ0O/v70w5MLypoG8wKOuwsP/g4P/Q0IcwKEswKMl8aJ9fX2xjdOtGRs/Pz+Dg4GImIP8gIH0sKEAwKKmTiKZ8aB/f39Wsl+LFt8dgUE9PT5x5aHBwcP+AgP+WltdgYMyZfyywz78AAAAAAAD///8AAP9mZv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAKgALAAAAAA9AEQAAAj/AFEJHEiwoMGDCBMqXMiwocAbBww4nEhxoYkUpzJGrMixogkfGUNqlNixJEIDB0SqHGmyJSojM1bKZOmyop0gM3Oe2liTISKMOoPy7GnwY9CjIYcSRYm0aVKSLmE6nfq05QycVLPuhDrxBlCtYJUqNAq2bNWEBj6ZXRuyxZyDRtqwnXvkhACDV+euTeJm1Ki7A73qNWtFiF+/gA95Gly2CJLDhwEHMOUAAuOpLYDEgBxZ4GRTlC1fDnpkM+fOqD6DDj1aZpITp0dtGCDhr+fVuCu3zlg49ijaokTZTo27uG7Gjn2P+hI8+PDPERoUB318bWbfAJ5sUNFcuGRTYUqV/3ogfXp1rWlMc6awJjiAAd2fm4ogXjz56aypOoIde4OE5u/F9x199dlXnnGiHZWEYbGpsAEA3QXYnHwEFliKAgswgJ8LPeiUXGwedCAKABACCN+EA1pYIIYaFlcDhytd51sGAJbo3onOpajiihlO92KHGaUXGwWjUBChjSPiWJuOO/LYIm4v1tXfE6J4gCSJEZ7YgRYUNrkji9P55sF/ogxw5ZkSqIDaZBV6aSGYq/lGZplndkckZ98xoICbTcIJGQAZcNmdmUc210hs35nCyJ58fgmIKX5RQGOZowxaZwYA+JaoKQwswGijBV4C6SiTUmpphMspJx9unX4KaimjDv9aaXOEBteBqmuuxgEHoLX6Kqx+yXqqBANsgCtit4FWQAEkrNbpq7HSOmtwag5w57GrmlJBASEU18ADjUYb3ADTinIttsgSB1oJFfA63bduimuqKB1keqwUhoCSK374wbujvOSu4QG6UvxBRydcpKsav++Ca6G8A6Pr1x2kVMyHwsVxUALDq/krnrhPSOzXG1lUTIoffqGR7Goi2MAxbv6O2kEG56I7CSlRsEFKFVyovDJoIRTg7sugNRDGqCJzJgcKE0ywc0ELm6KBCCJo8DIPFeCWNGcyqNFE06ToAfV0HBRgxsvLThHn1oddQMrXj5DyAQgjEHSAJMWZwS3HPxT/QMbabI/iBCliMLEJKX2EEkomBAUCxRi42VDADxyTYDVogV+wSChqmKxEKCDAYFDFj4OmwbY7bDGdBhtrnTQYOigeChUmc1K3QTnAUfEgGFgAWt88hKA6aCRIXhxnQ1yg3BCayK44EWdkUQcBByEQChFXfCB776aQsG0BIlQgQgE8qO26X1h8cEUep8ngRBnOy74E9QgRgEAC8SvOfQkh7FDBDmS43PmGoIiKUUEGkMEC/PJHgxw0xH74yx/3XnaYRJgMB8obxQW6kL9QYEJ0FIFgByfIL7/IQAlvQwEpnAC7DtLNJCKUoO/w45c44GwCXiAFB/OXAATQryUxdN4LfFiwgjCNYg+kYMIEFkCKDs6PKAIJouyGWMS1FSKJOMRB/BoIxYJIUXFUxNwoIkEKPAgCBZSQHQ1A2EWDfDEUVLyADj5AChSIQW6gu10bE/JG2VnCZGfo4R4d0sdQoBAHhPjhIB94v/wRoRKQWGRHgrhGSQJxCS+0pCZbEhAAOw==", - "serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png" - } - }, - { - "id": 112, - "type": "json", - "props": { - "show_label": true, - "container": true, - "min_width": 160, - "visible": true, - "name": "json" - }, - "serializer": "JSONSerializable", - "api_info": { - "info": { - "type": {}, - "description": "any valid json" - }, - "serialized_info": true - }, - "example_inputs": { - "raw": { - "a": 1, - "b": 2 - }, - "serialized": null - } - }, - { - "id": 113, - "type": "button", - "props": { - "value": "Run", - "variant": "secondary", - "visible": true, - "interactive": true, - "name": "button" - }, - "serializer": "StringSerializable", - "api_info": { - "info": { - "type": "string" - }, - "serialized_info": false - }, - "example_inputs": { - "raw": "Howdy!", - "serialized": "Howdy!" - } - }, - { - "id": 114, - "type": "textbox", - "props": { - "value": "", - "lines": 1, - "max_lines": 20, - "show_label": true, - "container": true, - "min_width": 160, - "visible": true, - "autofocus": false, - "autoscroll": true, - "type": "text", - "rtl": false, - "show_copy_button": false, - "name": "textbox", - "selectable": false - }, - "serializer": "StringSerializable", - "api_info": { - "info": { - "type": "string" - }, - "serialized_info": false - }, - "example_inputs": { - "raw": "Howdy!", - "serialized": "Howdy!" - } - }, - { - "id": 115, - "type": "form", - "props": { - "scale": 0, - "min_width": 0, - "name": "form" - } - }, - { - "id": 116, - "type": "form", - "props": { - "scale": 0, - "min_width": 0, - "name": "form" - } - } - ], - "css": null, - "title": "Gradio", - "space_id": null, - "enable_queue": null, - "show_error": true, - "show_api": true, - "is_colab": false, - "stylesheets": [ - "https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600&display=swap", - "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&display=swap" - ], - "theme": "default", - "layout": { - "id": 100, - "children": [ - { - "id": 101 - }, - { - "id": 115, - "children": [ - { - "id": 102 - } - ] - }, - { - "id": 103, - "children": [ - { - "id": 104, - "children": [ - { - "id": 105, - "children": [ - { - "id": 106 - }, - { - "id": 107 - } - ] - }, - { - "id": 108 - } - ] - }, - { - "id": 109, - "children": [ - { - "id": 110, - "children": [ - { - "id": 111 - }, - { - "id": 112 - } - ] - }, - { - "id": 113 - } - ] - } - ] - }, - { - "id": 116, - "children": [ - { - "id": 114 - } - ] - } - ] - }, - "dependencies": [ - { - "targets": [ - [ - 108, - "click" - ] - ], - "inputs": [ - 102, - 106 - ], - "outputs": [ - 107 - ], - "backend_fn": true, - "js": null, - "queue": null, - "api_name": null, - "scroll_to_output": false, - "show_progress": "full", - "every": null, - "batch": false, - "max_batch_size": 4, - "cancels": [], - "types": { - "continuous": false, - "generator": false - }, - "collects_event_data": false, - "trigger_after": null, - "trigger_only_on_success": false - }, - { - "targets": [ - [ - 113, - "click" - ] - ], - "inputs": [ - 102, - 111 - ], - "outputs": [ - 112 - ], - "backend_fn": true, - "js": null, - "queue": null, - "api_name": null, - "scroll_to_output": false, - "show_progress": "full", - "every": null, - "batch": false, - "max_batch_size": 4, - "cancels": [], - "types": { - "continuous": false, - "generator": false - }, - "collects_event_data": false, - "trigger_after": null, - "trigger_only_on_success": false - } - ] -} \ No newline at end of file + "version": "3.45.2", + "mode": "blocks", + "app_id": 3359633681304339607, + "dev_mode": false, + "analytics_enabled": true, + "components": [ + { + "id": 101, + "type": "markdown", + "props": { + "value": "# Detect Disease From Scan\nWith this model you can lorem ipsum\n- ipsum 1\n- ipsum 2", + "rtl": false, + "latex_delimiters": [ + { + "left": "$", + "right": "$", + "display": false + } + ], + "visible": true, + "sanitize_html": true, + "line_breaks": false, + "name": "markdown" + }, + "serializer": "StringSerializable", + "api_info": { + "info": { + "type": "string" + }, + "serialized_info": false + }, + "example_inputs": { + "raw": "Howdy!", + "serialized": "Howdy!" + } + }, + { + "id": 102, + "type": "checkboxgroup", + "props": { + "choices": [ + ["Covid", "Covid"], + ["Malaria", "Malaria"], + ["Lung Cancer", "Lung Cancer"] + ], + "value": [], + "type": "value", + "label": "Disease to Scan For", + "show_label": true, + "container": true, + "min_width": 160, + "visible": true, + "name": "checkboxgroup", + "selectable": false + }, + "serializer": "ListStringSerializable", + "api_info": { + "info": { + "type": "array", + "items": { + "type": "string" + } + }, + "serialized_info": false + }, + "example_inputs": { + "raw": ["Covid"], + "serialized": ["Covid"] + } + }, + { + "id": 103, + "type": "tabs", + "props": { + "visible": true, + "name": "tabs", + "selectable": false + } + }, + { + "id": 104, + "type": "tabitem", + "props": { + "label": "X-ray", + "name": "tabitem", + "selectable": false + } + }, + { + "id": 105, + "type": "row", + "props": { + "variant": "default", + "visible": true, + "equal_height": true, + "name": "row" + } + }, + { + "id": 106, + "type": "image", + "props": { + "image_mode": "RGB", + "invert_colors": false, + "source": "upload", + "tool": "editor", + "type": "numpy", + "show_label": true, + "show_download_button": true, + "container": true, + "min_width": 160, + "visible": true, + "streaming": false, + "mirror_webcam": true, + "brush_color": "#000000", + "mask_opacity": 0.7, + "show_share_button": false, + "name": "image", + "selectable": false + }, + "serializer": "ImgSerializable", + "api_info": { + "info": { + "type": "string", + "description": "base64 representation of an image" + }, + "serialized_info": true + }, + "example_inputs": { + "raw": "data:image/png;base64,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", + "serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png" + } + }, + { + "id": 107, + "type": "json", + "props": { + "show_label": true, + "container": true, + "min_width": 160, + "visible": true, + "name": "json" + }, + "serializer": "JSONSerializable", + "api_info": { + "info": { + "type": {}, + "description": "any valid json" + }, + "serialized_info": true + }, + "example_inputs": { + "raw": { + "a": 1, + "b": 2 + }, + "serialized": null + } + }, + { + "id": 108, + "type": "button", + "props": { + "value": "Run", + "variant": "secondary", + "visible": true, + "interactive": true, + "name": "button" + }, + "serializer": "StringSerializable", + "api_info": { + "info": { + "type": "string" + }, + "serialized_info": false + }, + "example_inputs": { + "raw": "Howdy!", + "serialized": "Howdy!" + } + }, + { + "id": 109, + "type": "tabitem", + "props": { + "label": "CT Scan", + "name": "tabitem", + "selectable": false + } + }, + { + "id": 110, + "type": "row", + "props": { + "variant": "default", + "visible": true, + "equal_height": true, + "name": "row" + } + }, + { + "id": 111, + "type": "image", + "props": { + "image_mode": "RGB", + "invert_colors": false, + "source": "upload", + "tool": "editor", + "type": "numpy", + "show_label": true, + "show_download_button": true, + "container": true, + "min_width": 160, + "visible": true, + "streaming": false, + "mirror_webcam": true, + "brush_color": "#000000", + "mask_opacity": 0.7, + "show_share_button": false, + "name": "image", + "selectable": false + }, + "serializer": "ImgSerializable", + "api_info": { + "info": { + "type": "string", + "description": "base64 representation of an image" + }, + "serialized_info": true + }, + "example_inputs": { + "raw": "data:image/png;base64,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", + "serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png" + } + }, + { + "id": 112, + "type": "json", + "props": { + "show_label": true, + "container": true, + "min_width": 160, + "visible": true, + "name": "json" + }, + "serializer": "JSONSerializable", + "api_info": { + "info": { + "type": {}, + "description": "any valid json" + }, + "serialized_info": true + }, + "example_inputs": { + "raw": { + "a": 1, + "b": 2 + }, + "serialized": null + } + }, + { + "id": 113, + "type": "button", + "props": { + "value": "Run", + "variant": "secondary", + "visible": true, + "interactive": true, + "name": "button" + }, + "serializer": "StringSerializable", + "api_info": { + "info": { + "type": "string" + }, + "serialized_info": false + }, + "example_inputs": { + "raw": "Howdy!", + "serialized": "Howdy!" + } + }, + { + "id": 114, + "type": "textbox", + "props": { + "value": "", + "lines": 1, + "max_lines": 20, + "show_label": true, + "container": true, + "min_width": 160, + "visible": true, + "autofocus": false, + "autoscroll": true, + "type": "text", + "rtl": false, + "show_copy_button": false, + "name": "textbox", + "selectable": false + }, + "serializer": "StringSerializable", + "api_info": { + "info": { + "type": "string" + }, + "serialized_info": false + }, + "example_inputs": { + "raw": "Howdy!", + "serialized": "Howdy!" + } + }, + { + "id": 115, + "type": "form", + "props": { + "scale": 0, + "min_width": 0, + "name": "form" + } + }, + { + "id": 116, + "type": "form", + "props": { + "scale": 0, + "min_width": 0, + "name": "form" + } + } + ], + "css": null, + "title": "Gradio", + "space_id": null, + "enable_queue": null, + "show_error": true, + "show_api": true, + "is_colab": false, + "stylesheets": [ + "https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600&display=swap", + "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&display=swap" + ], + "theme": "default", + "layout": { + "id": 100, + "children": [ + { + "id": 101 + }, + { + "id": 115, + "children": [ + { + "id": 102 + } + ] + }, + { + "id": 103, + "children": [ + { + "id": 104, + "children": [ + { + "id": 105, + "children": [ + { + "id": 106 + }, + { + "id": 107 + } + ] + }, + { + "id": 108 + } + ] + }, + { + "id": 109, + "children": [ + { + "id": 110, + "children": [ + { + "id": 111 + }, + { + "id": 112 + } + ] + }, + { + "id": 113 + } + ] + } + ] + }, + { + "id": 116, + "children": [ + { + "id": 114 + } + ] + } + ] + }, + "dependencies": [ + { + "targets": [[108, "click"]], + "inputs": [102, 106], + "outputs": [107], + "backend_fn": true, + "js": null, + "queue": null, + "api_name": null, + "scroll_to_output": false, + "show_progress": "full", + "every": null, + "batch": false, + "max_batch_size": 4, + "cancels": [], + "types": { + "continuous": false, + "generator": false + }, + "collects_event_data": false, + "trigger_after": null, + "trigger_only_on_success": false + }, + { + "targets": [[113, "click"]], + "inputs": [102, 111], + "outputs": [112], + "backend_fn": true, + "js": null, + "queue": null, + "api_name": null, + "scroll_to_output": false, + "show_progress": "full", + "every": null, + "batch": false, + "max_batch_size": 4, + "cancels": [], + "types": { + "continuous": false, + "generator": false + }, + "collects_event_data": false, + "trigger_after": null, + "trigger_only_on_success": false + } + ] +} diff --git a/test/test_files/xray_config_wrong.json b/test/test_files/xray_config_wrong.json index ef658fa20be50..70c6c3c390cd0 100644 --- a/test/test_files/xray_config_wrong.json +++ b/test/test_files/xray_config_wrong.json @@ -1,570 +1,530 @@ { - "version": "3.45.2", - "mode": "blocks", - "app_id": 14154062863405525567, - "dev_mode": false, - "analytics_enabled": true, - "components": [ - { - "id": 1, - "type": "markdown", - "props": { - "value": "# Detect Disease From Scan\nWith this model you can lorem ipsum\n- ipsum 1\n- ipsum 2", - "rtl": false, - "latex_delimiters": [ - { - "left": "$", - "right": "$", - "display": false - } - ], - "visible": true, - "sanitize_html": true, - "line_breaks": false, - "name": "markdown" - }, - "serializer": "StringSerializable", - "api_info": { - "info": { - "type": "string" - }, - "serialized_info": false - }, - "example_inputs": { - "raw": "Howdy!", - "serialized": "Howdy!" - } - }, - { - "id": 2, - "type": "checkboxgroup", - "props": { - "choices": [ - [ - "Covid", - "Covid" - ], - [ - "Malaria", - "Malaria" - ], - [ - "Lung Cancer", - "Lung Cancer" - ] - ], - "value": [], - "type": "value", - "label": "Disease to Scan For", - "show_label": true, - "container": true, - "min_width": 160, - "visible": true, - "name": "checkboxgroup", - "selectable": false - }, - "serializer": "ListStringSerializable", - "api_info": { - "info": { - "type": "array", - "items": { - "type": "string" - } - }, - "serialized_info": false - }, - "example_inputs": { - "raw": [ - "Covid" - ], - "serialized": [ - "Covid" - ] - } - }, - { - "id": 3, - "type": "tabs", - "props": { - "visible": true, - "name": "tabs", - "selectable": false - } - }, - { - "id": 4, - "type": "tabitem", - "props": { - "label": "X-ray", - "name": "tabitem", - "selectable": false - } - }, - { - "id": 5, - "type": "row", - "props": { - "variant": "default", - "visible": true, - "equal_height": true, - "name": "row" - } - }, - { - "id": 6, - "type": "image", - "props": { - "image_mode": "RGB", - "invert_colors": false, - "source": "upload", - "tool": "editor", - "type": "numpy", - "show_label": true, - "show_download_button": true, - "container": true, - "min_width": 160, - "visible": true, - "streaming": false, - "mirror_webcam": true, - "brush_color": "#000000", - "mask_opacity": 0.7, - "show_share_button": false, - "name": "image", - "selectable": false - }, - "serializer": "ImgSerializable", - "api_info": { - "info": { - "type": "string", - "description": "base64 representation of an image" - }, - "serialized_info": true - }, - "example_inputs": { - "raw": "data:image/png;base64,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", - "serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png" - } - }, - { - "id": 7, - "type": "json", - "props": { - "show_label": true, - "container": true, - "min_width": 160, - "visible": true, - "name": "json" - }, - "serializer": "JSONSerializable", - "api_info": { - "info": { - "type": {}, - "description": "any valid json" - }, - "serialized_info": true - }, - "example_inputs": { - "raw": { - "a": 1, - "b": 2 - }, - "serialized": null - } - }, - { - "id": 8, - "type": "button", - "props": { - "value": "Run", - "variant": "secondary", - "visible": true, - "interactive": true, - "name": "button" - }, - "serializer": "StringSerializable", - "api_info": { - "info": { - "type": "string" - }, - "serialized_info": false - }, - "example_inputs": { - "raw": "Howdy!", - "serialized": "Howdy!" - } - }, - { - "id": 9, - "type": "tabitem", - "props": { - "label": "CT Scan", - "name": "tabitem", - "selectable": false - } - }, - { - "id": 10, - "type": "row", - "props": { - "variant": "default", - "visible": true, - "equal_height": true, - "name": "row" - } - }, - { - "id": 11, - "type": "image", - "props": { - "image_mode": "RGB", - "invert_colors": false, - "source": "upload", - "tool": "editor", - "type": "numpy", - "show_label": true, - "show_download_button": true, - "container": true, - "min_width": 160, - "visible": true, - "streaming": false, - "mirror_webcam": true, - "brush_color": "#000000", - "mask_opacity": 0.7, - "show_share_button": false, - "name": "image", - "selectable": false - }, - "serializer": "ImgSerializable", - "api_info": { - "info": { - "type": "string", - "description": "base64 representation of an image" - }, - "serialized_info": true - }, - "example_inputs": { - "raw": "data:image/png;base64,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", - "serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png" - } - }, - { - "id": 12, - "type": "json", - "props": { - "show_label": true, - "container": true, - "min_width": 160, - "visible": true, - "name": "json" - }, - "serializer": "JSONSerializable", - "api_info": { - "info": { - "type": {}, - "description": "any valid json" - }, - "serialized_info": true - }, - "example_inputs": { - "raw": { - "a": 1, - "b": 2 - }, - "serialized": null - } - }, - { - "id": 13, - "type": "button", - "props": { - "value": "Run", - "variant": "secondary", - "visible": true, - "interactive": true, - "name": "button" - }, - "serializer": "StringSerializable", - "api_info": { - "info": { - "type": "string" - }, - "serialized_info": false - }, - "example_inputs": { - "raw": "Howdy!", - "serialized": "Howdy!" - } - }, - { - "id": 14, - "type": "textbox", - "props": { - "value": "", - "lines": 1, - "max_lines": 20, - "show_label": true, - "container": true, - "min_width": 160, - "visible": true, - "autofocus": false, - "autoscroll": true, - "type": "text", - "rtl": false, - "show_copy_button": false, - "name": "textbox", - "selectable": false - }, - "serializer": "StringSerializable", - "api_info": { - "info": { - "type": "string" - }, - "serialized_info": false - }, - "example_inputs": { - "raw": "Howdy!", - "serialized": "Howdy!" - } - }, - { - "id": 15, - "type": "form", - "props": { - "scale": 0, - "min_width": 0, - "name": "form" - } - }, - { - "id": 16, - "type": "form", - "props": { - "scale": 0, - "min_width": 0, - "name": "form" - } - }, - { - "id": 118, - "type": "textbox", - "props": { - "value": "", - "lines": 1, - "max_lines": 20, - "show_label": true, - "container": true, - "min_width": 160, - "visible": true, - "autofocus": false, - "autoscroll": true, - "type": "text", - "rtl": false, - "show_copy_button": false, - "name": "textbox", - "selectable": false - }, - "serializer": "StringSerializable", - "api_info": { - "info": { - "type": "string" - }, - "serialized_info": false - }, - "example_inputs": { - "raw": "Howdy!", - "serialized": "Howdy!" - } - }, - { - "id": 119, - "type": "form", - "props": { - "scale": 0, - "min_width": 0, - "name": "form" - } - } - ], - "css": null, - "title": "Gradio", - "space_id": null, - "enable_queue": null, - "show_error": true, - "show_api": true, - "is_colab": false, - "stylesheets": [ - "https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600&display=swap", - "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&display=swap" - ], - "theme": "default", - "layout": { - "id": 117, - "children": [ - { - "id": 1 - }, - { - "id": 15, - "children": [ - { - "id": 2 - } - ] - }, - { - "id": 3, - "children": [ - { - "id": 4, - "children": [ - { - "id": 5, - "children": [ - { - "id": 6 - }, - { - "id": 7 - } - ] - }, - { - "id": 8 - } - ] - }, - { - "id": 9, - "children": [ - { - "id": 10, - "children": [ - { - "id": 11 - }, - { - "id": 12 - } - ] - }, - { - "id": 13 - } - ] - } - ] - }, - { - "id": 16, - "children": [ - { - "id": 14 - } - ] - }, - { - "id": 119, - "children": [ - { - "id": 118 - } - ] - } - ] - }, - "dependencies": [ - { - "targets": [ - [ - 8, - "click" - ] - ], - "inputs": [ - 2, - 6 - ], - "outputs": [ - 7 - ], - "backend_fn": true, - "js": null, - "queue": null, - "api_name": null, - "scroll_to_output": false, - "show_progress": "full", - "every": null, - "batch": false, - "max_batch_size": 4, - "cancels": [], - "types": { - "continuous": false, - "generator": false - }, - "collects_event_data": false, - "trigger_after": null, - "trigger_only_on_success": false - }, - { - "targets": [ - [ - 13, - "click" - ] - ], - "inputs": [ - 2, - 11 - ], - "outputs": [ - 12 - ], - "backend_fn": true, - "js": null, - "queue": null, - "api_name": null, - "scroll_to_output": false, - "show_progress": "full", - "every": null, - "batch": false, - "max_batch_size": 4, - "cancels": [], - "types": { - "continuous": false, - "generator": false - }, - "collects_event_data": false, - "trigger_after": null, - "trigger_only_on_success": false - }, - { - "targets": [ - [ - null, - "load" - ] - ], - "inputs": [], - "outputs": [ - 118 - ], - "backend_fn": true, - "js": null, - "queue": null, - "api_name": null, - "scroll_to_output": false, - "show_progress": "full", - "every": null, - "batch": false, - "max_batch_size": 4, - "cancels": [], - "types": { - "continuous": false, - "generator": false - }, - "collects_event_data": false, - "trigger_after": null, - "trigger_only_on_success": false - } - ] -} \ No newline at end of file + "version": "3.45.2", + "mode": "blocks", + "app_id": 14154062863405525567, + "dev_mode": false, + "analytics_enabled": true, + "components": [ + { + "id": 1, + "type": "markdown", + "props": { + "value": "# Detect Disease From Scan\nWith this model you can lorem ipsum\n- ipsum 1\n- ipsum 2", + "rtl": false, + "latex_delimiters": [ + { + "left": "$", + "right": "$", + "display": false + } + ], + "visible": true, + "sanitize_html": true, + "line_breaks": false, + "name": "markdown" + }, + "serializer": "StringSerializable", + "api_info": { + "info": { + "type": "string" + }, + "serialized_info": false + }, + "example_inputs": { + "raw": "Howdy!", + "serialized": "Howdy!" + } + }, + { + "id": 2, + "type": "checkboxgroup", + "props": { + "choices": [ + ["Covid", "Covid"], + ["Malaria", "Malaria"], + ["Lung Cancer", "Lung Cancer"] + ], + "value": [], + "type": "value", + "label": "Disease to Scan For", + "show_label": true, + "container": true, + "min_width": 160, + "visible": true, + "name": "checkboxgroup", + "selectable": false + }, + "serializer": "ListStringSerializable", + "api_info": { + "info": { + "type": "array", + "items": { + "type": "string" + } + }, + "serialized_info": false + }, + "example_inputs": { + "raw": ["Covid"], + "serialized": ["Covid"] + } + }, + { + "id": 3, + "type": "tabs", + "props": { + "visible": true, + "name": "tabs", + "selectable": false + } + }, + { + "id": 4, + "type": "tabitem", + "props": { + "label": "X-ray", + "name": "tabitem", + "selectable": false + } + }, + { + "id": 5, + "type": "row", + "props": { + "variant": "default", + "visible": true, + "equal_height": true, + "name": "row" + } + }, + { + "id": 6, + "type": "image", + "props": { + "image_mode": "RGB", + "invert_colors": false, + "source": "upload", + "tool": "editor", + "type": "numpy", + "show_label": true, + "show_download_button": true, + "container": true, + "min_width": 160, + "visible": true, + "streaming": false, + "mirror_webcam": true, + "brush_color": "#000000", + "mask_opacity": 0.7, + "show_share_button": false, + "name": "image", + "selectable": false + }, + "serializer": "ImgSerializable", + "api_info": { + "info": { + "type": "string", + "description": "base64 representation of an image" + }, + "serialized_info": true + }, + "example_inputs": { + "raw": "data:image/png;base64,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", + "serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png" + } + }, + { + "id": 7, + "type": "json", + "props": { + "show_label": true, + "container": true, + "min_width": 160, + "visible": true, + "name": "json" + }, + "serializer": "JSONSerializable", + "api_info": { + "info": { + "type": {}, + "description": "any valid json" + }, + "serialized_info": true + }, + "example_inputs": { + "raw": { + "a": 1, + "b": 2 + }, + "serialized": null + } + }, + { + "id": 8, + "type": "button", + "props": { + "value": "Run", + "variant": "secondary", + "visible": true, + "interactive": true, + "name": "button" + }, + "serializer": "StringSerializable", + "api_info": { + "info": { + "type": "string" + }, + "serialized_info": false + }, + "example_inputs": { + "raw": "Howdy!", + "serialized": "Howdy!" + } + }, + { + "id": 9, + "type": "tabitem", + "props": { + "label": "CT Scan", + "name": "tabitem", + "selectable": false + } + }, + { + "id": 10, + "type": "row", + "props": { + "variant": "default", + "visible": true, + "equal_height": true, + "name": "row" + } + }, + { + "id": 11, + "type": "image", + "props": { + "image_mode": "RGB", + "invert_colors": false, + "source": "upload", + "tool": "editor", + "type": "numpy", + "show_label": true, + "show_download_button": true, + "container": true, + "min_width": 160, + "visible": true, + "streaming": false, + "mirror_webcam": true, + "brush_color": "#000000", + "mask_opacity": 0.7, + "show_share_button": false, + "name": "image", + "selectable": false + }, + "serializer": "ImgSerializable", + "api_info": { + "info": { + "type": "string", + "description": "base64 representation of an image" + }, + "serialized_info": true + }, + "example_inputs": { + "raw": "data:image/png;base64,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", + "serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png" + } + }, + { + "id": 12, + "type": "json", + "props": { + "show_label": true, + "container": true, + "min_width": 160, + "visible": true, + "name": "json" + }, + "serializer": "JSONSerializable", + "api_info": { + "info": { + "type": {}, + "description": "any valid json" + }, + "serialized_info": true + }, + "example_inputs": { + "raw": { + "a": 1, + "b": 2 + }, + "serialized": null + } + }, + { + "id": 13, + "type": "button", + "props": { + "value": "Run", + "variant": "secondary", + "visible": true, + "interactive": true, + "name": "button" + }, + "serializer": "StringSerializable", + "api_info": { + "info": { + "type": "string" + }, + "serialized_info": false + }, + "example_inputs": { + "raw": "Howdy!", + "serialized": "Howdy!" + } + }, + { + "id": 14, + "type": "textbox", + "props": { + "value": "", + "lines": 1, + "max_lines": 20, + "show_label": true, + "container": true, + "min_width": 160, + "visible": true, + "autofocus": false, + "autoscroll": true, + "type": "text", + "rtl": false, + "show_copy_button": false, + "name": "textbox", + "selectable": false + }, + "serializer": "StringSerializable", + "api_info": { + "info": { + "type": "string" + }, + "serialized_info": false + }, + "example_inputs": { + "raw": "Howdy!", + "serialized": "Howdy!" + } + }, + { + "id": 15, + "type": "form", + "props": { + "scale": 0, + "min_width": 0, + "name": "form" + } + }, + { + "id": 16, + "type": "form", + "props": { + "scale": 0, + "min_width": 0, + "name": "form" + } + }, + { + "id": 118, + "type": "textbox", + "props": { + "value": "", + "lines": 1, + "max_lines": 20, + "show_label": true, + "container": true, + "min_width": 160, + "visible": true, + "autofocus": false, + "autoscroll": true, + "type": "text", + "rtl": false, + "show_copy_button": false, + "name": "textbox", + "selectable": false + }, + "serializer": "StringSerializable", + "api_info": { + "info": { + "type": "string" + }, + "serialized_info": false + }, + "example_inputs": { + "raw": "Howdy!", + "serialized": "Howdy!" + } + }, + { + "id": 119, + "type": "form", + "props": { + "scale": 0, + "min_width": 0, + "name": "form" + } + } + ], + "css": null, + "title": "Gradio", + "space_id": null, + "enable_queue": null, + "show_error": true, + "show_api": true, + "is_colab": false, + "stylesheets": [ + "https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600&display=swap", + "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&display=swap" + ], + "theme": "default", + "layout": { + "id": 117, + "children": [ + { + "id": 1 + }, + { + "id": 15, + "children": [ + { + "id": 2 + } + ] + }, + { + "id": 3, + "children": [ + { + "id": 4, + "children": [ + { + "id": 5, + "children": [ + { + "id": 6 + }, + { + "id": 7 + } + ] + }, + { + "id": 8 + } + ] + }, + { + "id": 9, + "children": [ + { + "id": 10, + "children": [ + { + "id": 11 + }, + { + "id": 12 + } + ] + }, + { + "id": 13 + } + ] + } + ] + }, + { + "id": 16, + "children": [ + { + "id": 14 + } + ] + }, + { + "id": 119, + "children": [ + { + "id": 118 + } + ] + } + ] + }, + "dependencies": [ + { + "targets": [[8, "click"]], + "inputs": [2, 6], + "outputs": [7], + "backend_fn": true, + "js": null, + "queue": null, + "api_name": null, + "scroll_to_output": false, + "show_progress": "full", + "every": null, + "batch": false, + "max_batch_size": 4, + "cancels": [], + "types": { + "continuous": false, + "generator": false + }, + "collects_event_data": false, + "trigger_after": null, + "trigger_only_on_success": false + }, + { + "targets": [[13, "click"]], + "inputs": [2, 11], + "outputs": [12], + "backend_fn": true, + "js": null, + "queue": null, + "api_name": null, + "scroll_to_output": false, + "show_progress": "full", + "every": null, + "batch": false, + "max_batch_size": 4, + "cancels": [], + "types": { + "continuous": false, + "generator": false + }, + "collects_event_data": false, + "trigger_after": null, + "trigger_only_on_success": false + }, + { + "targets": [[null, "load"]], + "inputs": [], + "outputs": [118], + "backend_fn": true, + "js": null, + "queue": null, + "api_name": null, + "scroll_to_output": false, + "show_progress": "full", + "every": null, + "batch": false, + "max_batch_size": 4, + "cancels": [], + "types": { + "continuous": false, + "generator": false + }, + "collects_event_data": false, + "trigger_after": null, + "trigger_only_on_success": false + } + ] +}