Loading pkgs/development/python-modules/gradio/client.nix +5 −3 Original line number Diff line number Diff line Loading @@ -24,11 +24,12 @@ rich, tomlkit, gradio, safehttpx, }: buildPythonPackage rec { pname = "gradio-client"; version = "1.4.0"; version = "1.5.3"; pyproject = true; disabled = pythonOlder "3.8"; Loading @@ -38,9 +39,9 @@ buildPythonPackage rec { owner = "gradio-app"; repo = "gradio"; # not to be confused with @gradio/client@${version} rev = "refs/tags/gradio_client@${version}"; tag = "gradio_client@${version}"; sparseCheckout = [ "client/python" ]; hash = "sha256-pS7yrqBuq/Pe7sEfReAM6OL2qFQVA+vWra36UuhyDkk="; hash = "sha256-u4GQYtCeAMDqRRbZGtjfqIHwuHyxUpw6kRE75SJMALg="; }; prePatch = '' cd client/python Loading Loading @@ -75,6 +76,7 @@ buildPythonPackage rec { pydub rich tomlkit safehttpx gradio.sans-reverse-dependencies ]; # ensuring we don't propagate this intermediate build Loading pkgs/development/python-modules/gradio/default.nix +62 −8 Original line number Diff line number Diff line Loading @@ -3,6 +3,8 @@ stdenv, buildPythonPackage, fetchPypi, fetchFromGitHub, fetchpatch, pythonOlder, writeShellScriptBin, gradio, Loading @@ -12,6 +14,11 @@ hatch-requirements-txt, hatch-fancy-pypi-readme, # web assets zip, nodejs, pnpm_9, # runtime setuptools, aiofiles, Loading @@ -35,6 +42,7 @@ python-multipart, pydub, pyyaml, safehttpx, semantic-version, typing-extensions, uvicorn, Loading Loading @@ -64,23 +72,27 @@ buildPythonPackage rec { pname = "gradio"; version = "5.1.0"; version = "5.11.0"; pyproject = true; disabled = pythonOlder "3.7"; # We use the Pypi release, since it provides prebuilt webui assets src = fetchPypi { inherit pname version; hash = "sha256-0hU2aObeLfegG7M/AaB0/HcW7IY8QPRy2OQ5Q57x4VM="; # unfortunately no fetchPypi due to https://github.com/gradio-app/gradio/pull/9778 src = fetchFromGitHub { owner = "gradio-app"; repo = "gradio"; tag = "gradio@${version}"; hash = "sha256-HW0J7oSkCo4DIHpU4LUoBZ2jmmrv5Xd64floA4uyo5A="; }; pnpmDeps = pnpm_9.fetchDeps { inherit pname version src; hash = "sha256-9fAkP2zV3OfyROdtvmS94ujpkGmlB0wGOaWS13LgJTM="; }; # fix packaging.ParserSyntaxError, which can't handle comments postPatch = '' sed -i -e "s/ #.*$//g" requirements*.txt # they bundle deps? rm -rf venv/ ''; pythonRelaxDeps = [ Loading @@ -96,6 +108,12 @@ buildPythonPackage rec { "ruff" ]; nativeBuildInputs = [ zip nodejs pnpm_9.configHook ]; build-system = [ hatchling hatch-requirements-txt Loading Loading @@ -125,6 +143,7 @@ buildPythonPackage rec { python-multipart pydub pyyaml safehttpx semantic-version typing-extensions uvicorn Loading Loading @@ -158,6 +177,16 @@ buildPythonPackage rec { (writeShellScriptBin "npm" "false") ] ++ optional-dependencies.oauth ++ pydantic.optional-dependencies.email; preBuild = '' pnpm build pnpm package ''; postBuild = '' # SyntaxError: 'await' outside function zip -d dist/gradio-*.whl gradio/_frontend_code/lite/examples/transformers_basic/run.py ''; # 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 = Loading Loading @@ -193,12 +222,29 @@ buildPythonPackage rec { # fails without network "test_download_if_url_correct_parse" "test_encode_url_to_base64_doesnt_encode_errors" # flaky: OSError: Cannot find empty port in range: 7860-7959 "test_docs_url" "test_orjson_serialization" "test_dataset_is_updated" "test_multimodal_api" "test_examples_keep_all_suffixes" "test_progress_bar" "test_progress_bar_track_tqdm" "test_info_and_warning_alerts" "test_info_isolation[True]" "test_info_isolation[False]" "test_examples_no_cache_optional_inputs" "test_start_server[127.0.0.1]" "test_start_server[[::1]]" "test_single_request" "test_all_status_messages" "test_default_concurrency_limits[not_set-statuses0]" "test_default_concurrency_limits[None-statuses1]" "test_default_concurrency_limits[1-statuses2]" "test_default_concurrency_limits[2-statuses3]" "test_concurrency_limits" # tests if pip and other tools are installed "test_get_executable_path" Loading Loading @@ -256,6 +302,7 @@ buildPythonPackage rec { disabledTestPaths = [ # 100% touches network "test/test_networking.py" "client/python/test/test_client.py" # makes pytest freeze 50% of the time "test/test_interfaces.py" Loading Loading @@ -289,6 +336,13 @@ buildPythonPackage rec { doInstallCheck = false; doCheck = false; preCheck = ""; postInstall = '' shopt -s globstar for f in $out/**/*.py; do cp $f "$f"i done shopt -u globstar ''; pythonImportsCheck = null; dontCheckRuntimeDeps = true; }); Loading pkgs/development/python-modules/safehttpx/default.nix 0 → 100644 +38 −0 Original line number Diff line number Diff line { lib, buildPythonPackage, fetchPypi, hatchling, httpx, pythonOlder, }: buildPythonPackage rec { pname = "safehttpx"; version = "0.1.6"; pyproject = true; src = fetchPypi { inherit pname version; hash = "sha256-s1a/yCzuOiTDlblKLb6rvtYK/xql+jtf6XxPJFbrzkI="; }; build-system = [ hatchling ]; dependencies = [ httpx ]; pythonImportsCheck = [ "safehttpx" ]; doCheck = false; # require network access meta = { description = "SSRF-safe wrapper around httpx"; homepage = "https://github.com/gradio-app/safehttpx"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ fliegendewurst ]; }; } pkgs/top-level/python-packages.nix +2 −0 Original line number Diff line number Diff line Loading @@ -14418,6 +14418,8 @@ self: super: with self; { safe-pysha3 = callPackage ../development/python-modules/safe-pysha3 { }; safehttpx = callPackage ../development/python-modules/safehttpx { }; safeio = callPackage ../development/python-modules/safeio { }; safetensors = callPackage ../development/python-modules/safetensors { }; Loading
pkgs/development/python-modules/gradio/client.nix +5 −3 Original line number Diff line number Diff line Loading @@ -24,11 +24,12 @@ rich, tomlkit, gradio, safehttpx, }: buildPythonPackage rec { pname = "gradio-client"; version = "1.4.0"; version = "1.5.3"; pyproject = true; disabled = pythonOlder "3.8"; Loading @@ -38,9 +39,9 @@ buildPythonPackage rec { owner = "gradio-app"; repo = "gradio"; # not to be confused with @gradio/client@${version} rev = "refs/tags/gradio_client@${version}"; tag = "gradio_client@${version}"; sparseCheckout = [ "client/python" ]; hash = "sha256-pS7yrqBuq/Pe7sEfReAM6OL2qFQVA+vWra36UuhyDkk="; hash = "sha256-u4GQYtCeAMDqRRbZGtjfqIHwuHyxUpw6kRE75SJMALg="; }; prePatch = '' cd client/python Loading Loading @@ -75,6 +76,7 @@ buildPythonPackage rec { pydub rich tomlkit safehttpx gradio.sans-reverse-dependencies ]; # ensuring we don't propagate this intermediate build Loading
pkgs/development/python-modules/gradio/default.nix +62 −8 Original line number Diff line number Diff line Loading @@ -3,6 +3,8 @@ stdenv, buildPythonPackage, fetchPypi, fetchFromGitHub, fetchpatch, pythonOlder, writeShellScriptBin, gradio, Loading @@ -12,6 +14,11 @@ hatch-requirements-txt, hatch-fancy-pypi-readme, # web assets zip, nodejs, pnpm_9, # runtime setuptools, aiofiles, Loading @@ -35,6 +42,7 @@ python-multipart, pydub, pyyaml, safehttpx, semantic-version, typing-extensions, uvicorn, Loading Loading @@ -64,23 +72,27 @@ buildPythonPackage rec { pname = "gradio"; version = "5.1.0"; version = "5.11.0"; pyproject = true; disabled = pythonOlder "3.7"; # We use the Pypi release, since it provides prebuilt webui assets src = fetchPypi { inherit pname version; hash = "sha256-0hU2aObeLfegG7M/AaB0/HcW7IY8QPRy2OQ5Q57x4VM="; # unfortunately no fetchPypi due to https://github.com/gradio-app/gradio/pull/9778 src = fetchFromGitHub { owner = "gradio-app"; repo = "gradio"; tag = "gradio@${version}"; hash = "sha256-HW0J7oSkCo4DIHpU4LUoBZ2jmmrv5Xd64floA4uyo5A="; }; pnpmDeps = pnpm_9.fetchDeps { inherit pname version src; hash = "sha256-9fAkP2zV3OfyROdtvmS94ujpkGmlB0wGOaWS13LgJTM="; }; # fix packaging.ParserSyntaxError, which can't handle comments postPatch = '' sed -i -e "s/ #.*$//g" requirements*.txt # they bundle deps? rm -rf venv/ ''; pythonRelaxDeps = [ Loading @@ -96,6 +108,12 @@ buildPythonPackage rec { "ruff" ]; nativeBuildInputs = [ zip nodejs pnpm_9.configHook ]; build-system = [ hatchling hatch-requirements-txt Loading Loading @@ -125,6 +143,7 @@ buildPythonPackage rec { python-multipart pydub pyyaml safehttpx semantic-version typing-extensions uvicorn Loading Loading @@ -158,6 +177,16 @@ buildPythonPackage rec { (writeShellScriptBin "npm" "false") ] ++ optional-dependencies.oauth ++ pydantic.optional-dependencies.email; preBuild = '' pnpm build pnpm package ''; postBuild = '' # SyntaxError: 'await' outside function zip -d dist/gradio-*.whl gradio/_frontend_code/lite/examples/transformers_basic/run.py ''; # 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 = Loading Loading @@ -193,12 +222,29 @@ buildPythonPackage rec { # fails without network "test_download_if_url_correct_parse" "test_encode_url_to_base64_doesnt_encode_errors" # flaky: OSError: Cannot find empty port in range: 7860-7959 "test_docs_url" "test_orjson_serialization" "test_dataset_is_updated" "test_multimodal_api" "test_examples_keep_all_suffixes" "test_progress_bar" "test_progress_bar_track_tqdm" "test_info_and_warning_alerts" "test_info_isolation[True]" "test_info_isolation[False]" "test_examples_no_cache_optional_inputs" "test_start_server[127.0.0.1]" "test_start_server[[::1]]" "test_single_request" "test_all_status_messages" "test_default_concurrency_limits[not_set-statuses0]" "test_default_concurrency_limits[None-statuses1]" "test_default_concurrency_limits[1-statuses2]" "test_default_concurrency_limits[2-statuses3]" "test_concurrency_limits" # tests if pip and other tools are installed "test_get_executable_path" Loading Loading @@ -256,6 +302,7 @@ buildPythonPackage rec { disabledTestPaths = [ # 100% touches network "test/test_networking.py" "client/python/test/test_client.py" # makes pytest freeze 50% of the time "test/test_interfaces.py" Loading Loading @@ -289,6 +336,13 @@ buildPythonPackage rec { doInstallCheck = false; doCheck = false; preCheck = ""; postInstall = '' shopt -s globstar for f in $out/**/*.py; do cp $f "$f"i done shopt -u globstar ''; pythonImportsCheck = null; dontCheckRuntimeDeps = true; }); Loading
pkgs/development/python-modules/safehttpx/default.nix 0 → 100644 +38 −0 Original line number Diff line number Diff line { lib, buildPythonPackage, fetchPypi, hatchling, httpx, pythonOlder, }: buildPythonPackage rec { pname = "safehttpx"; version = "0.1.6"; pyproject = true; src = fetchPypi { inherit pname version; hash = "sha256-s1a/yCzuOiTDlblKLb6rvtYK/xql+jtf6XxPJFbrzkI="; }; build-system = [ hatchling ]; dependencies = [ httpx ]; pythonImportsCheck = [ "safehttpx" ]; doCheck = false; # require network access meta = { description = "SSRF-safe wrapper around httpx"; homepage = "https://github.com/gradio-app/safehttpx"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ fliegendewurst ]; }; }
pkgs/top-level/python-packages.nix +2 −0 Original line number Diff line number Diff line Loading @@ -14418,6 +14418,8 @@ self: super: with self; { safe-pysha3 = callPackage ../development/python-modules/safe-pysha3 { }; safehttpx = callPackage ../development/python-modules/safehttpx { }; safeio = callPackage ../development/python-modules/safeio { }; safetensors = callPackage ../development/python-modules/safetensors { };