anki-bin: 24.06.3 -> 24.11 (#360722)
[NixPkgs.git] / pkgs / development / python-modules / uvicorn / default.nix
blobab72df02971f607647d2e8e693a41b8b09b6a2ed
2   lib,
3   buildPythonPackage,
4   callPackage,
5   fetchFromGitHub,
6   click,
7   h11,
8   httptools,
9   python-dotenv,
10   pyyaml,
11   typing-extensions,
12   uvloop,
13   watchfiles,
14   websockets,
15   hatchling,
16   pythonOlder,
19 buildPythonPackage rec {
20   pname = "uvicorn";
21   version = "0.32.0";
22   disabled = pythonOlder "3.8";
24   pyproject = true;
26   src = fetchFromGitHub {
27     owner = "encode";
28     repo = "uvicorn";
29     rev = "refs/tags/${version}";
30     hash = "sha256-LTioJNDq1zsy/FO6lBgRW8Ow5qyxUD8NjNCj4nIrVDM=";
31   };
33   outputs = [
34     "out"
35     "testsout"
36   ];
38   build-system = [ hatchling ];
40   dependencies = [
41     click
42     h11
43   ] ++ lib.optionals (pythonOlder "3.11") [ typing-extensions ];
45   optional-dependencies.standard = [
46     httptools
47     python-dotenv
48     pyyaml
49     uvloop
50     watchfiles
51     websockets
52   ];
54   postInstall = ''
55     mkdir $testsout
56     cp -R tests $testsout/tests
57   '';
59   pythonImportsCheck = [ "uvicorn" ];
61   # check in passthru.tests.pytest to escape infinite recursion with httpx/httpcore
62   doCheck = false;
64   passthru.tests = {
65     pytest = callPackage ./tests.nix { };
66   };
68   meta = with lib; {
69     homepage = "https://www.uvicorn.org/";
70     changelog = "https://github.com/encode/uvicorn/blob/${src.rev}/CHANGELOG.md";
71     description = "Lightning-fast ASGI server";
72     mainProgram = "uvicorn";
73     license = licenses.bsd3;
74     maintainers = with maintainers; [ wd15 ];
75   };