diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ac800873860b..432ce0b974d7 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8116,21 +8116,79 @@ let sha256 = "1w3wjnn3v37hf3hrd24lfgk6vpykarv9mihhpcfq6y7rg586bgjk"; }; - buildInputs = with self; [ nose ]; - propagatedBuildInputs = with self; [ dateutil numpy pytz modules.sqlite3 ]; + buildInputs = [ self.nose ]; + propagatedBuildInputs = with self; [ + dateutil + numpy + scipy + numexpr + pytz + xlrd + bottleneck + sqlalchemy9 + lxml + modules.sqlite3 + ]; - # Tests require networking to pass - doCheck = false; + preCheck = '' + # Need to do this patch or tests will fail (swaps 1st and 2nd lines). + # See: https://github.com/pydata/pandas/commit/c4bcc2054bfd2f89b640bea0c9a109b0184d6710 + first=$(sed -n '1p' < pandas/tests/test_format.py) + second=$(sed -n '2p' < pandas/tests/test_format.py) + rest=$(tail -n +3 pandas/tests/test_format.py) + echo $second > pandas/tests/test_format.py + echo $first >> pandas/tests/test_format.py + echo "$rest" >> pandas/tests/test_format.py + + # Need to skip this test; insert a line here... hacky but oh well. + badtest=pandas/tseries/tests/test_timezones.py + fixed=$TMPDIR/fixed_test_timezones.py + touch $fixed + head -n 602 $badtest > $fixed + echo ' raise nose.SkipTest("Not working")' >> $fixed + tail -n +603 $badtest >> $fixed + mv $fixed $badtest + ''; + + checkPhase = '' + 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 network' --stop \ + -e 'test_clipboard|test_series' --verbosity=3 + + runHook postCheck + ''; meta = { homepage = "http://pandas.pydata.org/"; description = "Python Data Analysis Library"; license = licenses.bsd3; maintainers = with maintainers; [ raskin ]; - platforms = platforms.linux; + platforms = platforms.unix; }; }; + xlrd = buildPythonPackage rec { + name = "xlrd-${version}"; + version = "0.9.3"; + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/x/xlrd/xlrd-${version}.tar.gz"; + sha256 = "174ks80h0g9p67ahnakf0y7di3gvbhxvb1jlk097gvd7gpi3aflk"; + }; + }; + + bottleneck = buildPythonPackage rec { + name = "Bottleneck-${version}"; + version = "1.0.0"; + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/B/Bottleneck/Bottleneck-${version}.tar.gz"; + sha256 = "15dl0ll5xmfzj2fsvajzwxsb9dbw5i9fx9i4r6n4i5nzzba7m6wd"; + }; + propagatedBuildInputs = [self.numpy]; + }; + parsedatetime = buildPythonPackage rec { name = "parsedatetime-${version}"; version = "1.4"; @@ -9172,12 +9230,12 @@ let version = "1.5.3"; # FAIL:test_generate_entry and test_time # both tests fail due to time issue that doesn't seem to matter in practice - doCheck = false; + doCheck = false; src = pkgs.fetchurl { url = "https://github.com/pyblosxom/pyblosxom/archive/v${version}.tar.gz"; sha256 = "0de9a7418f4e6d1c45acecf1e77f61c8f96f036ce034493ac67124626fd0d885"; }; - + propagatedBuildInputs = with self; [ pygments markdown ]; meta = {