Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / cython / default.nix
blob4467dc3b459ce272c94683aa78ffc69f515b5a69
1 { lib
2 , stdenv
3 , buildPythonPackage
4 , fetchPypi
5 , setuptools
6 , python
7 , pkg-config
8 , gdb
9 , numpy
10 , ncurses
13 let
14   excludedTests = [ "reimport_from_subinterpreter" ]
15     # cython's testsuite is not working very well with libc++
16     # We are however optimistic about things outside of testsuite still working
17     ++ lib.optionals (stdenv.cc.isClang or false) [ "cpdef_extern_func" "libcpp_algo" ]
18     # Some tests in the test suite isn't working on aarch64. Disable them for
19     # now until upstream finds a workaround.
20     # Upstream issue here: https://github.com/cython/cython/issues/2308
21     ++ lib.optionals stdenv.isAarch64 [ "numpy_memoryview" ]
22     ++ lib.optionals stdenv.isi686 [ "future_division" "overflow_check_longlong" ]
23   ;
25 in buildPythonPackage rec {
26   pname = "cython";
27   version = "3.0.9";
28   pyproject = true;
30   src = fetchPypi {
31     pname = "Cython";
32     inherit version;
33     hash = "sha256-otNU8FnR8FXTTPqmLFtovHisLOq2QHFI1H+1CM87pPM=";
34   };
36   build-system = [
37     pkg-config
38     setuptools
39   ];
41   nativeCheckInputs = [
42     gdb numpy ncurses
43   ];
45   env.LC_ALL = "en_US.UTF-8";
47   checkPhase = ''
48     export HOME="$NIX_BUILD_TOP"
49     ${python.interpreter} runtests.py -j$NIX_BUILD_CORES \
50       --no-code-style \
51       ${lib.optionalString (builtins.length excludedTests != 0)
52         ''--exclude="(${builtins.concatStringsSep "|" excludedTests})"''}
53   '';
55   # https://github.com/cython/cython/issues/2785
56   # Temporary solution
57   doCheck = false;
58   # doCheck = !stdenv.isDarwin;
60   # force regeneration of generated code in source distributions
61   # https://github.com/cython/cython/issues/5089
62   setupHook = ./setup-hook.sh;
64   meta = {
65     changelog = "https://github.com/cython/cython/blob/${version}/CHANGES.rst";
66     description = "An optimising static compiler for both the Python programming language and the extended Cython programming language";
67     homepage = "https://cython.org";
68     license = lib.licenses.asl20;
69     maintainers = with lib.maintainers; [ fridh ];
70   };