diff --git a/pkgs/development/python-modules/quart-trio/default.nix b/pkgs/development/python-modules/quart-trio/default.nix new file mode 100644 index 000000000000..67170265ca70 --- /dev/null +++ b/pkgs/development/python-modules/quart-trio/default.nix @@ -0,0 +1,65 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pythonOlder, + + # build-system + pdm-backend, + + # dependencies + exceptiongroup, + hypercorn, + quart, + trio, + + # tests + pytest-cov-stub, + pytest-trio, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "quart-trio"; + version = "0.12.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "pgjones"; + repo = "quart-trio"; + tag = version; + hash = "sha256-n41XATex20iw3ZYxud/5cTdx+F6tTQQJmP91TIw2xJo="; + }; + + build-system = [ + pdm-backend + ]; + + dependencies = [ + hypercorn + quart + trio + ] + ++ hypercorn.optional-dependencies.trio + ++ lib.optionals (pythonOlder "3.11") [ + exceptiongroup + ]; + + pythonImportsCheck = [ + "quart_trio" + ]; + + nativeCheckInputs = [ + pytest-cov-stub + pytest-trio + pytestCheckHook + ]; + + meta = { + description = "Quart-Trio is an extension for Quart to support the Trio event loop"; + homepage = "https://github.com/pgjones/quart-trio"; + changelog = "https://github.com/pgjones/quart-trio/blob/${src.tag}/CHANGELOG.rst"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ hexa ]; + }; +} diff --git a/pkgs/development/python-modules/urllib3/default.nix b/pkgs/development/python-modules/urllib3/default.nix index b8404d98e988..30ab03edc694 100644 --- a/pkgs/development/python-modules/urllib3/default.nix +++ b/pkgs/development/python-modules/urllib3/default.nix @@ -9,27 +9,34 @@ hatch-vcs, # optional-dependencies + backports-zstd, brotli, brotlicffi, + h2, pysocks, - zstandard, # tests + httpx, + pyopenssl, pytestCheckHook, + pytest-socket, pytest-timeout, + quart, + quart-trio, tornado, + trio, trustme, }: let self = buildPythonPackage rec { pname = "urllib3"; - version = "2.5.0"; + version = "2.6.0"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-P8R3M8fkGdS8P2s9wrT4kLt0OQajDVa6Slv6S7/5J2A="; + hash = "sha256-y5vO9aSzRdXaXRRdw+MINPWOgBiCjLxyTTC0y31NSfE="; }; build-system = [ @@ -39,23 +46,34 @@ let postPatch = '' substituteInPlace pyproject.toml \ - --replace-fail ', "setuptools-scm>=8,<9"' "" + --replace-fail ', "setuptools-scm>=8,<10"' "" ''; optional-dependencies = { brotli = if isPyPy then [ brotlicffi ] else [ brotli ]; + h2 = [ h2 ]; socks = [ pysocks ]; - zstd = [ zstandard ]; + zstd = [ backports-zstd ]; }; nativeCheckInputs = [ + httpx + pyopenssl + pytest-socket pytest-timeout pytestCheckHook + quart + quart-trio tornado + trio trustme ] ++ lib.concatAttrValues optional-dependencies; + disabledTestMarks = [ + "requires_network" + ]; + # Tests in urllib3 are mostly timeout-based instead of event-based and # are therefore inherently flaky. On your own machine, the tests will # typically build fine, but on a loaded cluster such as Hydra random diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index f33f36ae7125..8b341b3ddeb0 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -15955,6 +15955,8 @@ self: super: with self; { quart-schema = callPackage ../development/python-modules/quart-schema { }; + quart-trio = callPackage ../development/python-modules/quart-trio { }; + quaternion = callPackage ../development/python-modules/quaternion { }; qudida = callPackage ../development/python-modules/qudida { };