Skip to content

Conversation

@gsmecher
Copy link
Contributor

This PR shifts the Python bindings from the Numpy 1.x to Numpy 2.x API. See the following for context:

https://numpy.org/doc/stable/numpy_2_0_migration_guide.html
https://numpy.org/doc/2.0/dev/depending_on_numpy.html

Numpy 2.x is now a better choice than 1.x for modules:

  • the ABI is backwards compatible (as far as 1.7), and
  • newer Python versions are not compatible with 1.x.

It makes sense to shift getdata in the same direction too. Along the way, I've refreshed the wheel build (to repair deprecated MacOS builders, to enable Python 3.13, and to deprecate 3.8.)

Comments welcome. While the build succeeds and regression tests pass, I have not used these code "in anger". I do plan to follow up this PR with a wheel builder for Windows, and think Numpy 2.x is a better basis for this work.

Because Numpy 2.x shared libraries are ABI compatible back to Numpy 1.x,
this requires a newer build environment to produce the Python bindings,
but the resulting library is backwards compatible. (This is ideal for a
wheel-based flow.)
@gsmecher
Copy link
Contributor Author

@ketiltrout and @arahlin, sorry to drop this on you before the holidays. This is a precursor to #21.

@arahlin
Copy link
Collaborator

arahlin commented Dec 17, 2025

I think the footprint of this PR is relatively small and otherwise simplifies python wheels and forward compatibility a great deal.

@arahlin arahlin merged commit a32659b into ketiltrout:master Dec 17, 2025
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants