anki-bin: 24.06.3 -> 24.11 (#360722)
[NixPkgs.git] / pkgs / development / python-modules / falcon / default.nix
blobcb2ff6942eb245a17c4d17e72397a33b154fc6bd
2   lib,
3   buildPythonPackage,
4   pythonAtLeast,
5   pythonOlder,
6   isPyPy,
7   fetchFromGitHub,
9   # build
10   cython,
11   setuptools,
13   # tests
14   aiofiles,
15   cbor2,
16   httpx,
17   msgpack,
18   mujson,
19   orjson,
20   pytest-asyncio,
21   pytest7CheckHook,
22   pyyaml,
23   rapidjson,
24   requests,
25   testtools,
26   ujson,
27   uvicorn,
28   websockets,
31 buildPythonPackage rec {
32   pname = "falcon";
33   version = "3.1.3";
34   format = "pyproject";
35   disabled = pythonOlder "3.5";
37   src = fetchFromGitHub {
38     owner = "falconry";
39     repo = pname;
40     rev = "refs/tags/${version}";
41     hash = "sha256-7719gOM8WQVjODwOSo7HpH3HMFFeCGQQYBKktBAevig=";
42   };
44   nativeBuildInputs = [ setuptools ] ++ lib.optionals (!isPyPy) [ cython ];
46   __darwinAllowLocalNetworking = true;
48   preCheck = ''
49     export HOME=$TMPDIR
50     cp -R tests examples $TMPDIR
51     pushd $TMPDIR
52   '';
54   postCheck = ''
55     popd
56   '';
58   nativeCheckInputs = [
59     # https://github.com/falconry/falcon/blob/master/requirements/tests
60     pytest7CheckHook
61     pyyaml
62     requests
63     rapidjson
64     orjson
66     # ASGI specific
67     pytest-asyncio
68     aiofiles
69     httpx
70     uvicorn
71     websockets
73     # handler specific
74     cbor2
75     msgpack
76     mujson
77     ujson
78   ] ++ lib.optionals (pythonOlder "3.10") [ testtools ];
80   pytestFlagsArray = [ "tests" ];
82   disabledTestPaths =
83     [
84       # needs a running server
85       "tests/asgi/test_asgi_servers.py"
86     ]
87     ++ lib.optionals (pythonAtLeast "3.12") [
88       # ModuleNotFoundError: No module named 'distutils'
89       "tests/asgi/test_cythonized_asgi.py"
90     ];
92   meta = with lib; {
93     description = "Unladen web framework for building APIs and app backends";
94     homepage = "https://falconframework.org/";
95     license = licenses.asl20;
96     maintainers = with maintainers; [ desiderius ];
97   };