Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ecosystem compatibility with numpy 2.0 #26191

Open
rgommers opened this issue Apr 1, 2024 · 93 comments
Open

Ecosystem compatibility with numpy 2.0 #26191

rgommers opened this issue Apr 1, 2024 · 93 comments

Comments

@rgommers
Copy link
Member

rgommers commented Apr 1, 2024

This list tracks the compatibility status of packages that depend on or support NumPy. If "compatible release on PyPI" does not say "yes" but a version number is listed: this is based on plans announced in a tracking issue or other communication by the authors of the package.

Maintainers: please feel free to edit directly (please refresh the page first to avoid overwriting edits from others!). Others who want to update things: please do comment, or feel free to ping me elsewhere.

Package name Compatible release on PyPI? Min compatible version Notes
Adaptive yes 1.3.0 python-adaptive/adaptive#458
AstroPy yes 6.1.0 astropy/astropy#16200
astropy-healpix yes 1.0.3 astropy/astropy-healpix#214
AwkwardArray yes 2.6.3 scikit-hep/awkward#3064
BioPython 1.84 biopython/biopython#4676
Bokeh yes 3.4.1 bokeh/bokeh#13835
Boost.Python 1.86.0 boostorg/python#431
CARMA RUrlus/carma#129
Cartopy yes 0.23 SciTools/cartopy#2339
Catboost catboost/catboost#2671
clawpack clawpack/clawpack#252
ContourPy yes 1.2.1 contourpy/contourpy#371
CPNest johnveitch/cpnest#92
CuPy 14.0.0 cupy/cupy#8306
Cython yes 3.0.4 Version is an estimate, it's worked fine for quite a while
Cython BLIS explosion/cython-blis#106
Dask yes 2024.5.1 dask/dask#11066
Datashader yes 0.16.2 holoviz/datashader#1324
EigenPy 3.5.0 (possibly more work still needed) stack-of-tasks/eigenpy#448
fastparquet yes 2024.5.0 dask/fastparquet#922
fitsio esheldon/fitsio#393
GDAL yes 3.9.0 OSGeo/gdal#9751
GeoPandas yes 0.14.4 geopandas/geopandas#3258
GNU Radio gnuradio/gnuradio#7378
h5py yes 3.11.0 h5py/h5py#2353
hypothesis yes 6.100.2 HypothesisWorks/hypothesis#3950
imagecodecs yes 2024.6.1 cgohlke/imagecodecs#100
Imageio imageio/imageio#1077
ITK yes 5.4.0 InsightSoftwareConsortium/ITK#4700
JAX yes 0.4.26 google/jax#19246
Keras keras-team/keras#19691
LightGBM 4.4.0 (planned) microsoft/LightGBM#6454 & microsoft/LightGBM#6439
Matplotlib yes 3.8.4 matplotlib/matplotlib#26778
MDAnalysis MDAnalysis/mdanalysis#4482
ml_dtypes yes 0.4.0 jax-ml/ml_dtypes#143
mlpack mlpack/mlpack#3723
netCDF4 Unidata/netcdf4-python#1317
NetworkX yes 3.3 networkx/networkx#7390
Numba 0.60 (0.60.0rc1 is available) numba/numba#9544, Discourse post with context
numcodecs yes 0.12.1 Likely older versions too; has been stable for a while. zarr-developers/numcodecs#521
numexpr yes 2.10.0 pydata/numexpr#478
OpenCV opencv/opencv-python#943
Pandas yes 2.2.2 pandas-dev/pandas#55519
pint hgrecco/pint#1974
pvlib yes 0.10.5 pvlib/pvlib-python#2026
PyArrow yes 16.0 apache/arrow#39532
Py-ART / arm-pyart yes 1.18.2 ARM-DOE/pyart#1550
Pybind11 yes 2.12.0 pybind/pybind11#5009
PyData Sparse yes 0.15.2 pydata/sparse#680 (required Numba 0.60)
PyKrige yes 1.7.2 GeoStat-Framework/PyKrige#290
PyMC depends on PyTensor
PySide6 yes 6.7.0 from a comment on this issue: #26191 (comment)
PyTables PyTables/PyTables#1083
PyTensor pymc-devs/pytensor#689
Pythran yes 0.16.0 (0.15.0 works mostly, SciPy builds with it) serge-sans-paille/pythran#2189
PyTorch yes 2.3.0 pytorch/pytorch#107302
PyWavelets yes 1.6.0 PyWavelets/pywt#731
QuTiP qutip/qutip#2421
RAPIDS rapidsai/build-planning#38
Rasterio yes 1.3.10 rasterio/rasterio#3024
RDKit rdkit/rdkit#7477
scikit-bio 0.6.1 scikit-bio/scikit-bio#1964
scikit-image yes 0.23.1 scikit-image/scikit-image#7282
scikit-learn yes 1.4.2 scikit-learn/scikit-learn#27075
scikit-sparse scikit-sparse/scikit-sparse#120
scipp scipp/scipp#3427
SciPy yes 1.13.0 scipy/scipy#20375
Shapely yes 2.0.4 shapely/shapely#1972
spglib spglib/spglib#407
SymPy yes 1.12.1
Seaborn yes 0.13.2 mwaskom/seaborn#3683
statsmodels yes 0.14.2 statsmodels/statsmodels#9194
TensorFlow tensorflow/tensorflow#67291, has <2 upper bound for 2.16.1, requirements, lock file
threadpoolctl yes 3.5.0 joblib/threadpoolctl#175
tifffile yes 2024.4.24 cgohlke/tifffile#252
torchvision 0.19.0 (0.18.0 is >98% compatible) pytorch/vision#8460
treelite yes 4.2.1 dmlc/treelite#560
unyt yes 3.0.2 yt-project/unyt#493
Xarray pydata/xarray#8844
XGBoost 2.1.0 dmlc/xgboost#10221
yt yes 4.3.1 yt-project/yt#4859
Zarr yes 2.18.0 zarr-developers/zarr-python#1818
zfpy LLNL/zfp#210
@jakevdp
Copy link
Contributor

jakevdp commented Apr 1, 2024

Thanks - for JAX we are planning an 0.4.26 release in the next day or two which will be built against NumPy 2.0.0rc1.

@jakevdp
Copy link
Contributor

jakevdp commented Apr 1, 2024

Also, in case you want to add it, we just released ml_dtypes v0.4.0 (https://pypi.org/project/ml-dtypes/) which is compatible with NumPy 2.0.

@jakirkham
Copy link
Contributor

Thanks for putting this together Ralf! 🙏

This is incredibly helpful 🙂

@rgommers
Copy link
Member Author

rgommers commented Apr 1, 2024

Thanks @jakevdp, I added the info for both JAX and ml_dtypes.

@neutrinoceros
Copy link
Contributor

unyt 3.0.2 was also released a couple days ago for compat with numpy 2, in case you'd like to include it !

@neutrinoceros
Copy link
Contributor

Also, here's where to track progress for cartopy : SciTools/cartopy#2339

@rgommers
Copy link
Member Author

rgommers commented Apr 2, 2024

Thanks @neutrinoceros, much appreciated. Added both packages.

@ianthomas23
Copy link
Contributor

ContourPy 1.2.1 has just been released on PyPI (https://pypi.org/project/contourpy/1.2.1/) with NumPy 2 compatibility, most relevant PR is contourpy/contourpy#371. It is a compulsory dependency of Matplotlib.

@jorisvandenbossche
Copy link
Contributor

For PyArrow, it will be the upcoming 16.0 release that will be the first numpy-2.0-compatible release, but this will only be expected in around 3 weeks at the earliest (but normally certainly before the end of the month).
For people that need a PyArrow installed in an environment with numpy 2.0, it's worth noting that there are nightly wheels available though that already work with 2.0.

@dkbarn
Copy link

dkbarn commented Apr 3, 2024

Could we add OpenCV to this list? I filed a ticket here to track progress on a numpy 2.0 build for it.

@rgommers
Copy link
Member Author

rgommers commented Apr 3, 2024

Thanks @ianthomas23, @jorisvandenbossche, @dkbarn - all info added to the table.

@hawkinsp
Copy link
Contributor

hawkinsp commented Apr 3, 2024

JAX released 0.4.26 on pypi, which is compatible with NumPy 2.0.

(NumPy folks: congratulations on your imminent v2 release!)

@ksunden
Copy link
Contributor

ksunden commented Apr 4, 2024

mpl 3.8.4 is out, built with np 2

@neutrinoceros
Copy link
Contributor

neutrinoceros commented Apr 6, 2024

yt 4.3.1 is on PyPI and built with numpy 2.0.0rc1 !

EDIT(seberg): Added to table.

@neutrinoceros
Copy link
Contributor

@rgommers
Copy link
Member Author

Thanks for the update @MichaelHudgins, that sounds great.

@jakirkham
Copy link
Contributor

Thanks Michael! 🙏

@jakirkham
Copy link
Contributor

jakirkham commented May 29, 2024

Could we please add these issues to the table?

Package name Compatible release on PyPI? Min compatible version Notes
fastparquet Y 2024.5.0 dask/fastparquet#922
LightGBM 4.4.0 (planned) microsoft/LightGBM#6454 & microsoft/LightGBM#6439
mlpack mlpack/mlpack#3723
pvlib Y 0.10.5 pvlib/pvlib-python#2026
Py-ART / arm-pyart Y 1.18.2 ARM-DOE/pyart#1550
QuTiP qutip/qutip#2421

@conradsnicta
Copy link

Please add CARMA to the table:

bbassett-tibco added a commit to spotfiresoftware/spotfire-python that referenced this issue May 30, 2024
Use the NumPy 2 support in Pandas as the template.  Update requirements to depend on NumPy 2 compatible versions (based on numpy/numpy#26191).
@rgommers
Copy link
Member Author

Thanks @jakirkham and @conradsnicta, all done.

@rgommers
Copy link
Member Author

@jakirkham I've sent you an invite with triage permissions - please feel free to make edits directly (and thanks again for all the help!).

@jameslamb
Copy link

Could this one for catboost be added? catboost/catboost#2671

That project does not have a compatible release, and based on comments there seems to be planning a < 2.0 pin for now.

@rgommers
Copy link
Member Author

Thanks @jameslamb, added.

@jakirkham
Copy link
Contributor

@jakirkham I've sent you an invite with triage permissions - please feel free to make edits directly (and thanks again for all the help!).

Thanks Ralf! 🙏

Accepted 😄

Interestingly I'm not able to edit the OP though

Screenshot 2024-05-30 at 11 03 29 AM

Guessing we would need edit privileges for that

Maybe we could move this into another repo or HackMD where we could liberally hand out permissions for editing? What do you think?

@jakirkham
Copy link
Contributor

jakirkham commented May 31, 2024

Could we please add these to the list as well?

Sorry would do myself, but wasn't able to (as noted above)

Package name Compatible release on PyPI? Min compatible version Notes
Adaptive Y 1.3.0 python-adaptive/adaptive#458
astropy-healpix Y 1.0.3 astropy/astropy-healpix#214
clawpack clawpack/clawpack#252
CPNest johnveitch/cpnest#92
Cython BLIS explosion/cython-blis#106
EigenPy N 3.5.0 (possibly more work still needed) stack-of-tasks/eigenpy#448
fitsio esheldon/fitsio#393
GNU Radio gnuradio/gnuradio#7378
ITK Y 5.4.0 InsightSoftwareConsortium/ITK#4700
pint hgrecco/pint#1974
PyKrige Y 1.7.2 GeoStat-Framework/PyKrige#290
RDKit rdkit/rdkit#7477
scikit-sparse scikit-sparse/scikit-sparse#120
scipp scipp/scipp#3427
spglib spglib/spglib#407
torchvision pytorch/vision#8460

@basnijholt
Copy link

I just released Adaptive v1.3.0 which makes it compatible with NumPy 2.0 🎉

@jakirkham
Copy link
Contributor

Congratulations 🥳 Thanks Bas! 🙏

Have updated the table in my comment above to reflect this. Please let me know if I've missed anything

@thewtex
Copy link
Contributor

thewtex commented May 31, 2024

Thanks for the work on this!

Can we please add:

ITK Y 5.4.0 InsightSoftwareConsortium/ITK#4700

?

@cgohlke
Copy link
Contributor

cgohlke commented Jun 2, 2024

Imagecodecs 2024.6.1 supports numpy 2.

@rgommers
Copy link
Member Author

rgommers commented Jun 2, 2024

Thanks everyone! I made all requested edits.

Maybe we could move this into another repo or HackMD where we could liberally hand out permissions for editing? What do you think?

I'd rather not move the authoritative version, so close to the finish line. Having an edit history with diffs is also useful. However, easily sync-able edits are useful, so here is an editable HackMD version: https://hackmd.io/B_zU26JfSI-703Xz85Ie_Q?view. Every user who is signed in to HackMD should be able to edit that.

@NicolasHug
Copy link
Contributor

Hi all, torchvision 0.19 will be fully compatible with numpy 2.0.
The current release (0.18) is 98% comptible with 2.0, there's only one torchvision transform (adjust_hue and its dependents) who would fail on 2.0 due to a uint8 overflow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests