Skip to content

Split Water Data adapters by collection family - #351

Draft
thodson-usgs wants to merge 3 commits into
DOI-USGS:mainfrom
thodson-usgs:refactor/phase-3-adapter-structure
Draft

Split Water Data adapters by collection family#351
thodson-usgs wants to merge 3 commits into
DOI-USGS:mainfrom
thodson-usgs:refactor/phase-3-adapter-structure

Conversation

@thodson-usgs

Copy link
Copy Markdown
Collaborator

Dependency

This PR is stacked on and must merge after #350. Its branch starts at #350 head 966bb618; while #350 remains open, this PR intentionally includes those commits in its comparison with main.

Summary

  • split the Water Data implementation into time-series, metadata, measurements, reference, samples, and CQL collection-family modules
  • retain dataretrieval.waterdata.api as a logic-free compatibility facade with unchanged public imports, signatures, function identity, metadata, warnings, exceptions, and deprecations
  • separate OGC ambient context and schema/queryables execution from HTTP request construction
  • declare explicit exports for active service and focused Water Data modules
  • add public-contract snapshots and architecture fitness functions for facade purity, family isolation, adapter direction, and OGC boundaries
  • document the adapter facade decision and intentional service-specific return contracts

Compatibility

The contract tests freeze all 19 Water Data facade exports and exact signatures. They also verify package/facade object identity, legacy __module__, Samples private compatibility names, and the facade get_ogc_data patch target.

Validation

  • ruff check and ruff format
  • strict mypy: 50 source files clean
  • coverage run -m pytest tests/: 663 passed, 97% coverage
  • make html: succeeded (4 pre-existing warnings)
  • isolated wheel build/install: all six family modules, ogc.context, and ogc.schema importable outside the checkout; facade identity and module metadata preserved
  • pre-commit: all hooks passed

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