diff --git a/pkgs/development/python-modules/uvicorn/default.nix b/pkgs/development/python-modules/uvicorn/default.nix new file mode 100644 index 00000000000..1bf0d1c54f0 --- /dev/null +++ b/pkgs/development/python-modules/uvicorn/default.nix @@ -0,0 +1,44 @@ +{ lib +, buildPythonPackage +, fetchPypi +, click +, h11 +, httptools +, uvloop +, websockets +, wsproto +, isPy27 +}: + +buildPythonPackage rec { + pname = "uvicorn"; + version = "0.8.4"; + disabled = isPy27; + + src = fetchPypi { + inherit pname version; + sha256 = "1l8rfm30inx9pma893i7sby9h7y910k58841zqaajksn563b882k"; + }; + + propagatedBuildInputs = [ + click + h11 + httptools + uvloop + websockets + wsproto + ]; + + checkPhase = '' + $out/bin/uvicorn --help + ''; + + patches = [ ./setup.patch ]; + + meta = with lib; { + homepage = https://www.uvicorn.org/; + description = "The lightning-fast ASGI server"; + license = licenses.bsd3; + maintainers = with maintainers; [ wd15 ]; + }; +} diff --git a/pkgs/development/python-modules/uvicorn/setup.patch b/pkgs/development/python-modules/uvicorn/setup.patch new file mode 100644 index 00000000000..f1d974b42d9 --- /dev/null +++ b/pkgs/development/python-modules/uvicorn/setup.patch @@ -0,0 +1,13 @@ +diff --git a/setup.py b/setup.py +index 802cda4..561abf4 100755 +--- a/setup.py ++++ b/setup.py +@@ -42,7 +42,7 @@ env_marker = ( + + requirements = [ + "click==7.*", +- "h11==0.8.*", ++ "h11", + "websockets==7.*", + "httptools==0.0.13 ;" + env_marker, + "uvloop==0.12.* ;" + env_marker, diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ebea2514a49..dfbe35a403e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6038,6 +6038,8 @@ in { aioesphomeapi = callPackage ../development/python-modules/aioesphomeapi { }; mwparserfromhell = callPackage ../development/python-modules/mwparserfromhell { }; + uvicorn = callPackage ../development/python-modules/uvicorn { }; + }); in fix' (extends overrides packages)