Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / trio / default.nix
blobcc276fef5c525c661c07d51550b8e191a98f3851
1 { lib
2 , buildPythonPackage
3 , fetchPypi
4 , pythonOlder
5 , stdenv
7 # build-system
8 , setuptools
10 # dependencies
11 , attrs
12 , exceptiongroup
13 , idna
14 , outcome
15 , sniffio
16 , sortedcontainers
18 # tests
19 , astor
20 , coreutils
21 , jedi
22 , pyopenssl
23 , pytestCheckHook
24 , pytest-trio
25 , trustme
26 , yapf
29 let
30   # escape infinite recursion with pytest-trio
31   pytest-trio' = (pytest-trio.override {
32     trio = null;
33   }).overrideAttrs {
34     doCheck = false;
35     pythonImportsCheck = [];
36   };
38 buildPythonPackage rec {
39   pname = "trio";
40   version = "0.24.0";
41   pyproject = true;
43   disabled = pythonOlder "3.8";
45   src = fetchPypi {
46     inherit pname version;
47     hash = "sha256-/6CadKa/gbhPhhOQn7C+ruhHV0UBg6ei4LR7RVwMrF0=";
48   };
50   postPatch = ''
51     substituteInPlace src/trio/_tests/test_subprocess.py \
52       --replace "/bin/sleep" "${coreutils}/bin/sleep"
53   '';
55   nativeBuildInputs = [
56     setuptools
57   ];
59   propagatedBuildInputs = [
60     attrs
61     idna
62     outcome
63     sniffio
64     sortedcontainers
65   ] ++ lib.optionals (pythonOlder "3.11") [
66     exceptiongroup
67   ];
69   # tests are failing on Darwin
70   doCheck = !stdenv.isDarwin;
72   nativeCheckInputs = [
73     astor
74     jedi
75     pyopenssl
76     pytestCheckHook
77     pytest-trio'
78     trustme
79     yapf
80   ];
82   preCheck = ''
83     export HOME=$TMPDIR
84     # $out is first in path which causes "import file mismatch"
85     PYTHONPATH=$PWD/src:$PYTHONPATH
86   '';
88   # It appears that the build sandbox doesn't include /etc/services, and these tests try to use it.
89   disabledTests = [
90     "getnameinfo"
91     "SocketType_resolve"
92     "getprotobyname"
93     "waitpid"
94     "static_tool_sees_all_symbols"
95     # tests pytest more than python
96     "fallback_when_no_hook_claims_it"
97     # requires mypy
98     "test_static_tool_sees_class_members"
99   ];
101   disabledTestPaths = [
102     # linters
103     "src/trio/_tests/tools/test_gen_exports.py"
104   ];
106   pytestFlagsArray = [
107     "-W" "ignore::DeprecationWarning"
108   ];
110   meta = {
111     description = "An async/await-native I/O library for humans and snake people";
112     homepage = "https://github.com/python-trio/trio";
113     license = with lib.licenses; [ mit asl20 ];
114     maintainers = with lib.maintainers; [ catern ];
115   };