about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/development/python-modules/pandas/default.nix91
-rw-r--r--pkgs/top-level/python-packages.nix72
2 files changed, 92 insertions, 71 deletions
diff --git a/pkgs/development/python-modules/pandas/default.nix b/pkgs/development/python-modules/pandas/default.nix
new file mode 100644
index 000000000000..a923e553582c
--- /dev/null
+++ b/pkgs/development/python-modules/pandas/default.nix
@@ -0,0 +1,91 @@
+{ buildPythonPackage
+, python
+, stdenv
+, fetchurl
+, nose
+, glibcLocales
+, cython
+, dateutil
+, scipy
+, numexpr
+, pytz
+, xlrd
+, bottleneck
+, sqlalchemy
+, lxml
+, html5lib
+, beautifulsoup4
+, openpyxl
+, tables
+, xlwt
+, darwin ? {}
+, libcxx ? null
+}:
+
+let
+  inherit (stdenv.lib) optional optionalString concatStringsSep;
+  inherit (stdenv) isDarwin;
+in buildPythonPackage rec {
+  pname = "pandas";
+  version = "0.19.2";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://pypi/${builtins.substring 0 1 pname}/${pname}/${name}.tar.gz";
+    sha256 = "6f0f4f598c2b16746803c8bafef7c721c57e4844da752d36240c0acf97658014";
+  };
+
+  LC_ALL = "en_US.UTF-8";
+  buildInputs = [ nose glibcLocales ] ++ optional isDarwin libcxx;
+  propagatedBuildInputs = [
+    cython
+    dateutil
+    scipy
+    numexpr
+    pytz
+    xlrd
+    bottleneck
+    sqlalchemy
+    lxml
+    html5lib
+    beautifulsoup4
+    openpyxl
+    tables
+    xlwt
+  ] ++ optional isDarwin darwin.locale; # 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="${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']"
+
+  # disable clipboard tests since pbcopy/pbpaste are not open source
+    substituteInPlace pandas/io/tests/test_clipboard.py \
+      --replace pandas.util.clipboard no_such_module \
+      --replace OSError ImportError
+  '';
+
+  # The flag `-A 'not network'` will disable tests that use internet.
+  # The `-e` flag disables a few problematic tests.
+
+  checkPhase = ''
+    runHook preCheck
+    # The flag `-w` provides the initial directory to search for tests.
+    # The flag `-A 'not network'` will disable tests that use internet.
+    nosetests -w $out/${python.sitePackages}/pandas --no-path-adjustment -A 'not slow and not network' --stop \
+      --verbosity=3
+     runHook postCheck
+  '';
+
+  meta = {
+    homepage = "http://pandas.pydata.org/";
+    description = "Python Data Analysis Library";
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = with stdenv.lib.maintainers; [ raskin fridh ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index b062d7d6233b..5711faf65b6f 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -17879,77 +17879,7 @@ in {
     };
   };
 
-  pandas = let
-    inherit (pkgs.stdenv.lib) optional optionalString;
-    inherit (pkgs.stdenv) isDarwin;
-  in buildPythonPackage rec {
-    name = "pandas-${version}";
-    version = "0.19.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pandas/${name}.tar.gz";
-      sha256 = "2509feaeda72fce03675e2eccd2284bb1cadb6a0737008a5e741fe2431d47421";
-    };
-
-    LC_ALL = "en_US.UTF-8";
-    buildInputs = with self; [ nose pkgs.glibcLocales ] ++ optional isDarwin pkgs.libcxx;
-    propagatedBuildInputs = with self; [
-      cython
-      dateutil
-      scipy
-      numexpr
-      pytz
-      xlrd
-      bottleneck
-      sqlalchemy
-      lxml
-      html5lib
-      beautifulsoup4
-      openpyxl
-      tables
-      xlwt
-    ] ++ optional isDarwin pkgs.darwin.locale; # 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']"
-
-      # disable clipboard tests since pbcopy/pbpaste are not open source
-      substituteInPlace pandas/io/tests/test_clipboard.py \
-        --replace pandas.util.clipboard no_such_module \
-        --replace OSError ImportError
-    '';
-
-    # The flag `-A 'not network'` will disable tests that use internet.
-    # The `-e` flag disables a few problematic tests.
-
-    # Disable two tests that are broken since numpy 1.11. Fixed upstream.
-
-    checkPhase = let
-      testsToSkip = [ "test_range_slice_day" "test_range_slice_seconds" ];
-    in ''
-      runHook preCheck
-      # The flag `-A 'not network'` will disable tests that use internet.
-      # The `-e` flag disables a few problematic tests.
-      ${python.executable} setup.py nosetests -A 'not slow and not network' --stop \
-        -e '${concatStringsSep "|" testsToSkip}' --verbosity=3
-
-      runHook postCheck
-    '';
-
-    meta = {
-      homepage = "http://pandas.pydata.org/";
-      description = "Python Data Analysis Library";
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ raskin fridh ];
-      platforms = platforms.unix;
-    };
-  };
+  pandas = callPackage ../development/python-modules/pandas { };
 
   xlrd = buildPythonPackage rec {
     name = "xlrd-${version}";