Skip to content

fix(#695): add backend-neutral URI resolution - #697

Merged
cofin merged 1 commit into
mainfrom
fix/storage-consistency
Aug 10, 2026
Merged

fix(#695): add backend-neutral URI resolution#697
cofin merged 1 commit into
mainfrom
fix/storage-consistency

Conversation

@cofin

@cofin cofin commented Aug 10, 2026

Copy link
Copy Markdown
Member

Summary

Object-store backends exposed backend-native paths but no portable way to format the final local path or remote URI. This made consumers manually join backend attributes, which duplicated URI prefixes with obstore.

  • add resolve_uri() to the public object-store contract and built-in backends
  • preserve existing backend path and registry behavior while returning equivalent fsspec and obstore addresses
  • document unsigned URI resolution and the custom-backend compatibility requirement

Closes #695.

@cofin
cofin marked this pull request as ready for review August 10, 2026 22:42
@codecov-commenter

codecov-commenter commented Aug 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.40%. Comparing base (ea00178) to head (c6baab6).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #697   +/-   ##
=======================================
  Coverage   77.40%   77.40%           
=======================================
  Files         486      486           
  Lines       68287    68307   +20     
  Branches     9406     9410    +4     
=======================================
+ Hits        52856    52876   +20     
- Misses      12020    12023    +3     
+ Partials     3411     3408    -3     
Flag Coverage Δ
integration 60.85% <55.00%> (+<0.01%) ⬆️
py3.10 75.72% <100.00%> (+0.01%) ⬆️
py3.11 75.73% <100.00%> (+<0.01%) ⬆️
py3.12 75.73% <100.00%> (+11.00%) ⬆️
py3.13 75.73% <100.00%> (+0.01%) ⬆️
py3.14 76.61% <100.00%> (+<0.01%) ⬆️
unit 65.05% <100.00%> (+0.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
sqlspec/protocols.py 100.00% <ø> (ø)
sqlspec/storage/backends/base.py 88.65% <ø> (ø)
sqlspec/storage/backends/fsspec.py 92.30% <100.00%> (+1.66%) ⬆️
sqlspec/storage/backends/local.py 81.68% <100.00%> (+0.18%) ⬆️
sqlspec/storage/backends/obstore.py 83.65% <100.00%> (+0.52%) ⬆️

... and 2 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@cofin
cofin merged commit 851db3b into main Aug 10, 2026
24 checks passed
@cofin
cofin deleted the fix/storage-consistency branch August 10, 2026 23:06
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.

Storage backends disagree on base_path semantics and expose no public key→URI resolution

2 participants