Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / uvicorn / default.nix
blob6201bb6157266c45f2365104d51c25e013bf41b8
1 { lib
2 , buildPythonPackage
3 , callPackage
4 , fetchFromGitHub
5 , click
6 , h11
7 , httptools
8 , python-dotenv
9 , pyyaml
10 , typing-extensions
11 , uvloop
12 , watchfiles
13 , websockets
14 , hatchling
15 , pythonOlder
18 buildPythonPackage rec {
19   pname = "uvicorn";
20   version = "0.27.1";
21   disabled = pythonOlder "3.8";
23   pyproject = true;
25   src = fetchFromGitHub {
26     owner = "encode";
27     repo = pname;
28     rev = "refs/tags/${version}";
29     hash = "sha256-p0iPQE66RJfd811x6cnv7m3yvD/L9v7evBXlaIQSE0M=";
30   };
32   outputs = [
33     "out"
34     "testsout"
35   ];
37   nativeBuildInputs = [ hatchling ];
39   propagatedBuildInputs = [
40     click
41     h11
42   ] ++ lib.optionals (pythonOlder "3.11") [
43     typing-extensions
44   ];
46   passthru.optional-dependencies.standard = [
47     httptools
48     python-dotenv
49     pyyaml
50     uvloop
51     watchfiles
52     websockets
53   ];
55   postInstall = ''
56     mkdir $testsout
57     cp -R tests $testsout/tests
58   '';
60   pythonImportsCheck = [
61     "uvicorn"
62   ];
64   # check in passthru.tests.pytest to escape infinite recursion with httpx/httpcore
65   doCheck = false;
67   passthru.tests = {
68     pytest = callPackage ./tests.nix { };
69   };
71   meta = with lib; {
72     homepage = "https://www.uvicorn.org/";
73     changelog = "https://github.com/encode/uvicorn/blob/${src.rev}/CHANGELOG.md";
74     description = "The lightning-fast ASGI server";
75     mainProgram = "uvicorn";
76     license = licenses.bsd3;
77     maintainers = with maintainers; [ wd15 ];
78   };