Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / python-modules / falcon / default.nix
blobb0880c384dba1ca259ab42f1205b765e479cec5a
1 { lib
2 , buildPythonPackage
3 , pythonOlder
4 , isPyPy
5 , fetchFromGitHub
7 # build
8 , cython
9 , setuptools
11 # tests
12 , aiofiles
13 , cbor2
14 , httpx
15 , msgpack
16 , mujson
17 , orjson
18 , pytest-asyncio
19 , pytestCheckHook
20 , pyyaml
21 , rapidjson
22 , requests
23 , testtools
24 , ujson
25 , uvicorn
26 , websockets
29 buildPythonPackage rec {
30   pname = "falcon";
31   version = "3.1.1";
32   format = "pyproject";
33   disabled = pythonOlder "3.5";
35   src = fetchFromGitHub {
36     owner = "falconry";
37     repo = pname;
38     rev = "refs/tags/${version}";
39     hash = "sha256-5Lhz4qI/x7yK9tqQg4CvYNug+fp9l6ErNGH1pVybZ6c=";
40   };
42   nativeBuildInputs = [
43     setuptools
44   ] ++ lib.optionals (!isPyPy) [
45     cython
46   ];
48   __darwinAllowLocalNetworking = true;
50   preCheck = ''
51     export HOME=$TMPDIR
52     cp -R tests examples $TMPDIR
53     pushd $TMPDIR
54   '';
56   postCheck = ''
57     popd
58   '';
60   nativeCheckInputs = [
61     # https://github.com/falconry/falcon/blob/master/requirements/tests
62     pytestCheckHook
63     pyyaml
64     requests
65     rapidjson
66     orjson
68     # ASGI specific
69     pytest-asyncio
70     aiofiles
71     httpx
72     uvicorn
73     websockets
75     # handler specific
76     cbor2
77     msgpack
78     mujson
79     ujson
80   ] ++ lib.optionals (pythonOlder "3.10") [
81     testtools
82   ];
84   pytestFlagsArray = [
85     "tests"
86   ];
88   disabledTestPaths = [
89     # needs a running server
90     "tests/asgi/test_asgi_servers.py"
91   ];
93   meta = with lib; {
94     description = "An unladen web framework for building APIs and app backends";
95     homepage = "https://falconframework.org/";
96     license = licenses.asl20;
97     maintainers = with maintainers; [ desiderius ];
98   };