about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorAllen Nelson <anelson@narrativescience.com>2015-09-14 15:06:21 -0500
committerVladimír Čunát <vcunat@gmail.com>2015-09-20 17:49:13 +0200
commit79c6c27b9b8116eb031c08ff525cbac5fdf69de5 (patch)
tree5c751b33e0850b2d45581a36958f8e4cd2b1d246 /pkgs
parent8e393dde0f716978fde32f0f9345983f1e6e3077 (diff)
pandas: add libcxx dependency on darwin (close #9862)
vcunat changed `optional` arguments from lists to packages.
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/top-level/python-packages.nix155
1 files changed, 84 insertions, 71 deletions
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 1a77df0b5cf8e..3febb9886e16b 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -2633,24 +2633,24 @@ let
        license = licenses.mit;
      };
   };
-  
+
   pytestrunner = buildPythonPackage rec {
     version = "2.6.2";
     name = "pytest-runner-${version}";
-    
+
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pytest-runner/${name}.tar.gz";
       sha256 = "e775a40ee4a3a1d45018b199c44cc20bbe7f3df2dc8882f61465bb4141c78cdb";
     };
-    
+
     buildInputs = with self; [setuptools_scm pytest];
-    
+
     meta = {
       description = "Invoke py.test as distutils command with dependency resolution";
       homepage = https://bitbucket.org/pytest-dev/pytest-runner;
       license = licenses.mit;
     };
-    
+
     # Trying to run tests fails with # RuntimeError: dictionary changed size during iteration
     doCheck = false;
   };
@@ -7225,19 +7225,19 @@ let
       homepage = http://pypi.python.org/pypi/IPy;
     };
   };
-  
+
   ipykernel = buildPythonPackage rec {
     version = "4.0.3";
     name = "ipykernel-${version}";
-    
+
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/i/ipykernel/${name}.tar.gz";
       sha256 = "a4d7d2d35a0af432c8391872cb4dae727d77031212f32ca858b5c84cd0ea821f";
     };
-    
+
     buildInputs = with self; [] ++ optionals isPy27 [mock];
     propagatedBuildInputs = with self; [ipython traitlets jupyter_client pexpect];
-    
+
     meta = {
       description = "IPython Kernel for Jupyter";
       homepage = http://ipython.org/;
@@ -7245,40 +7245,40 @@ let
       maintainers = with maintainers; [ fridh ];
     };
   };
-  
+
   ipyparallel = buildPythonPackage rec {
     version = "4.0.2";
     name = "ipyparallel-${version}";
-    
-    src = pkgs.fetchurl { 
+
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/i/ipyparallel/${name}.tar.gz";
       sha256 = "6b9e09ca441a45e055b97cb8e3e1dd30de85b935fae3aa0d97f138352fd3089b";
     };
-    
+
     propagatedBuildInputs = with self; [ipython_genutils decorator pyzmq ipython jupyter_client ipykernel];
-    
+
     meta = {
       description = "Interactive Parallel Computing with IPython";
       homepage = http://ipython.org/;
       license = licenses.bsd3;
       maintainers = with maintainers; [ fridh ];
     };
-  
+
   };
-  
+
   ipython = buildPythonPackage rec {
     version = "4.0.0";
     name = "ipython-${version}";
-    
+
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/i/ipython/${name}.tar.gz";
       sha256 = "2fd276c407fb0b29e5d4884a7029a2c27fef0a06fd7a34924cce69b7cc43f4da";
     };
-    
+
     buildInputs = with self; [nose] ++ optionals isPy27 [mock];
-    
+
     propagatedBuildInputs = with self; [decorator pickleshare simplegeneric traitlets requests pexpect sqlite3];
-    
+
     meta = {
       description = "IPython: Productive Interactive Computing";
       homepage = http://ipython.org/;
@@ -7286,16 +7286,16 @@ let
       maintainers = with maintainers; [ bjornfor jgeerds fridh ];
     };
   };
-  
+
   ipython_genutils = buildPythonPackage rec {
     version = "0.1.0";
     name = "ipython_genutils-${version}";
-    
+
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/i/ipython_genutils/${name}.tar.gz";
       sha256 = "3a0624a251a26463c9dfa0ffa635ec51c4265380980d9a50d65611c3c2bd82a6";
     };
-    
+
     meta = {
       description = "Vestigial utilities from IPython";
       homepage = http://ipython.org/;
@@ -7513,37 +7513,37 @@ let
       license = licenses.mit;
     };
   };
-  
+
   jupyter_client = buildPythonPackage rec {
     version = "4.0.0";
     name = "jupyter_client-${version}";
-    
+
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/j/jupyter_client/${name}.tar.gz";
       sha256 = "a39a4181ea2021daf6e821acae836999ef6e0fefe603813a7a7d4658d2ffa2ac";
     };
-        
+
     propagatedBuildInputs = with self; [traitlets jupyter_core pyzmq] ++ optional isPyPy py;
-    
+
     meta = {
       description = "Jupyter protocol implementation and client libraries";
       homepage = http://jupyter.org/;
       license = licenses.bsd3;
       maintainers = with maintainers; [ fridh ];
-    };  
+    };
   };
-  
+
   jupyter_core = buildPythonPackage rec {
     version = "4.0.4";
     name = "jupyter_core-${version}";
-    
+
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/j/jupyter_core/${name}.tar.gz";
       sha256 = "fcf45478025f34174943993947f51a41ad871ac998a14bf1cb87d8eb61e75c6d";
     };
-    
+
     propagatedBuildInputs = with self; [traitlets];
-    
+
     meta = {
       description = "Jupyter core package. A base package on which Jupyter projects rely";
       homepage = http://jupyter.org/;
@@ -8334,18 +8334,18 @@ let
       maintainers = with maintainers; [ thoughtpolice ];
     };
   };
-  
+
   mistune = buildPythonPackage rec {
     version = "0.7.1";
     name = "mistune-${version}";
-   
+
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/m/mistune/${name}.tar.gz";
       sha256 = "6076dedf768348927d991f4371e5a799c6a0158b16091df08ee85ee231d929a7";
     };
-    
+
     buildInputs = with self; [nose];
-    
+
     meta = {
       decription = "The fastest markdown parser in pure Python";
       homepage = https://github.com/lepture/mistune;
@@ -8827,39 +8827,39 @@ let
       license = licenses.lgpl21Plus;
     };
   };
-  
+
   nbconvert = buildPythonPackage rec {
     version = "4.0.0";
     name = "nbconvert-${version}";
-    
+
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/n/nbconvert/${name}.tar.gz";
       sha256 = "472ad15d1a71f1ef00c4094c11bb93638858fc89fb2c5838b3aa6b67d981b437";
     };
-    
+
     buildInputs = with self; [nose];
-    
+
     propagatedBuildInputs = with self; [mistune jinja2 pygments traitlets jupyter_core nbformat ipykernel tornado jupyter_client];
-    
+
     meta = {
       description = "Converting Jupyter Notebooks";
       homepage = http://jupyter.org/;
       license = licenses.bsd3;
       maintainers = with maintainers; [ fridh ];
-    }; 
+    };
   };
-  
+
   nbformat = buildPythonPackage rec {
     version = "4.0.0";
     name = "nbformat-${version}";
-  
+
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/n/nbformat/${name}.tar.gz";
       sha256 = "daf9b990e96863d120aff123361156a316757757b81a8070eb6945e4a9774b2d";
     };
-    
+
     propagatedBuildInputs = with self; [ipython_genutils traitlets jsonschema jupyter_core];
-    
+
     meta = {
       description = "The Jupyter Notebook format";
       homepage = "http://jupyter.org/";
@@ -9196,20 +9196,20 @@ let
 
     buildInputs = with self; [ nose ];
   };
-  
+
   notebook = buildPythonPackage rec {
     version = "4.0.4";
     name = "notebook-${version}";
-    
+
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/n/notebook/${name}.tar.gz";
       sha256 = "a57852514bce1b1cf41fa0311f6cf894960cf68b083b55e6c408316b598d5648";
     };
-    
+
     buildInputs = with self; [nose]  ++ optionals isPy27 [mock];
-    
+
     propagatedBuildInputs = with self; [jinja2 tornado ipython_genutils traitlets jupyter_core jupyter_client nbformat nbconvert ipykernel terminado requests pexpect];
-    
+
     meta = {
       description = "The Jupyter HTML notebook is a web-based notebook environment for interactive computing";
       homepage = http://jupyter.org/;
@@ -9731,7 +9731,10 @@ let
     };
   };
 
-  pandas = buildPythonPackage rec {
+  pandas = let
+    inherit (pkgs.stdenv.lib) optional optionalString;
+    inherit (pkgs.stdenv) isDarwin;
+  in buildPythonPackage rec {
     name = "pandas-0.16.2";
 
     src = pkgs.fetchurl {
@@ -9739,7 +9742,7 @@ let
       sha256 = "10agmrkps8bi5948vwpipfxds5kj1d076m9i0nhaxwqiw7gm6670";
     };
 
-    buildInputs = [ self.nose ];
+    buildInputs = [ self.nose ] ++ optional isDarwin pkgs.libcxx;
     propagatedBuildInputs = with self; [
       dateutil
       numpy
@@ -9753,7 +9756,17 @@ let
       html5lib
       modules.sqlite3
       beautifulsoup4
-    ];
+    ] ++ optional isDarwin pkgs.darwin.adv_cmds; # provides the locale command
+
+    # For OSX, we need to add a dependency on libcxx, which provides
+    # `complex.h` and other libraries that pandas depends on to build.
+    patchPhase = optionalString isDarwin ''
+      cpp_sdk="${pkgs.libcxx}/include/c++/v1";
+      echo "Adding $cpp_sdk to the setup.py common_include variable"
+      substituteInPlace setup.py \
+        --replace "['pandas/src/klib', 'pandas/src']" \
+                  "['pandas/src/klib', 'pandas/src', '$cpp_sdk']"
+    '';
 
     preCheck = ''
       # Broken test, probably https://github.com/pydata/pandas/issues/10312:
@@ -9957,16 +9970,16 @@ let
       url = "https://pypi.python.org/packages/source/p/path.py/${name}.tar.gz";
       sha256 = "5cdf60f359f1add18f8556c9a1855cbd1d517f0780e3d386c256515f698ba0e0";
     };
-    
+
     buildInputs = with self; [setuptools_scm pytestrunner pytest];
-    
+
     meta = {
       description = "A module wrapper for os.path";
       homepage = http://github.com/jaraco/path.py;
       license = licenses.mit;
       platforms = platforms.linux;
     };
-    
+
     # Test fails with python 2.7: TestUnicodePaths.test_walkdirs_with_unicode_name
     # Also during tests with python 3.4: RuntimeError: dictionary changed size during iteration
     # Caused by pytestrunner
@@ -10220,21 +10233,21 @@ let
   pickleshare = buildPythonPackage rec {
     version = "0.5";
     name = "pickleshare-${version}";
-    
+
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pickleshare/${name}.tar.gz";
       sha256 = "c0be5745035d437dbf55a96f60b7712345b12423f7d0951bd7d8dc2141ca9286";
     };
-    
+
     propagatedBuildInputs = with self; [pathpy];
-    
+
     meta = {
       description = "Tiny 'shelve'-like database with concurrency support";
       homepage = https://github.com/vivainio/pickleshare;
       license = licenses.mit;
     };
   };
-  
+
   pip = buildPythonPackage rec {
     version = "1.5.6";
     name = "pip-${version}";
@@ -12628,19 +12641,19 @@ let
       license = licenses.bsd3;
     };
   };
-  
+
   qtconsole = buildPythonPackage rec {
     version = "4.0.1";
     name = "qtconsole-${version}";
-    
+
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/q/qtconsole/${name}.tar.gz";
       sha256 = "7d2cf976bb960df11f413709b5b5b809365c48426110e946d0c12117e6ced3a5";
     };
-    
+
     buildInputs = with self; [] ++ optionals isPy27 [mock];
     propagatedBuildInputs = with self; [traitlets jupyter_core jupyter_client pygments ipykernel pyqt4];
-    
+
     meta = {
       description = "Jupyter Qt console";
       homepage = http://jupyter.org/;
@@ -13403,16 +13416,16 @@ let
       license = "unspecified"; # !
     };
   };
-  
+
   simplegeneric = buildPythonPackage rec {
     version = "0.8.1";
     name = "simplegeneric-${version}";
-    
+
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/s/simplegeneric/${name}.zip";
       sha256 = "dc972e06094b9af5b855b3df4a646395e43d1c9d0d39ed345b7393560d0b9173";
     };
-    
+
     meta = {
       description = "Simple generic functions";
       homepage = http://cheeseshop.python.org/pypi/simplegeneric;
@@ -14666,14 +14679,14 @@ let
   traitlets = buildPythonPackage rec {
     version = "4.0.0";
     name = "traitlets-${version}";
-    
+
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/t/traitlets/${name}.tar.gz";
       sha256 = "0b140b4a94a4f1951887d9bce4650da211f79600fc9fdb422acc90c5bbe0233b";
     };
-    
+
     propagatedBuildInputs = with self; [ipython_genutils decorator];
-    
+
     meta = {
       description = "Traitlets Python config system";
       homepage = http://ipython.org/;