feat: Add REST loadCredentials support (#3499)

## Summary

- add REST `loadCredentials` endpoint support
- parse `LoadCredentialsResponse`
- expose `RestCatalog.load_credentials(...)` with longest-prefix
resolution for a target location

Contributes to #3495.

## Notes

The pinned `apache/iceberg-rest-fixture:1.10.1` used by integration
tests does not serve the `/credentials` route, so this is covered with
REST catalog unit tests rather than fixture-backed integration tests.

## Testing

- `PYTHONPATH=. pytest tests/catalog/test_rest.py -k 'load_credentials
or storage_credentials'`
- `ruff check pyiceberg/catalog/rest/__init__.py
tests/catalog/test_rest.py`
- `ruff format --check pyiceberg/catalog/rest/__init__.py
tests/catalog/test_rest.py`
2 files changed
tree: 9e3b0016cc5af023d5629049892dbcf5483f5241
  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