Skip to content

Commit

Permalink
gr.Number() max/min limit (#3991)
Browse files Browse the repository at this point in the history
* Add min max handling for Number (#3871)

* feat: add min max handling for Number

* Update CHANGELOG.md

* fix: Error when min or max is not specified

* fix formatting

* fix: error when nothing is specified

* Just put infinity in min and max

---------

Co-authored-by: Dawood Khan <[email protected]>

* number limit

* Update gradio/components.py

Co-authored-by: Abubakar Abid <[email protected]>

* New Version Docs (#4027)

* [create-pull-request] automated change

* Trigger Build

---------

Co-authored-by: aliabd <[email protected]>
Co-authored-by: aliabd <[email protected]>

* Safer `HuggingFaceDatasetSaver` (and deprecate `HuggingFaceDatasetJsonSaver`) (#3973)

* Draft for a safer HuggingFaceDatasetSaver

* Rename (and replace) gr.SaferHuggingFaceDatasetSaver as gr.HuggingFaceDatasetSaver

* update changelog

* ruff

* doc

* tmp work

* merge 2 classes

* remove useless code

* adapt tests

* Update gradio/flagging.py

Co-authored-by: Abubakar Abid <[email protected]>

* Update CHANGELOG.md

* fix typing

* code formatting

* removed print from tests

* removing imports

* removing imports

* fix paths

* formatting

* wording

* formating

* fix tests

---------

Co-authored-by: testbot <[email protected]>
Co-authored-by: Abubakar Abid <[email protected]>

* merge

* Allow state to be rendered multiple times (#4030)

* state render

* add test

* formatting

* changelog

* Allow decoding b64 string without header in processing utils (#4031)

* allow decoding b64 string without headers

* install gradio-client in edittable mode

* update GH actions

* add test for decoding headerless b64

* add test for decoding headerless b64 image

* some linting

* fix test

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Sets matplotlib backend to agg before rendering math (#4029)

* matplotlib-agg

* fix

* context manager

* Update CHANGELOG.md

* update demos

* linting

* removed warning

* fix test

* fixes

* fix tests

* Upgrade pyright to 1.1.305 (#4042)

* Fastapi Python Client Guide (#3892)

* fastapi guide

* changelog

* writing

* finish guide

* fix

* Update guides/06_client-libraries/fastapi-app-with-the-gradio-client.md

Co-authored-by: Ali Abdalla <[email protected]>

* Update guides/06_client-libraries/fastapi-app-with-the-gradio-client.md

Co-authored-by: Ali Abdalla <[email protected]>

* Update guides/06_client-libraries/fastapi-app-with-the-gradio-client.md

Co-authored-by: Ali Abdalla <[email protected]>

* Update guides/06_client-libraries/fastapi-app-with-the-gradio-client.md

Co-authored-by: Ali Abdalla <[email protected]>

* dependencies

* html

---------

Co-authored-by: Ali Abdalla <[email protected]>

* fix overflowing gutter and dark mode base color (#4051)

* Add ability to blocklist filepaths, ability to specify where gradio temp files are created (#4047)

* temporary file

* tests

* formatting

* rename

* added another test

* guide

* formatting

* changelog

* added custom gradio temp directory (#4053)

* added custom gradio temp directory

* Update 03_sharing-your-app.md

* rename test

* address review

* remove print

* Chatbot code syntax highlighting (#4048)

* first pass

* fixes

* more fixes

* remove breaks

* format

* version

* pr fixes

* changelog

* test fix

* background color

* format

* revert test fix

* changes

* changes

* test

* changes

* changes

* changes

* changes

* changes

---------

Co-authored-by: Abubakar Abid <[email protected]>
Co-authored-by: Ali Abid <[email protected]>

* Fixes issue with indentation in code field with streaming (#4043)

* indent fix

* fix

* changelog

* fix overflowing gutter and dark mode base color (#4051)

* Add ability to blocklist filepaths, ability to specify where gradio temp files are created (#4047)

* temporary file

* tests

* formatting

* rename

* added another test

* guide

* formatting

* changelog

* added custom gradio temp directory (#4053)

* added custom gradio temp directory

* Update 03_sharing-your-app.md

* rename test

* address review

* remove print

* Chatbot code syntax highlighting (#4048)

* first pass

* fixes

* more fixes

* remove breaks

* format

* version

* pr fixes

* changelog

* test fix

* background color

* format

* revert test fix

* changes

* changes

* test

* changes

* changes

* changes

* changes

* changes

---------

Co-authored-by: Abubakar Abid <[email protected]>
Co-authored-by: Ali Abid <[email protected]>

* fix

* fix test

---------

Co-authored-by: Abubakar Abid <[email protected]>
Co-authored-by: pngwn <[email protected]>
Co-authored-by: Ali Abid <[email protected]>

* [create-pull-request] automated change (#4059)

Co-authored-by: aliabid94 <[email protected]>
Co-authored-by: Abubakar Abid <[email protected]>

* changelog (#4064)

* New Version Docs (#4069)

* [create-pull-request] automated change

* Trigger Build

---------

Co-authored-by: aliabd <[email protected]>
Co-authored-by: aliabd <[email protected]>

* Soft theme fix (#4070)

* fix

* fix

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Empty gallery fix (#4072)

* changes

* changes

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Fix bug where functions with type hints caused errors (#4068)

* Fix + test

* CHANGELOG

* Update test/test_utils.py

Co-authored-by: Abubakar Abid <[email protected]>

* Update gradio/utils.py

Co-authored-by: Abubakar Abid <[email protected]>

---------

Co-authored-by: Abubakar Abid <[email protected]>

* More Ruff rules (#4038)

* Bump ruff to 0.0.264

* Enable Ruff Naming rules and fix most errors

* Move `clean_html` to utils (to fix an N lint error)

* Changelog

* Clean up possibly leaking file handles

* Enable and autofix Ruff SIM

* Fix remaining Ruff SIMs

* Enable and autofix Ruff UP issues

* Fix misordered import from #4048

* Fix bare except from #4048

---------

Co-authored-by: Abubakar Abid <[email protected]>

* [WIP] Language Agnostic Typing in `/info` route (#4039)

* First commit

* All serializers

* Remove output type

* Add route

* Format json

* Modify dropdown and slider choices

* Fix impl

* Lint

* Add tests

* Fix lint

* remove breakpoint

* Tests passing locally

* Format code

* Address comments

* Use union + fix tests

* handle multiple file case

* Add serializer to info payload

* lint

* Add to CHANGELOG

* grc version

* requirements

* fix test

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Keep hidden Accordion content in DOM (#4073)

* changes

* changes

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Theme builder fixes (#4080)

* theme-builder-fixes

* theme-builder-fixes

* fix expand issue

* changes

* Update gradio/themes/builder_app.py

* changelog

---------

Co-authored-by: Ali Abid <[email protected]>

* Misc file and docs fixes (#4086)

* uvicorn version

* uvicorn version

* changes

* guides

* guide

* changelog

* typo

* typo

* Update guides/04_integrating-other-frameworks/01_using-hugging-face-integrations.md

* chinese lang

* rename

* Update guides/04_integrating-other-frameworks/01_using-hugging-face-integrations.md

* Update guides/03_building-with-blocks/04_custom-CSS-and-JS.md

Co-authored-by: aliabid94 <[email protected]>

* address review

* simplify section

---------

Co-authored-by: aliabid94 <[email protected]>

* Removing "State" from view API info (#4107)

* wip pr

* update client version

* update space fetcher

* changelog, workflow

* fix not flaky tests

* lint

* v2

* Dont send request to `/info` if version before 3.28.3 (#4109)

* Add code

* Lint

* CHANGELOG

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Upload audio ios (#4071)

* changes

* changes

* change

* changes

* changes

* changes

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Allow textbox / number submits to trigger Interface submit (#4090)

* changes

* changes

* changes

* changes

* changes

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Fix slider released event not triggering when released on mobile (#4098)

* Fix slider released event not triggering when released on mobile

* Update CHANGELOG

* fix range test

* retrigger

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Fix then logic to work after failures (#4115)

* change

* changes

* changes

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Fixes to view API page (#4112)

* logo

* fix for new info and logo path

* changelog

* remove example_input from returns

---------

Co-authored-by: Ali Abdalla <[email protected]>

* Add support for async generators (#3821)

* Add impl + unit test

* CHANGELOG

* Lint

* Type check

* Remove print

* Fix tests

* revert change

* Lint

* formatting

* Fix test

* Lint

---------

Co-authored-by: Abubakar Abid <[email protected]>
Co-authored-by: Ali Abid <[email protected]>

* release (#4116)

* Bumpt client version (#4125)

* New Version Docs (#4131)

* [create-pull-request] automated change

* Trigger Build

---------

Co-authored-by: aliabd <[email protected]>
Co-authored-by: aliabd <[email protected]>

* Fix create version docs action (#4130)

* define version instead of upgrading

* add sleep

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Fix dev docs (#4132)

* Move .config/README.md to js/README.md

* Link js/README.md from CONTRIBUTING.md

* Update CHANGELOG.md

---------

Co-authored-by: Abubakar Abid <[email protected]>

* changelog (#4136)

* Fix website build issue (#4142)

* upgrade pnpm

* changelgo

* Fix python client test (#4138)

* Fix python client test

* CHANGELOG

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Fix isssue with running with nginx (#4133)

* nginx-root

* fix

* ability to set root path

* removed root

* removed root

* fix

* changelog

* Update gradio/routes.py

Co-authored-by: aliabid94 <[email protected]>

* Update gradio/routes.py

Co-authored-by: aliabid94 <[email protected]>

---------

Co-authored-by: aliabid94 <[email protected]>

* Record username when flagging (#4135)

* record username

* fix

* changelog fix

* format

* fix hf saver

* fix deserialization

* fixes

* Fix api info for File component (#4153)

* Fix output file type info

* Fix example inputs

* CHANGELOG

* Update client

* Add test

* Bump version

* Bump min client version

* Update .prettierignore adding client/js/dist and .venv (#4160)

* Fix the prettier.ignorePath field in the VSCode workspace settings (#4164)

Co-authored-by: pngwn <[email protected]>

* simplify format of changelog (#4163)

* Fix the wildcard in .editorconfig to match files in nested directories (#4165)

* Fix the wildcard in .editorconfig to match files in nested directories

* Remove a wrong whitespace in a brace expansion notation in .editorconfig

---------

Co-authored-by: pngwn <[email protected]>

* Fix flaky interface test (#4168)

* Fix test

* Lint

* Fix vs code lint

* Adds missing components to gradio client serializing's component mapping (#4167)

* add missing serialization

* format

* update release note format

* update release note format

* fix test

* Release 3.30 (#4166)

* release

* requirements

* [Docs] Resolve numerous typos (#4170)

* Resolve numerous typos

* Delete test.py

* Run generate_notebooks

* notebooks

---------

Co-authored-by: Abubakar Abid <[email protected]>

* New Version Docs (#4172)

* [create-pull-request] automated change

* Update v3.30.0_template.html

---------

Co-authored-by: abidlabs <[email protected]>
Co-authored-by: Abubakar Abid <[email protected]>

* Dispatch dropdown change on value change for any reason (#4128)

* changes

* changes

* changes

---------

Co-authored-by: Abubakar Abid <[email protected]>

* hotfix for test (#4173)

* hotfix for test

* removed comment

* 3712 js client (#3899)

* update ci (#4184)

* bump client version (#4185)

* bump client version

* ignore spaces-test

* Fix (#4186)

* bump client version

* ignore spaces-test

* fix

* update token for npm action (#4187)

* change (#4189)

* ci typo (#4190)

* Fix npm publish again again (#4191)

* ci typo

* fix

* Fix npm publish again again (#4192)

* ci typo

* fix

* again

* Fix npm publish again again (#4193)

* ci typo

* fix

* again

* again

* Add format argument to Audio (#4178)

* experimental

* Add test

* Rename to format

* Rename

* CHANGELOG

* Add to docstring

* Update gradio/components.py

Co-authored-by: Abubakar Abid <[email protected]>

---------

Co-authored-by: Abubakar Abid <[email protected]>

* chore: update versions (#4188)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Fix npm publish again again (#4195)

* ci typo

* fix

* again

* again

* again

* client docs tweaks (#4196)

* ci typo

* fix

* again

* again

* again

* ignore workbench

* small tweaks for publish + docs

* Fix "TypeError: issubclass() arg 1 must be a class" When Optional args  (#4200)

* fix "issubclass() arg 1 must be a class" when args is Optional

* Update CHANGELOG.md

add fix "TypeError: issubclass() arg 1 must be a class" when use Optional args

* Update gradio/helpers.py

Co-authored-by: Aarni Koskela <[email protected]>

* changelog

* formatting

---------

Co-authored-by: Abubakar Abid <[email protected]>
Co-authored-by: Aarni Koskela <[email protected]>

* Fix semiver import (#4201)

* fix token (#4208)

* fix token

* add label

* Fix Explanation Regarding NumPy Image Component (#4204)

* 20230513 swap np height and width in docs

* changelog

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Correct stacklevel for check_deprecated_parameters (#4203)

Co-authored-by: Abubakar Abid <[email protected]>

* Programmatically launch reload to allow factories and arguments to be passed to the app (#4119)

* Programmatically lauch reload to allow factories and arguments to be passed to the app

* add warning

* modify warning

* guide fixes

* formatting

* changes

* warning

* import fix

* fix tests

* fix tests

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Update CONTRIBUTING.md (#4220)

* Input listener (#4157)

* changes

* changes

* changes

* changes

* changes

* changes

* changes

* chnages

* fix

* changes

* changes

* merge

* changes

* restore

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Do not do any analytics requests if analytics are disabled (#4194)

* Move analytics-related bits to gradio.analytics

* Do not do any analytics requests if analytics are disabled

* Remove unused log_feature_analytics

* removed redundant analytics, rewrote

* renamed

* save

* fixed test'

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Increase websocket messaging timeout (#4235)

* increase websocket timeout

* changelog

* Fix for `typing.get_type_hints()` on Python 3.9 or lower (#4228)

* fix

* fix docstring

* type hint fix

* fix test

* Update gradio/utils.py

Co-authored-by: Aarni Koskela <[email protected]>

* fix indentation

---------

Co-authored-by: Aarni Koskela <[email protected]>

* Some tweaks to the Client (#4230)

* parameter names

* tweaks

* separate out serialize

* fix

* changelog

* fix

* fix

* improve test

* Only allow messaging update if analytics is enabled (#4236)

* Only allow messaging update if analytics are allowed

Follows up on #4194

* Remove duplicate changelog entry

* remove circular import

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Fix client filepaths (#4202)

* transform returned paths to useful URLs

* changeset

* update app

* revert

* revert

* changelog

* Update client/js/src/client.ts

Co-authored-by: aliabid94 <[email protected]>

* format

---------

Co-authored-by: Abubakar Abid <[email protected]>
Co-authored-by: aliabid94 <[email protected]>

* fix cancels (#4225)

* fix cancels

* changelog

* refactor to make it work

* chore: update versions (#4207)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Fix publish (#4240)

* fix npm publish

* fix npm publish

* release (#4219)

Co-authored-by: pngwn <[email protected]>

* Fixes chatbot_dialogpt demo (#4238)

* demo fix

* changelog

* fix

* demo

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Fix JSONDecodeError (#4241)

* Fix JSONDecodeError bug (#4237)

* Remove unused import

* Clean up code

* Fix JSONDecodeError (#4241)

* Accept all Exceptions

---------

Co-authored-by: Abubakar Abid <[email protected]>

* make workbench private (#4247)

* Refactoring (#4223)

* Replace var with const in js/app/src/main.ts

* Remove unnecessary nullish coalescing in js/app/src/main.ts

* Remove unnecessary white spaces in the NPM scripts in js/app/package.json

* Use object key-value shorthand

* changelog

---------

Co-authored-by: pngwn <[email protected]>

* Move mount_css() from main.ts to css.ts (#4222)

* Move mount_css() from main.ts to css.ts because these is a circular dependency between main.ts and Index.svelte (and it will help the development of the Wasm ver in the future)

* changelog

---------

Co-authored-by: pngwn <[email protected]>

* [create-pull-request] automated change (#4250)

Co-authored-by: aliabd <[email protected]>

* Fix run on click (#4258)

* fix run on click

* changelog

* Upgrade black to 23.3 (#4259)

* Upgrade black

* Conservatively upgrade packaging too since it's black's dependency

* Using marked for chatbot markdown parsing (#4150)

* fix info request in js client (#4271)

* fix info request in js client

* changelog

* Temp file fixes (#4256)

* Fix bug

* Linting

* CHANGELOG

* Add tests

* Update test

* Fix remaining components + add tests

* Fix tests

* Fix tests

* Address comments

* Ensure error modal display as expected when using the queue (#4273)

* Allow passing FastAPI app options (#4282)

* App: don't force docs_url and redoc_url to None

* App.create_app: allow passing in app_kwargs

* start_server + launch: allow passing in app_kwargs

* Changelog

* Apply suggestions from code review

Co-authored-by: Abubakar Abid <[email protected]>

* Use .launch for tests

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Katex support in chatbot (#4285)

* katex

* katex support

* changelog

* fixes

* pr fixes

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Release 3.32.0 (#4293)

* release 3.32.0

* changelog

* New Version Docs (#4296)

* [create-pull-request] automated change

* Update v3.32.0_template.html

---------

Co-authored-by: abidlabs <[email protected]>
Co-authored-by: Abubakar Abid <[email protected]>

* Add overridden type annotations on `normalise_file()` to remove @TS-i… (#4315)

* Add overridden type annotations on `normalise_file()` to remove @ts-ignore, and remove its unnecessary export

* changeset

---------

Co-authored-by: pngwn <[email protected]>

* typo (minor): extra newline puts the documentation of colums to grid (#4337)

* typo (minor): extra newline puts the documentation of colums to grid

* edited changelog

* changelog

---------

Co-authored-by: thiswillbeyourgithub <[email protected]>
Co-authored-by: Abubakar Abid <[email protected]>

* return a Dependency instance from Blocks.load event listener (#4304)

* return a Dependency instance from Blocks.load event listener

* a test case for chaining then from load event

* update CHANGELOG

* add test for load.then with blocks re-used

* fixes

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Fix typo in client/js/README.md (#4310)

Co-authored-by: Abubakar Abid <[email protected]>

* chore: update versions (#4283)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Optimize frontend's is_dep calls (#4334)

* Optimize is_dep (36 to 12 msec)

* Call is_dep less (12 msec to 9 msec)

* Changelog

---------

Co-authored-by: pngwn <[email protected]>

* various client refactors + tweaks (#4357)

* changeset

* Add a type annotation on the `api` variable to which the return value of `view_config()` is assigned, and update the type annotation and exception handling on `view_config` as well (#4311)

* Remove unnecessary @ts-ignore (#4314)

* Remove unnecessary Promise wrapping another promise (#4313)

* Remove unnecessary Promise wrapping another promise

* Remove an error handeler that may remove detailed error stacks

* changeset

* remove changeset

---------

Co-authored-by: pngwn <[email protected]>

* Stop using `let` for unchanged variables in `client.ts` (#4312)

* Stop using `let` for unchanged variables in `client.ts`

* fixes

---------

Co-authored-by: pngwn <[email protected]>

---------

Co-authored-by: Yuichiro Tachibana (Tsuchiya) <[email protected]>

* Remove a bunch of unused frontend code (#4275)

Co-authored-by: pngwn <[email protected]>

* Respect `interactive=True` in output of `gr.Interface` (#4356)

* tests

* changelog

* lint

* Update gradio/interface.py

Co-authored-by: Aarni Koskela <[email protected]>

* format

---------

Co-authored-by: Aarni Koskela <[email protected]>

* Don't allow dotfiles for /file= route (#4303)

* Don't allow dotfiles or files in "dot directories" for /file=

* update guide

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Push to spaces (#4033)

* changes

* first commit

* Update gradio/upload.py

Co-authored-by: Aarni Koskela <[email protected]>

* Update gradio/upload.py

Co-authored-by: Aarni Koskela <[email protected]>

* changes

* changes

* changes

* changes

* changes

* changes

* changes

* chnages

* changes

* changes

* changes

* changes

* Update 03_sharing-your-app.md

* changes

* changes

* change

* changes

* changes

* changes

* Update gradio/deploy_space.py

Co-authored-by: Abubakar Abid <[email protected]>

* changes

* changes

* changes

---------

Co-authored-by: Aarni Koskela <[email protected]>
Co-authored-by: Abubakar Abid <[email protected]>

* Do not send HF token to other domains via `/proxy` (#4368)

* test

* fix

* changelog

* fix, add warnings

* Make chatbot input fields non-interactive while bot is streaming (#4363)

* Add demo impl

* trigger then if generating

* remove unused value

* CHANGELOG

* Fix code

* Update guide

* Update guides/07_other-tutorials/creating-a-chatbot.md

Co-authored-by: pngwn <[email protected]>

---------

Co-authored-by: pngwn <[email protected]>
Co-authored-by: Abubakar Abid <[email protected]>

* Prevent path traversal in `/file` routes (#4370)

* add tests

* add tests

* file route fix

* update tests

* formatting

* file access

* cleanup

* cleaning

* fix tests

* Favicon fix for Windows (#4369)

* favicon fix

* changelog

* svg

* remove favicon

* actual fix

* Add pypi classifiers to pyproject.toml (#4383)

* Add pypi classifiers to pyproject.toml

* Add OS classifier

---------

Co-authored-by: Freddy Boulton <[email protected]>

* Use DOMPurify to sanitize html in chatbot (#4360)

* dompurify

* changelog

* format

* clean

* changelog

* Update run.py

* update happy-dom

---------

Co-authored-by: pngwn <[email protected]>

* fix copy button invalid & copy button (invisible) duplication bug in chatbot (#4350)

* fix a copy button duplication bug in chatbot

* fix copy button invalid issue

* Update CHANGELOG.md: Fixed Copy Button

* fix changelog typo

* switch to static HTML + event delegation for copy button

* fix

* format + notebooks

* format + notebooks

---------

Co-authored-by: Abubakar Abid <[email protected]>
Co-authored-by: pngwn <[email protected]>

* release 3.33.0 (#4392)

Co-authored-by: aliabid94 <[email protected]>

* Restore offline support (#4398)

* changes

* changes

* changes

* New Version Docs (#4397)

* [create-pull-request] automated change

* Update temporary_template.html

---------

Co-authored-by: abidlabs <[email protected]>
Co-authored-by: Abubakar Abid <[email protected]>

* Fix Base parent in Docs, add Group (#4391)

* fix base parent

* add group to docs

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Remove old versioned docs and fix repo classification  (#4362)

* remove old versioned docs

* delete versioned docs when new one is created

* ignore website dir in linguist calc

* upload and download versioned docs

* modify github action

* remove gitattributes file

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Update message when share link binary is blocked (#4380)

* update share link message

* address suggestion

* changelog

* fix

* formatting

* Update utils.py for validate_url (#4388)

* Update utils.py for validate_url

AWS s3 presigned url cannot work for both HEAD and GET. So when HEAD the presigned url, it will return 403(Forbidden)

* Update gradio/utils.py

* changelog

---------

Co-authored-by: Abubakar Abid <[email protected]>

* v3.33.1 + Guide on setting up Gradio behind nginx... (#4379)

* nginx guide

* delete 3.33.0

* version

* unindent

* Prevent label change event from triggering itself (#4371)

* Fix the Node and pnpm setup actions (#4394)

* Run `pnpm i` with [email protected] to re-generate the lock file (#4393)

* fix indent (#4404)

* Throttle scroll event  (#4158)

* Throttle scroll event

This decreases the amount of function calls when scrolling through the documentation website.

* fix themes base

---------

Co-authored-by: Abubakar Abid <[email protected]>
Co-authored-by: Ali Abdalla <[email protected]>

* merge

* fixes

* changes

* more changes

* notebook

* changelog

* error handle backend

* Update gradio/components.py

Co-authored-by: Abubakar Abid <[email protected]>

* Update gradio/components.py

Co-authored-by: Abubakar Abid <[email protected]>

* Adds `variant` and `interactive` props to `gr.UploadButton` (#4436)

* upload button

* fix index

* changelog

* formatting

* cleanup

* fix  get_continuous_fn bug when having every (#4434)

* fix the bug for wrap continuous func with parameter every while origin func return generator

* Update utils.py

* Update CHANGELOG.md

* Update test_utils.py

* Update CHANGELOG.md

* formatting

---------

Co-authored-by: Abubakar Abid <[email protected]>

* Fix Safari video playback (#4433)

* changes

* changes

---------

Co-authored-by: Abubakar Abid <[email protected]>

* test fix

* test

* tests

* fix ui test

* format

* Increase version gradio-client version/changelog (#4441)

* Increase version gradio-client version/changelog

* req

---------

Co-authored-by: Abubakar Abid <[email protected]>

* fixes

* notebook

* fixed tests finally

* format

* python test fix

* test fix

* remove style from test

* Update CHANGELOG.md

* theme test fix

---------

Co-authored-by: Artemy Egorov <[email protected]>
Co-authored-by: Abubakar Abid <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: aliabd <[email protected]>
Co-authored-by: aliabd <[email protected]>
Co-authored-by: Lucain <[email protected]>
Co-authored-by: testbot <[email protected]>
Co-authored-by: 1lint <[email protected]>
Co-authored-by: Aarni Koskela <[email protected]>
Co-authored-by: pngwn <[email protected]>
Co-authored-by: Ali Abid <[email protected]>
Co-authored-by: aliabid94 <[email protected]>
Co-authored-by: Freddy Boulton <[email protected]>
Co-authored-by: space-nuko <[email protected]>
Co-authored-by: Yuichiro Tachibana (Tsuchiya) <[email protected]>
Co-authored-by: Tom Aarsen <[email protected]>
Co-authored-by: abidlabs <[email protected]>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: LingFeng.Chen.Cn <[email protected]>
Co-authored-by: Der Chien <[email protected]>
Co-authored-by: Micky Brunetti <[email protected]>
Co-authored-by: David Ai <[email protected]>
Co-authored-by: thiswillbeyourgithub <[email protected]>
Co-authored-by: thiswillbeyourgithub <[email protected]>
Co-authored-by: Paul Garner <[email protected]>
Co-authored-by: WilliamRoyNelson <[email protected]>
Co-authored-by: binary-husky <[email protected]>
Co-authored-by: Yan <[email protected]>
Co-authored-by: Shavit <[email protected]>
Co-authored-by: dkjshk <[email protected]>
  • Loading branch information
1 parent 3d82094 commit e9aa9ee
Show file tree
Hide file tree
Showing 10 changed files with 44 additions and 12 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

## New Features:

- Min and max value for gr.Number by [@artegoser](https://github.com/artegoser) and [@dawoodkhan82](https://github.com/dawoodkhan82) in [PR 3991](https://github.com/gradio-app/gradio/pull/3991)
- Add `start_recording` and `stop_recording` events to `Video` and `Audio` components by [@pngwn](https://github.com/pngwn) in [PR 4422](https://github.com/gradio-app/gradio/pull/4422)
- Add `autoplay` kwarg to `Video` and `Audio` components by [@pngwn](https://github.com/pngwn) in [PR 4453](https://github.com/gradio-app/gradio/pull/4453)

Expand Down
2 changes: 1 addition & 1 deletion demo/blocks_form/run.ipynb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"cells": [{"cell_type": "markdown", "id": 302934307671667531413257853548643485645, "metadata": {}, "source": ["# Gradio Demo: blocks_form"]}, {"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": ["import gradio as gr\n", "\n", "with gr.Blocks() as demo:\n", " error_box = gr.Textbox(label=\"Error\", visible=False)\n", "\n", " name_box = gr.Textbox(label=\"Name\")\n", " age_box = gr.Number(label=\"Age\")\n", " symptoms_box = gr.CheckboxGroup([\"Cough\", \"Fever\", \"Runny Nose\"])\n", " submit_btn = gr.Button(\"Submit\")\n", "\n", " with gr.Column(visible=False) as output_col:\n", " diagnosis_box = gr.Textbox(label=\"Diagnosis\")\n", " patient_summary_box = gr.Textbox(label=\"Patient Summary\")\n", "\n", " def submit(name, age, symptoms):\n", " if len(name) == 0:\n", " return {error_box: gr.update(value=\"Enter name\", visible=True)}\n", " if age < 0 or age > 200:\n", " return {error_box: gr.update(value=\"Enter valid age\", visible=True)}\n", " return {\n", " output_col: gr.update(visible=True),\n", " diagnosis_box: \"covid\" if \"Cough\" in symptoms else \"flu\",\n", " patient_summary_box: f\"{name}, {age} y/o\"\n", " }\n", "\n", " submit_btn.click(\n", " submit,\n", " [name_box, age_box, symptoms_box],\n", " [error_box, diagnosis_box, patient_summary_box, output_col],\n", " )\n", "\n", "if __name__ == \"__main__\":\n", " demo.launch()"]}], "metadata": {}, "nbformat": 4, "nbformat_minor": 5}
{"cells": [{"cell_type": "markdown", "id": 302934307671667531413257853548643485645, "metadata": {}, "source": ["# Gradio Demo: blocks_form"]}, {"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": ["import gradio as gr\n", "\n", "with gr.Blocks() as demo:\n", " error_box = gr.Textbox(label=\"Error\", visible=False)\n", "\n", " name_box = gr.Textbox(label=\"Name\")\n", " age_box = gr.Number(label=\"Age\", minimum=0, maximum=100)\n", " symptoms_box = gr.CheckboxGroup([\"Cough\", \"Fever\", \"Runny Nose\"])\n", " submit_btn = gr.Button(\"Submit\")\n", "\n", " with gr.Column(visible=False) as output_col:\n", " diagnosis_box = gr.Textbox(label=\"Diagnosis\")\n", " patient_summary_box = gr.Textbox(label=\"Patient Summary\")\n", "\n", " def submit(name, age, symptoms):\n", " if len(name) == 0:\n", " return {error_box: gr.update(value=\"Enter name\", visible=True)}\n", " return {\n", " output_col: gr.update(visible=True),\n", " diagnosis_box: \"covid\" if \"Cough\" in symptoms else \"flu\",\n", " patient_summary_box: f\"{name}, {age} y/o\",\n", " }\n", "\n", " submit_btn.click(\n", " submit,\n", " [name_box, age_box, symptoms_box],\n", " [error_box, diagnosis_box, patient_summary_box, output_col],\n", " )\n", "\n", "if __name__ == \"__main__\":\n", " demo.launch()\n"]}], "metadata": {}, "nbformat": 4, "nbformat_minor": 5}
8 changes: 3 additions & 5 deletions demo/blocks_form/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
error_box = gr.Textbox(label="Error", visible=False)

name_box = gr.Textbox(label="Name")
age_box = gr.Number(label="Age")
age_box = gr.Number(label="Age", minimum=0, maximum=100)
symptoms_box = gr.CheckboxGroup(["Cough", "Fever", "Runny Nose"])
submit_btn = gr.Button("Submit")

Expand All @@ -15,12 +15,10 @@
def submit(name, age, symptoms):
if len(name) == 0:
return {error_box: gr.update(value="Enter name", visible=True)}
if age < 0 or age > 200:
return {error_box: gr.update(value="Enter valid age", visible=True)}
return {
output_col: gr.update(visible=True),
diagnosis_box: "covid" if "Cough" in symptoms else "flu",
patient_summary_box: f"{name}, {age} y/o"
patient_summary_box: f"{name}, {age} y/o",
}

submit_btn.click(
Expand All @@ -30,4 +28,4 @@ def submit(name, age, symptoms):
)

if __name__ == "__main__":
demo.launch()
demo.launch()
18 changes: 18 additions & 0 deletions gradio/components.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@
)
from gradio.interpretation import NeighborInterpretable, TokenInterpretable
from gradio.layouts import Column, Form, Row
from gradio.exceptions import Error

if TYPE_CHECKING:
from typing import TypedDict
Expand Down Expand Up @@ -686,6 +687,8 @@ def __init__(
elem_id: str | None = None,
elem_classes: list[str] | str | None = None,
precision: int | None = None,
minimum: float | None = None,
maximum: float | None = None,
**kwargs,
):
"""
Expand All @@ -703,8 +706,13 @@ def __init__(
elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles.
elem_classes: An optional list of strings that are assigned as the classes of this component in the HTML DOM. Can be used for targeting CSS styles.
precision: Precision to round input/output to. If set to 0, will round to nearest integer and convert type to int. If None, no rounding happens.
minimum: Minimum value. Only applied when component is used as an input. If a user provides a smaller value, a gr.Error exception is raised by the backend.
maximum: Maximum value. Only applied when component is used as an input. If a user provides a larger value, a gr.Error exception is raised by the backend.
"""
self.precision = precision
self.minimum = minimum
self.maximum = maximum

IOComponent.__init__(
self,
label=label,
Expand Down Expand Up @@ -746,12 +754,16 @@ def _round_to_precision(num: float | int, precision: int | None) -> float | int:
def get_config(self):
return {
"value": self.value,
"minimum": self.minimum,
"maximum": self.maximum,
**IOComponent.get_config(self),
}

@staticmethod
def update(
value: float | Literal[_Keywords.NO_VALUE] | None = _Keywords.NO_VALUE,
minimum: float | None = None,
maximum: float | None = None,
label: str | None = None,
show_label: bool | None = None,
container: bool | None = None,
Expand All @@ -768,6 +780,8 @@ def update(
"min_width": min_width,
"visible": visible,
"value": value,
"minimum": minimum,
"maximum": maximum,
"interactive": interactive,
"__type__": "update",
}
Expand All @@ -781,6 +795,10 @@ def preprocess(self, x: float | None) -> float | None:
"""
if x is None:
return None
elif self.minimum != None and x < self.minimum:
raise Error(f"Value {x} is less than minimum value {self.minimum}.")
elif self.maximum != None and x > self.maximum:
raise Error(f"Value {x} is greater than maximum value {self.maximum}.")
return self._round_to_precision(x, self.precision)

def postprocess(self, y: float | None) -> float | None:
Expand Down
2 changes: 1 addition & 1 deletion gradio/themes/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -1421,7 +1421,7 @@ def set(
self, "error_border_color", colors.red.c200
)
self.error_border_color_dark = error_border_color_dark or getattr(
self, "error_border_color_dark", "*border_color_primary"
self, "error_border_color_dark", colors.red.c500
)
self.error_border_width = error_border_width or getattr(
self, "error_border_width", "1px"
Expand Down
5 changes: 4 additions & 1 deletion js/app/src/components/Number/Number.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
export let min_width: number | undefined = undefined;
export let value: number = 0;
export let show_label: boolean;
export let minimum: number | undefined = undefined;
export let maximum: number | undefined = undefined;
export let loading_status: LoadingStatus;
export let mode: "static" | "dynamic";
export let value_is_output: boolean = false;
Expand All @@ -29,6 +30,8 @@
{label}
{info}
{show_label}
{minimum}
{maximum}
disabled={mode === "static"}
on:change
on:input
Expand Down
3 changes: 2 additions & 1 deletion js/app/test/mocks/theme.css
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,7 @@
--button-small-text-weight: 400;
--button-transition: none;
}

.dark {
--color-accent-soft: var(--neutral-900);
--background-fill-primary: var(--neutral-950);
Expand Down Expand Up @@ -297,7 +298,7 @@
--checkbox-label-text-color: var(--body-text-color);
--checkbox-label-text-color-selected: var(--checkbox-label-text-color);
--error-background-fill: var(--background-fill-primary);
--error-border-color: var(--border-color-primary);
--error-border-color: #ef4444;
--error-border-width: var(--error-border-width);
--error-text-color: #ef4444;
--input-background-fill: var(--neutral-800);
Expand Down
9 changes: 8 additions & 1 deletion js/form/src/Number.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import { BlockTitle } from "@gradio/atoms";
export let value: number = 0;
export let minimum: number | undefined = undefined;
export let maximum: number | undefined = undefined;
export let value_is_output: boolean = false;
export let disabled: boolean = false;
export let label: string;
Expand Down Expand Up @@ -31,7 +33,6 @@
async function handle_keypress(e: KeyboardEvent) {
await tick();
if (e.key === "Enter") {
e.preventDefault();
dispatch("submit");
Expand All @@ -49,6 +50,8 @@
<input
type="number"
bind:value
min={minimum}
max={maximum}
on:keypress={handle_keypress}
on:blur={handle_blur}
{disabled}
Expand Down Expand Up @@ -84,4 +87,8 @@
input::placeholder {
color: var(--input-placeholder-color);
}
input:out-of-range {
border: var(--input-border-width) solid var(--error-border-color);
}
</style>
4 changes: 4 additions & 0 deletions test/test_components.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,8 @@ def test_component_functions(self):
"name": "number",
"show_label": True,
"label": None,
"minimum": None,
"maximum": None,
"container": True,
"min_width": 160,
"scale": None,
Expand Down Expand Up @@ -257,6 +259,8 @@ def test_component_functions_integer(self):
"name": "number",
"show_label": True,
"label": None,
"minimum": None,
"maximum": None,
"container": True,
"min_width": 160,
"scale": None,
Expand Down
4 changes: 2 additions & 2 deletions test/test_theme_sharing.py
Original file line number Diff line number Diff line change
Expand Up @@ -285,11 +285,11 @@ def test_get_next_version(self, mock):
@pytest.mark.flaky
def test_theme_download(self):
assert (
gr.themes.Base.from_hub("gradio/[email protected].1").to_dict()
gr.themes.Base.from_hub("gradio/[email protected].2").to_dict()
== dracula.to_dict()
)

with gr.Blocks(theme="gradio/[email protected].1") as demo:
with gr.Blocks(theme="gradio/[email protected].2") as demo:
pass

assert demo.theme.to_dict() == dracula.to_dict()
Expand Down

0 comments on commit e9aa9ee

Please sign in to comment.