Skip to content

fix(dependencies): 🐛 update numpy version constraint in pyproject.toml and uv.lock#131

Merged
SongshGeo merged 1 commit intomasterfrom
dev
Dec 12, 2025
Merged

fix(dependencies): 🐛 update numpy version constraint in pyproject.toml and uv.lock#131
SongshGeo merged 1 commit intomasterfrom
dev

Conversation

@SongshGeo
Copy link
Copy Markdown
Collaborator

@SongshGeo SongshGeo commented Dec 12, 2025

This commit updates the version constraint for the numpy package in both pyproject.toml and uv.lock files from <2 to >=1.26. This change ensures compatibility with newer versions of numpy, enhancing the stability and functionality of the project.

Summary by CodeRabbit

  • Chores
    • Updated numpy dependency constraint to support versions 1.26 and later.

✏️ Tip: You can customize this high-level summary in your review settings.

…l and uv.lock

This commit updates the version constraint for the `numpy` package in both `pyproject.toml` and `uv.lock` files from `<2` to `>=1.26`. This change ensures compatibility with newer versions of `numpy`, enhancing the stability and functionality of the project.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Dec 12, 2025

Walkthrough

The numpy version constraint in the project dependencies has been updated from <2 to >=1.26, expanding the allowed range to include newer versions while maintaining a minimum version requirement.

Changes

Cohort / File(s) Change Summary
Dependency update
pyproject.toml
Updated numpy version constraint from <2 to >=1.26

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

  • Single configuration line change with minimal impact

Poem

🐰 A hop and a bound, we've raised the floor,
numpy bounds now open the door!
From one-point-two-six, the stars align,
Version two awaits—the future is fine! ✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the main change: updating the numpy version constraint in project configuration files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch dev

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e3c44b1 and 157af45.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (1)
  • pyproject.toml (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (10)
  • GitHub Check: Tests 3.11 on macos-latest
  • GitHub Check: Tests 3.11 on windows-latest
  • GitHub Check: Tests 3.12 on ubuntu-latest
  • GitHub Check: Tests 3.12 on windows-latest
  • GitHub Check: Tests 3.11 on ubuntu-latest
  • GitHub Check: Tests 3.13 on windows-latest
  • GitHub Check: Tests 3.13 on macos-latest
  • GitHub Check: Tests 3.13 on ubuntu-latest
  • GitHub Check: Tests 3.12 on macos-latest
  • GitHub Check: nbmake

Comment thread pyproject.toml
Comment on lines +41 to 44
"numpy>=1.26",
"urllib3",
"icons",
]
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

geopandas NumPy 2.x compatibility support latest release

💡 Result:

Yes — current GeoPandas releases support NumPy 2.x. GeoPandas 1.2 (latest series) sets numpy 2.0 as the minimum tested/required NumPy version; earlier maintenance releases also added/updated compatibility notes for the upcoming NumPy 2.0 transition. [1][2]

Sources:

  • GeoPandas changelog / release notes (notes saying GeoPandas 1.2 requires numpy 2.0). [1]
  • GeoPandas GitHub releases (compatibility notes for NumPy 2.0 in recent releases). [2]

🌐 Web query:

fiona NumPy 2.x compatibility support latest release

💡 Result:

Short answer: Fiona itself began adapting for NumPy 2.x in the 1.10 pre‑releases (1.10a1) and related fixes; downstream projects (e.g., GeoPandas) also made explicit compatibility fixes for NumPy 2.0 when updating to work with Fiona 1.10. See Fiona 1.10a1 / PyPI notes and the GeoPandas changelog mention. [1][2][3]

Sources

  • Fiona 1.10a1 / PyPI release notes (notes about removing a direct NumPy dependency and other 1.10 changes). [1]
  • Fiona GitHub releases (history including 1.9.6 and 1.10 pre‑release notes). [2]
  • GeoPandas / community notes referencing fixes for compatibility with NumPy 2.0 and Fiona 1.10. (Stack Overflow summary pointing to GeoPandas changelog). [3]

If you want, I can: (a) check the very latest Fiona release tag/wheels (Dec 2025) and confirm explicit NumPy 2.x support, or (b) give exact pip/conda install pins that are known to work with NumPy 2.x in your environment.


🌐 Web query:

rioxarray NumPy 2.x compatibility support latest release

💡 Result:

Yes — rioxarray added NumPy 2.x support in the 0.20.0 release. See the rioxarray history/changelog entry noting "DEP: numpy 2+" for 0.20.0. [1][2]

Sources:

  • rioxarray History (0.20.0 changelog). [1]
  • rioxarray 0.20.0 release record. [2]

🌐 Web query:

xarray NumPy 2.x compatibility support latest release

💡 Result:

Yes — xarray added NumPy 2.x compatibility in 2024 (compatibility listed in the 2024.03.0 / 2024.06.0 release notes). [1][2]

References:

  • xarray “What’s New” (mentions compatibility with NumPy 2). [1]
  • xarray GitHub issue/PR addressing NumPy 2 Unicode/API changes. [2]

🌐 Web query:

netcdf4 NumPy 2.x compatibility support latest release

💡 Result:

Short answer: As of the latest netcdf4‑python release (v1.7.3, published Oct 13, 2025) there is not an explicit statement in the netcdf4 changelog that netcdf4 wheels are built for NumPy 2.x; users still report binary‑compatibility warnings when netcdf4 was built against a different NumPy ABI. The related cftime package does list NumPy 2.0 compatibility (added June 2024), but netcdf4 may require rebuilt wheels (or a release explicitly built against NumPy 2) to be fully NumPy‑2‑compatible. See sources below.

Sources:

  • netcdf4‑python repository / release notes (v1.7.3, Oct 13, 2025). [1]
  • Zenodo release record for netcdf4‑python v1.7.3 (Oct 13, 2025). [2]
  • GitHub issue reporting NumPy binary incompatibility warning for netcdf4-python. [3]
  • cftime (time handling used by netcdf4) PyPI changelog noting NumPy 2.0 compatibility (June 7, 2024). [4]

References
[1] https://github.com/Unidata/netcdf4-python
[2] https://zenodo.org/records/17343529
[3] Unidata/netcdf4-python#1354
[4] https://pypi.org/project/cftime/


NumPy 2.x compatibility blocked by netcdf4-python; add upper bound or verify wheels.

Switching from "numpy<2" to "numpy>=1.26" (Line 41) allows NumPy 2.x. Most dependencies in this project's geo/science stack—geopandas (1.2+), fiona (1.10+), rioxarray (0.20+), and xarray (2024.03+)—explicitly support NumPy 2.x. However, netcdf4-python (latest v1.7.3, Oct 2025) has no published wheels built against NumPy 2.x and users report binary-compatibility warnings. Either (a) constrain to "numpy>=1.26,<2" until netcdf4 releases NumPy 2-compatible wheels, or (b) document and test that pre-built netcdf4 wheels work acceptably in your CI matrix against NumPy 2.x.

🤖 Prompt for AI Agents
In pyproject.toml around lines 41 to 44, the change from "numpy<2" to
"numpy>=1.26" allows NumPy 2.x which can break binary compatibility with
netcdf4-python; either pin numpy to "numpy>=1.26,<2" to avoid NumPy 2 until
netcdf4 publishes compatible wheels, or keep the relaxed spec but add CI matrix
jobs that test the project with NumPy 2 and verify netcdf4 wheels behave (and
add a note in docs/compatibility describing the potential netcdf4
binary-compatibility issue and the mitigation).

@SongshGeo SongshGeo merged commit 132c50c into master Dec 12, 2025
22 of 24 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.

1 participant