Skip to content

feat: add strict Pydantic spatial boundary models - #80

Open
Claudio9701 wants to merge 1 commit into
governance/agent-trunk-foundationfrom
typing/pydantic-boundaries
Open

feat: add strict Pydantic spatial boundary models#80
Claudio9701 wants to merge 1 commit into
governance/agent-trunk-foundationfrom
typing/pydantic-boundaries

Conversation

@Claudio9701

Copy link
Copy Markdown
Collaborator

Summary

  • add immutable, strict, range-checked Coordinate and ordered BoundingBox public models
  • make longitude/latitude and west/south/east/north tuple order explicit
  • reject unsupported antimeridian-crossing boxes rather than guessing
  • add provider-neutral TravelProfile values for the Geofabrik/OSRM consumers
  • add sanitized BoundaryValidationError translation that never echoes rejected payload values
  • apply strict mypy to the new boundary modules and enforce it in CI

GeoDataFrames, pandas/NumPy arrays, Shapely geometries, and graph objects remain native; this PR adds no per-row Pydantic validation.

Validation

  • 27 hermetic tests pass, including property-based range/order cases
  • new model module has 91% line coverage; error translation is fully covered
  • strict mypy passes for urbanpy.errors and urbanpy.models
  • Ruff and full locked Trunk suite pass
  • wheel/sdist metadata and contents pass; models are present in the wheel

Stack

Base: #78 (governance/agent-trunk-foundation)
Next: canonical Geofabrik catalog resolver
Roadmap: #61

Closes #79
Refs #69

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