about summary refs log tree commit diff
path: root/pkgs/development/python-modules/gradio/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/gradio/default.nix')
-rw-r--r--pkgs/development/python-modules/gradio/default.nix226
1 files changed, 139 insertions, 87 deletions
diff --git a/pkgs/development/python-modules/gradio/default.nix b/pkgs/development/python-modules/gradio/default.nix
index 6c735123aca18..4d028da04e493 100644
--- a/pkgs/development/python-modules/gradio/default.nix
+++ b/pkgs/development/python-modules/gradio/default.nix
@@ -1,77 +1,77 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pythonRelaxDepsHook
-, writeShellScriptBin
-, gradio
-
-# pyproject
-, hatchling
-, hatch-requirements-txt
-, hatch-fancy-pypi-readme
-
-# runtime
-, setuptools
-, aiofiles
-, altair
-, diffusers
-, fastapi
-, ffmpy
-, gradio-client
-, httpx
-, huggingface-hub
-, importlib-resources
-, jinja2
-, markupsafe
-, matplotlib
-, numpy
-, orjson
-, packaging
-, pandas
-, pillow
-, pydantic
-, python-multipart
-, pydub
-, pyyaml
-, semantic-version
-, typing-extensions
-, uvicorn
-, typer
-, tomlkit
-
-# oauth
-, authlib
-, itsdangerous
-
-# check
-, pytestCheckHook
-, boto3
-, gradio-pdf
-, ffmpeg
-, ipython
-, pytest-asyncio
-, respx
-, scikit-image
-, torch
-, tqdm
-, transformers
-, vega-datasets
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  writeShellScriptBin,
+  gradio,
+
+  # pyproject
+  hatchling,
+  hatch-requirements-txt,
+  hatch-fancy-pypi-readme,
+
+  # runtime
+  setuptools,
+  aiofiles,
+  altair,
+  diffusers,
+  fastapi,
+  ffmpy,
+  gradio-client,
+  httpx,
+  huggingface-hub,
+  importlib-resources,
+  jinja2,
+  markupsafe,
+  matplotlib,
+  numpy,
+  orjson,
+  packaging,
+  pandas,
+  pillow,
+  pydantic,
+  python-multipart,
+  pydub,
+  pyyaml,
+  semantic-version,
+  typing-extensions,
+  uvicorn,
+  typer,
+  tomlkit,
+
+  # oauth
+  authlib,
+  itsdangerous,
+
+  # check
+  pytestCheckHook,
+  boto3,
+  gradio-pdf,
+  ffmpeg,
+  ipython,
+  pytest-asyncio,
+  respx,
+  scikit-image,
+  torch,
+  tqdm,
+  transformers,
+  vega-datasets,
 }:
 
 buildPythonPackage rec {
   pname = "gradio";
-  version = "4.22.0";
+  version = "4.36.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
-  # We use the Pypi release, since it provides prebuilt webui assets,
-  # and upstream has stopped tagging releases since 3.41.0
+  # We use the Pypi release, since it provides prebuilt webui assets
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-nhrT509xB3+R+HF6TF5AQGnfufT6iNmzjxZgcVL7fBo=";
+    hash = "sha256-crLSEVbTRnEjuubzD0Y/AC7wbicnZidDCPXtPKw3Vjs=";
   };
 
   # fix packaging.ParserSyntaxError, which can't handle comments
@@ -82,9 +82,7 @@ buildPythonPackage rec {
     rm -rf venv/
   '';
 
-  pythonRelaxDeps = [
-    "tomlkit"
-  ];
+  pythonRelaxDeps = [ "tomlkit" ];
 
   pythonRemoveDeps = [
     # our package is presented as a binary, not a python lib - and
@@ -151,19 +149,19 @@ buildPythonPackage rec {
 
     # mock calls to `shutil.which(...)`
     (writeShellScriptBin "npm" "false")
-  ]
-  ++ passthru.optional-dependencies.oauth
-  ++ pydantic.passthru.optional-dependencies.email;
+  ] ++ passthru.optional-dependencies.oauth ++ pydantic.passthru.optional-dependencies.email;
 
   # Add a pytest hook skipping tests that access network, marking them as "Expected fail" (xfail).
   # We additionally xfail FileNotFoundError, since the gradio devs often fail to upload test assets to pypi.
-  preCheck = ''
-    export HOME=$TMPDIR
-    cat ${./conftest-skip-network-errors.py} >> test/conftest.py
-  '' + lib.optionalString stdenv.isDarwin ''
-    # OSError: [Errno 24] Too many open files
-    ulimit -n 4096
-  '';
+  preCheck =
+    ''
+      export HOME=$TMPDIR
+      cat ${./conftest-skip-network-errors.py} >> test/conftest.py
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      # OSError: [Errno 24] Too many open files
+      ulimit -n 4096
+    '';
 
   disabledTests = [
     # Actually broken
@@ -189,15 +187,67 @@ buildPythonPackage rec {
 
     # tests if pip and other tools are installed
     "test_get_executable_path"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # flaky on darwin (depend on port availability)
+    "test_all_status_messages"
+    "test_async_generators"
+    "test_async_generators_interface"
+    "test_async_iterator_update_with_new_component"
+    "test_concurrency_limits"
+    "test_default_concurrency_limits"
+    "test_default_flagging_callback"
+    "test_end_to_end"
+    "test_end_to_end_cache_examples"
+    "test_event_data"
+    "test_every_does_not_block_queue"
+    "test_example_caching_relaunch"
+    "test_example_caching_relaunch"
+    "test_exit_called_at_launch"
+    "test_file_component_uploads"
+    "test_files_saved_as_file_paths"
+    "test_flagging_does_not_create_unnecessary_directories"
+    "test_flagging_no_permission_error_with_flagging_disabled"
+    "test_info_and_warning_alerts"
+    "test_info_isolation"
+    "test_launch_analytics_does_not_error_with_invalid_blocks"
+    "test_no_empty_audio_files"
+    "test_no_empty_image_files"
+    "test_no_empty_video_files"
+    "test_non_streaming_api"
+    "test_non_streaming_api_async"
+    "test_pil_images_hashed"
+    "test_progress_bar"
+    "test_progress_bar_track_tqdm"
+    "test_queue_when_using_auth"
+    "test_restart_after_close"
+    "test_set_share_in_colab"
+    "test_show_error"
+    "test_simple_csv_flagging_callback"
+    "test_single_request"
+    "test_socket_reuse"
+    "test_start_server"
+    "test_state_holder_is_used_in_postprocess"
+    "test_state_stored_up_to_capacity"
+    "test_static_files_single_app"
+    "test_streaming_api"
+    "test_streaming_api_async"
+    "test_streaming_api_with_additional_inputs"
+    "test_sync_generators"
+    "test_time_to_live_and_delete_callback_for_state"
+    "test_updates_stored_up_to_capacity"
+    "test_varying_output_forms_with_generators"
   ];
   disabledTestPaths = [
     # 100% touches network
     "test/test_networking.py"
     # makes pytest freeze 50% of the time
     "test/test_interfaces.py"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # Network-related tests that are flaky on darwin (depend on port availability)
+    "test/test_routes.py"
   ];
   pytestFlagsArray = [
-    "-x"  # abort on first failure
+    "-x" # abort on first failure
     "-m 'not flaky'"
     #"-W" "ignore" # uncomment for debugging help
   ];
@@ -212,17 +262,19 @@ buildPythonPackage rec {
 
   # Cyclic dependencies are fun!
   # This is gradio without gradio-client and gradio-pdf
-  passthru.sans-reverse-dependencies = (gradio.override (old: {
+  passthru.sans-reverse-dependencies =
+    (gradio.override (old: {
       gradio-client = null;
       gradio-pdf = null;
-    })).overridePythonAttrs (old: {
-      pname = old.pname + "-sans-reverse-dependencies";
-      pythonRemoveDeps = (old.pythonRemoveDeps or []) ++ [ "gradio-client" ];
-      doInstallCheck = false;
-      doCheck = false;
-      pythonImportsCheck = null;
-      dontCheckRuntimeDeps = true;
-    });
+    })).overridePythonAttrs
+      (old: {
+        pname = old.pname + "-sans-reverse-dependencies";
+        pythonRemoveDeps = (old.pythonRemoveDeps or [ ]) ++ [ "gradio-client" ];
+        doInstallCheck = false;
+        doCheck = false;
+        pythonImportsCheck = null;
+        dontCheckRuntimeDeps = true;
+      });
 
   meta = with lib; {
     homepage = "https://www.gradio.app/";