Skip to content

Conversation

@dcherian
Copy link
Collaborator

@dcherian dcherian commented Dec 9, 2025

Refactors the rasterization module to support multiple backends via an engine parameter using a Protocol-based design. Both rasterio and rusterize are now optional dependencies.

Changes:

  • Add Rasterizer Protocol in core.py defining the engine interface
  • Refactor core.py to use Protocol-based engine selection
  • Add rusterize, test-rusterize, test-all optional dependency groups
  • Add test-rusterize CI job in GitHub Actions
  • Parametrize tests over available engines

Engine selection (engine=None) auto-detects, preferring rusterize if available, falling back to rasterio. geometry_clip remains rasterio-specific.

🤖 Generated with Claude Code

Refactors the rasterization module to support multiple backends via an
`engine` parameter using a Protocol-based design. Both rasterio and
rusterize are now optional dependencies.

Changes:
- Add Rasterizer Protocol in core.py defining the engine interface
- Add RasterioRasterizer class implementing the Protocol
- Add RusterizeRasterizer class implementing the Protocol
- Refactor core.py to use Protocol-based engine selection
- Add rusterize, test-rusterize, test-all optional dependency groups
- Add test-rusterize CI job in GitHub Actions
- Parametrize tests over available engines

Engine selection (engine=None) auto-detects, preferring rusterize if
available, falling back to rasterio. geometry_clip remains
rasterio-specific.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
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