1{
2 gevent,
3 buildPythonPackage,
4 fetchFromGitHub,
5 hostname,
6 pytest,
7 pythonAtLeast,
8 lib,
9 stdenv,
10}:
11
12buildPythonPackage rec {
13 pname = "ruffus";
14 version = "2.8.4";
15 format = "setuptools";
16
17 src = fetchFromGitHub {
18 owner = "cgat-developers";
19 repo = "ruffus";
20 rev = "v${version}";
21 sha256 = "0fnzpchwwqsy5h18fs0n90s51w25n0dx0l74j0ka6lvhjl5sxn4c";
22 };
23
24 propagatedBuildInputs = [ gevent ];
25
26 nativeCheckInputs = [
27 hostname
28 pytest
29 ];
30
31 # tests very flaky & hang often on darwin
32 doCheck = !stdenv.hostPlatform.isDarwin;
33 checkPhase =
34 # https://docs.python.org/3/whatsnew/3.13.html#re
35 lib.optionalString (pythonAtLeast "3.13") ''
36 substituteInPlace ruffus/test/test_ruffus_utility.py \
37 --replace-fail re.error re.PatternError
38 ''
39 # test files do indeed need to be executed separately
40 + ''
41 pushd ruffus/test
42 rm test_with_logger.py # spawns 500 processes
43 for f in test_*.py ; do
44 HOME=$TMPDIR pytest -v --disable-warnings $f
45 done
46 popd
47 '';
48 pythonImportsCheck = [ "ruffus" ];
49
50 meta = with lib; {
51 description = "Light-weight Python Computational Pipeline Management";
52 homepage = "http://www.ruffus.org.uk";
53 license = licenses.mit;
54 maintainers = [ ];
55 };
56}