summary refs log blame commit diff
path: root/pkgs/development/python-modules/nipype/default.nix
blob: 68a544c9ab07c7138f0e594468f57b4b80dd5ec1 (plain) (tree)
1
2
3
4
5
6
7
8
9
             

                    
        

                     
                 

            








           
        

        
              
               
        



             
            
         
        

                    

              
             



                                                                               

  






                                                                                                         
                        
                   
                    
                    


                          
                                                                                

    




                                                                 



                       

                           
                   

              












               
                                                        
 
                 
          




                 
                
              

         
 

                                                                           
                                                    
                 
                                                             
     
                                    
 
                    
                                          




                                                                     
{ lib, stdenv
, buildPythonPackage
, fetchPypi
, isPy27
# python dependencies
, click
, python-dateutil
, etelemetry
, filelock
, funcsigs
, future
, mock
, networkx
, nibabel
, numpy
, packaging
, prov
, psutil
, pybids
, pydot
, pytest
, pytest-xdist
, pytest-forked
, rdflib
, scipy
, simplejson
, traits
, xvfbwrapper
, pytest-cov
, codecov
, sphinx
# other dependencies
, which
, bash
, glibcLocales
, callPackage
# causes Python packaging conflict with any package requiring rdflib,
# so use the unpatched rdflib by default (disables Nipype provenance tracking);
# see https://github.com/nipy/nipype/issues/2888:
, useNeurdflib ? false
}:

let

 # This is a temporary convenience package for changes waiting to be merged into the primary rdflib repo.
 neurdflib = callPackage ./neurdflib.nix { };

in

buildPythonPackage rec {
  pname = "nipype";
  version = "1.7.0";
  disabled = isPy27;

  src = fetchPypi {
    inherit pname version;
    sha256 = "e689fe2e5049598c9cd3708e8df1cac732fa1a88696f283e3bc0a70fecb8ab51";
  };

  postPatch = ''
    substituteInPlace nipype/interfaces/base/tests/test_core.py \
      --replace "/usr/bin/env bash" "${bash}/bin/bash"
  '';

  nativeBuildInputs = [
    sphinx
  ];

  propagatedBuildInputs = [
    click
    python-dateutil
    etelemetry
    filelock
    funcsigs
    future
    networkx
    nibabel
    numpy
    packaging
    prov
    psutil
    pydot
    scipy
    simplejson
    traits
    xvfbwrapper
  ] ++ [ (if useNeurdflib then neurdflib else rdflib) ];

  checkInputs = [
    pybids
    codecov
    glibcLocales
    mock
    pytest
    pytest-forked
    pytest-xdist
    pytest-cov
    which
  ];

  # checks on darwin inspect memory which doesn't work in build environment
  doCheck = !stdenv.isDarwin;
  # ignore tests which incorrect fail to detect xvfb
  checkPhase = ''
    LC_ALL="en_US.UTF-8" pytest nipype/tests -k 'not display'
  '';
  pythonImportsCheck = [ "nipype" ];

  meta = with lib; {
    homepage = "https://nipy.org/nipype/";
    description = "Neuroimaging in Python: Pipelines and Interfaces";
    license = licenses.bsd3;
    maintainers = with maintainers; [ ashgillman ];
  };
}