What’s New in sunpy 6.0?#

The SunPy Project is pleased to announce the 6.0 release of the sunpy core package.

On this page, you can read about some of the big changes in this release.

sunpy 6.0 also includes a large number of smaller improvements and bug fixes, which are described in the Full Changelog.

PUT STATS HERE

Updates to minimum dependencies#

The minimum required version of Python has been updated to 3.10.

The minimum required versions of core dependencies have been updated:

  • astropy >= 5.2.0

The minimum required versions of these optional dependencies has also been updated:

  • asdf >= 2.12.0

  • asdf-astropy >= 0.2.0

  • beautifulsoup4 >= 4.11.0

  • cdflib >= 0.4.4

  • dask >= 2022.5.2

  • h5netcdf >= 1.0.0

  • h5py >= 3.7.0

  • lxml >= 4.9.0

  • opencv-python >= 4.6.0.66

  • pandas >= 1.4.0

  • reproject >= 0.9.0

  • requests >= 2.28

  • scikit-image >= 0.19.0

  • scipy >= 1.8.0

  • spiceypy >= 5.0.0

  • tqdm >= 4.64.0

  • zeep >= 4.1.0

Removal of sunpy.database#

The sunpy.database module has not been actively maintained for over a year now and has a number of outstanding issues. It has been deprecated since sunpy 4.1, and since there have been no major objections from the community since then we have completely removed sunpy.database in sunpy 6.0. If you are interested in seeing a replacement for sunpy.database, either inside sunpy or as a third-party package, please join the discussion thread at https://community.openastronomy.org/t/deprecating-sunpy-database/495.

Arguments for reproject_to()#

Arguments for this method have been changed to be keyword only after the target WCS argument. This was raising a warning since sunpy 4.1.

Removal of sunpy.net.helioviewer.HelioViewerClient#

sunpy.net.helioviewer has been deprecated since sunpy v4.1 and has now been removed. Users should instead use the hvpy package. This package provides a Python wrapper around the Helioviewer API and is maintained by the Helioviewer Project. The hvpy package supersedes the sunpy.net.helioviewer module.

Arguments for sunpy.timeseries.GenericTimeSeries.peek() are now keywords only#

The arguments for sunpy.timeseries.GenericTimeSeries.peek() have been changed to be keyword only. This means that you must now specify the arguments by name, rather than by position and has been done to make the API more consistent. This has been raising a warning since sunpy 4.1 and is now an error.

Fix filename sanitization for downloaded files from the VSO#

The VSOClient has been sanitizing filenames to ensure that they are valid on all platforms. However, we have now fixed the sanitization to be more conservative, to follow the NFKC Unicode normalization, which is the recommended normalization for filenames on most platforms. This now does not replace periods, does not change letter case and do not leave Unicode characters decomposed. An example of this is that the filename will now be replaced with instead of being left out of the filename. Another example is that the filename “aia.lev1.171A_2020_06_07T06_33_09.35Z.image_lev1.fits” used to be replaced with “aia_lev1_171a_2020_06_07t06_33_09_35z_image_lev1.fits” and now will not be.

Deprecate positional arguments in sunpy.map.GenericMap.plot()#

The arguments for sunpy.map.GenericMap.plot() have been changed to being keyword only. Pass them as keyword arguments (e.g., ..., title=True, ...) instead.