Useful information#
NEP 29 — Recommend Python and Numpy version support#
Abstract#
NEP 29 (NumPy Enhancement Proposals) recommends that all projects across the Scientific Python ecosystem adopt a common “time window-based” policy for support of Python and NumPy versions. Standardizing a recommendation for project support of minimum Python and NumPy versions will improve downstream project planning.
Implementation recommendation#
This project supports:
All minor versions of Python released 42 months prior to the project, and at minimum the two latest minor versions.
All minor versions of
numpy
released in the 24 months prior to the project, and at minimum the last three minor versions.
In setup.py
, the python_requires
variable should be set to the minimum
supported version of Python. All supported minor versions of Python should be
in the test matrix and have binary artifacts built for the release.
Minimum Python and NumPy version support should be adjusted upward on every major and minor release, but never on a patch release.
Conda-forge packaging#
The feedstock for the conda package lives in the conda-forge organisation on github: conda-forge/hyperspy-feedstock.
Monitoring version distribution#
Download metrics are available from pypi and Anaconda cloud, but the reliability of these numbers is poor for the following reason:
hyperspy is distributed by other means: the hyperspy-bundle, or by various linux distribution (Arch-Linux, openSUSE)
these packages may be used by continuous integration of other python libraries
However, distribution of downloaded versions can be useful to identify issues, such as version pinning or library incompatibilities. Various services processing the pypi data are available online:
HTML Representations#
For use inside of jupyter notebooks, html representations are functions which allow for more detailed data representations using snippets of populated HTML.
Hyperspy uses jinja and extends dask’s html representations in many cases in line with this PR: dask/dask#8019