about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules/sunpy/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/sunpy/default.nix')
-rw-r--r--nixpkgs/pkgs/development/python-modules/sunpy/default.nix164
1 files changed, 164 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/sunpy/default.nix b/nixpkgs/pkgs/development/python-modules/sunpy/default.nix
new file mode 100644
index 000000000000..a676f28d2758
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sunpy/default.nix
@@ -0,0 +1,164 @@
+{ lib
+, stdenv
+, asdf
+, astropy
+, astropy-extension-helpers
+, astropy-helpers
+, beautifulsoup4
+, buildPythonPackage
+, drms
+, fetchPypi
+, glymur
+, h5netcdf
+, hypothesis
+, lxml
+, matplotlib
+, numpy
+, pandas
+, parfive
+, pytest-astropy
+, pytestCheckHook
+, pytest-mock
+, python-dateutil
+, pythonOlder
+, scikit-image
+, scipy
+, setuptools-scm
+, sqlalchemy
+, tqdm
+, zeep
+}:
+
+buildPythonPackage rec {
+  pname = "sunpy";
+  version = "5.0.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-7tmyywyfQw1T9qr5UbPH/KR+AmmhSaHunkeUGRKDl+Q=";
+  };
+
+  nativeBuildInputs = [
+    astropy-extension-helpers
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    astropy
+    astropy-helpers
+    numpy
+    parfive
+  ];
+
+  passthru.optional-dependencies = {
+    asdf = [
+      asdf
+      # asdf-astropy
+    ];
+    database = [
+      sqlalchemy
+    ];
+    image = [
+      scikit-image
+      scipy
+    ];
+    net = [
+      beautifulsoup4
+      drms
+      python-dateutil
+      tqdm
+      zeep
+    ];
+    jpeg2000 = [
+      glymur
+      lxml
+    ];
+    timeseries = [
+      # cdflib
+      h5netcdf
+      # h5py
+      matplotlib
+      pandas
+    ];
+  };
+
+  nativeCheckInputs = [
+    hypothesis
+    pytest-astropy
+    pytest-mock
+    pytestCheckHook
+  ] ++ passthru.optional-dependencies.asdf
+    ++ passthru.optional-dependencies.database
+    ++ passthru.optional-dependencies.image
+    ++ passthru.optional-dependencies.net
+    ++ passthru.optional-dependencies.timeseries;
+
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace " --dist no" ""
+  '';
+
+  # darwin has write permission issues
+  doCheck = stdenv.isLinux;
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  disabledTests = [
+    "rst"
+    "test_sunpy_warnings_logging"
+    "test_main_nonexisting_module"
+    "test_main_stdlib_module"
+    "test_find_dependencies"
+  ];
+
+  disabledTestPaths = [
+    # Tests are very slow
+    "sunpy/net/tests/test_fido.py"
+    # asdf.extensions plugin issue
+    "sunpy/io/special/asdf/resources/schemas/"
+    "sunpy/io/special/asdf/resources/manifests/sunpy-1.0.0.yaml"
+    # Requires mpl-animators package
+    "sunpy/map/tests/test_compositemap.py"
+    "sunpy/map/tests/test_mapbase.py"
+    "sunpy/map/tests/test_mapsequence.py"
+    "sunpy/map/tests/test_plotting.py"
+    "sunpy/map/tests/test_reproject_to.py"
+    "sunpy/net/tests/test_helioviewer.py"
+    "sunpy/timeseries/tests/test_timeseriesbase.py"
+    "sunpy/visualization/animator/tests/test_basefuncanimator.py"
+    "sunpy/visualization/animator/tests/test_mapsequenceanimator.py"
+    "sunpy/visualization/animator/tests/test_wcs.py"
+    "sunpy/visualization/colormaps/tests/test_cm.py"
+    # Requires cdflib package
+    "sunpy/timeseries/tests/test_timeseries_factory.py"
+    # Requires jplephem
+    "sunpy/image/tests/test_transform.py"
+    "sunpy/io/special/asdf/tests/test_coordinate_frames.py"
+    "sunpy/io/special/asdf/tests/test_genericmap.py"
+    # distutils is deprecated
+    "sunpy/io/setup_package.py"
+  ];
+
+  pytestFlagsArray = [
+    "-W"
+    "ignore::DeprecationWarning"
+  ];
+
+  # Wants a configuration file
+  # pythonImportsCheck = [
+  #   "sunpy"
+  # ];
+
+  meta = with lib; {
+    description = "Python for Solar Physics";
+    homepage = "https://sunpy.org";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ ];
+    broken = true;
+  };
+}