Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / falcon / default.nix
blob51f9bfd79a3583799c07fa301c651827e26be3f3
1 { lib
2 , buildPythonPackage
3 , pythonAtLeast
4 , pythonOlder
5 , isPyPy
6 , fetchFromGitHub
8 # build
9 , cython
10 , setuptools
12 # tests
13 , aiofiles
14 , cbor2
15 , httpx
16 , msgpack
17 , mujson
18 , orjson
19 , pytest-asyncio
20 , pytest7CheckHook
21 , pyyaml
22 , rapidjson
23 , requests
24 , testtools
25 , ujson
26 , uvicorn
27 , websockets
30 buildPythonPackage rec {
31   pname = "falcon";
32   version = "3.1.3";
33   format = "pyproject";
34   disabled = pythonOlder "3.5";
36   src = fetchFromGitHub {
37     owner = "falconry";
38     repo = pname;
39     rev = "refs/tags/${version}";
40     hash = "sha256-7719gOM8WQVjODwOSo7HpH3HMFFeCGQQYBKktBAevig=";
41   };
43   nativeBuildInputs = [
44     setuptools
45   ] ++ lib.optionals (!isPyPy) [
46     cython
47   ];
49   __darwinAllowLocalNetworking = true;
51   preCheck = ''
52     export HOME=$TMPDIR
53     cp -R tests examples $TMPDIR
54     pushd $TMPDIR
55   '';
57   postCheck = ''
58     popd
59   '';
61   nativeCheckInputs = [
62     # https://github.com/falconry/falcon/blob/master/requirements/tests
63     pytest7CheckHook
64     pyyaml
65     requests
66     rapidjson
67     orjson
69     # ASGI specific
70     pytest-asyncio
71     aiofiles
72     httpx
73     uvicorn
74     websockets
76     # handler specific
77     cbor2
78     msgpack
79     mujson
80     ujson
81   ] ++ lib.optionals (pythonOlder "3.10") [
82     testtools
83   ];
85   pytestFlagsArray = [
86     "tests"
87   ];
89   disabledTestPaths = [
90     # needs a running server
91     "tests/asgi/test_asgi_servers.py"
92   ] ++ lib.optionals (pythonAtLeast "3.12") [
93     # ModuleNotFoundError: No module named 'distutils'
94     "tests/asgi/test_cythonized_asgi.py"
95   ];
97   meta = with lib; {
98     description = "An unladen web framework for building APIs and app backends";
99     homepage = "https://falconframework.org/";
100     license = licenses.asl20;
101     maintainers = with maintainers; [ desiderius ];
102   };