Prune dependency upper bounds (#3586)

This PR removes as many upperbounds restrictions as possible from our
dependencies.

Why remove unnecessary upper bounds:
- Makes PyIceberg easier to install alongside applications that already
use newer compatible dependency versions.
- Reduces resolver conflicts and forced downgrades for downstream users,
while keeping caps where there is a real compatibility boundary or known
bad version.

We already removed upperbound for pyarrow in #2258
And theres a request to remove upperbound for cachetools in #3214

Closes #3214

Changes:
- Removes upper bounds that passed local validation, while keeping the
remaining compatibility caps.
- Refreshes `uv.lock` with upgraded packages.
- Updates tests for newer Moto and PyArrow behavior exposed by the
lockfile refresh.

Validation:
- `make test PYTHON=3.12` (`3736 passed, 1534 deselected`)
4 files changed
tree: 3ea54e33b16141bd48a488bbca988270f6878475
  1. .github/
  2. dev/
  3. mkdocs/
  4. notebooks/
  5. pyiceberg/
  6. tests/
  7. vendor/
  8. .asf.yaml
  9. .codespellrc
  10. .gitignore
  11. .markdownlint.yaml
  12. .pre-commit-config.yaml
  13. AGENTS.md
  14. LICENSE
  15. Makefile
  16. MANIFEST.in
  17. NOTICE
  18. pyproject.toml
  19. README.md
  20. ruff.toml
  21. SECURITY-THREAT-MODEL.md
  22. setup.py
  23. uv.lock
README.md

Iceberg Python

PyIceberg is a Python library for programmatic access to Iceberg table metadata as well as to table data in Iceberg format. It is a Python implementation of the Iceberg table spec.

The documentation is available at https://py.iceberg.apache.org/.

Get in Touch