feat: Add support for rest scan planning (#2864)

related to #2775 

# Rationale for this change

Adds **synchornous** client-side support for REST server side scan
planning, allowing for scanning if the rest catalog supports it.

This PR cherry-picks and builds on two WIP PRs:
  - Rest Models #2861  
  - Endpoints PR #2848 

Currently scanning is enable with rest-scan-planning-enabled=true in
catalog properties.

TODO: spec handling 

## Are these changes tested?

Integration tests added with manual testing

## Are there any user-facing changes?

yes
8 files changed
tree: 23589160e242db82734ecd0632912a34506ece61
  1. .github/
  2. dev/
  3. mkdocs/
  4. pyiceberg/
  5. tests/
  6. vendor/
  7. .asf.yaml
  8. .codespellrc
  9. .gitignore
  10. .markdownlint.yaml
  11. .pre-commit-config.yaml
  12. LICENSE
  13. Makefile
  14. MANIFEST.in
  15. NOTICE
  16. pyproject.toml
  17. README.md
  18. ruff.toml
  19. setup.py
  20. 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