forked from mirrors/nixpkgs
3aa6b8ccc5
This requires pycodestyle when using python3 and adding it leads to test failures for some reason. Maybe some patching we do. There is no reason to test codestyle for a distro, so just disable it.
62 lines
1.7 KiB
Nix
62 lines
1.7 KiB
Nix
{ lib
|
|
, stdenv
|
|
, buildPythonPackage
|
|
, fetchPypi
|
|
, python
|
|
, glibcLocales
|
|
, pkgconfig
|
|
, gdb
|
|
, numpy
|
|
, ncurses
|
|
, fetchpatch
|
|
}:
|
|
|
|
let
|
|
excludedTests = []
|
|
++ [ "reimport_from_subinterpreter" ]
|
|
# cython's testsuite is not working very well with libc++
|
|
# We are however optimistic about things outside of testsuite still working
|
|
++ stdenv.lib.optionals (stdenv.cc.isClang or false) [ "cpdef_extern_func" "libcpp_algo" ]
|
|
# Some tests in the test suite isn't working on aarch64. Disable them for
|
|
# now until upstream finds a workaround.
|
|
# Upstream issue here: https://github.com/cython/cython/issues/2308
|
|
++ stdenv.lib.optionals stdenv.isAarch64 [ "numpy_memoryview" ]
|
|
++ stdenv.lib.optionals stdenv.isi686 [ "future_division" "overflow_check_longlong" ]
|
|
;
|
|
|
|
in buildPythonPackage rec {
|
|
pname = "Cython";
|
|
version = "0.29";
|
|
|
|
src = fetchPypi {
|
|
inherit pname version;
|
|
sha256 = "15zama7fgp7yyi3z39xp3z2lvwcgch8fn3ycscw2cs37vqg6v4cl";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
pkgconfig
|
|
];
|
|
checkInputs = [
|
|
numpy ncurses
|
|
];
|
|
buildInputs = [ glibcLocales gdb ];
|
|
LC_ALL = "en_US.UTF-8";
|
|
|
|
checkPhase = ''
|
|
export HOME="$NIX_BUILD_TOP"
|
|
${python.interpreter} runtests.py -j$NIX_BUILD_CORES \
|
|
--no-code-style \
|
|
${stdenv.lib.optionalString (builtins.length excludedTests != 0)
|
|
''--exclude="(${builtins.concatStringsSep "|" excludedTests})"''}
|
|
'';
|
|
|
|
doCheck = !stdenv.isDarwin;
|
|
|
|
meta = {
|
|
description = "An optimising static compiler for both the Python programming language and the extended Cython programming language";
|
|
homepage = http://cython.org;
|
|
license = lib.licenses.asl20;
|
|
maintainers = with lib.maintainers; [ fridh ];
|
|
};
|
|
}
|