Changelog¶
[0.5.0] - unreleased¶
Breaking changes
¶
- Removed
S3Store.from_sessionandS3Store._from_native. Use credential providers instead.
[0.4.0] - 2025-02-10¶
New Features
¶
- Support for pickling & always manage store prefix by @kylebarron in developmentseed/obstore!185, developmentseed/obstore!239, developmentseed/obstore!223
- Add top-level
obstore.store.from_urlfunction, which delegates to each store'sfrom_urlconstructor by @kylebarron in developmentseed/obstore!179, developmentseed/obstore!201 - Add option to return Arrow from
list_with_delimiterby @kylebarron in developmentseed/obstore!238, developmentseed/obstore!244 - (Provisional) Enhanced loading of s3 credentials using
aws-configcrate by @kylebarron in developmentseed/obstore!203 - Access config values out from stores by @kylebarron in developmentseed/obstore!210
- LocalStore updates:
- Enable automatic cleanup for local store, when deleting directories by @kylebarron in developmentseed/obstore!175
- Optionally create root dir in LocalStore by @kylebarron in developmentseed/obstore!177
- File-like object updates:
- Add support for writable file-like objects by @kylebarron in developmentseed/obstore!167
-
Updates to readable file API:
- Support user-specified capacity in readable file-like objects by @kylebarron in developmentseed/obstore!174
- Expose
ObjectMetafrom readable file API by @kylebarron in developmentseed/obstore!176 - Merge
configandkwargsand validate that no configuration parameters have been passed multiple times. (developmentseed/obstore!180, developmentseed/obstore!182, developmentseed/obstore!218) - Add
__repr__toBytesclass by @jessekrubin in developmentseed/obstore!173
Breaking changes
¶
get_range,get_range_async,get_ranges, andget_ranges_asyncnow require named parameters forstart,end, andlengthto make the semantics of the range request fully explicit. by @kylebarron in developmentseed/obstore!156- Previously, individual stores did not manage a prefix path within the remote resource and
PrefixStorewas used to enable this. As of 0.4.0,PrefixStorewas removed and all stores manage an optional mount prefix natively. obstore.openhas been renamed toobstore.open_reader.- The
from_envconstructor has been removed fromS3Store,GCSStore, andAzureStore. Now all constructors will read from environment variables. Use__init__orfrom_urlinstead. developmentseed/obstore!189 obstore.exceptions.ObstoreErrorrenamed toobstore.exceptions.BaseErrordevelopmentseed/obstore!200
Bug fixes
¶
- Fix pylance finding exceptions module by @kylebarron in developmentseed/obstore!183
- Allow passing in partial retry/backoff config by @kylebarron in developmentseed/obstore!205
- Fix returning None from async functions by @kylebarron in developmentseed/obstore!245
- Fix LocalStore range request past end of file, by @kylebarron in developmentseed/obstore!230
Documentation
¶
- Update wording for fsspec docstring by @kylebarron in developmentseed/obstore!195
- Add documentation about AWS region by @kylebarron in developmentseed/obstore!213
- Add developer documentation for functional API choice by @kylebarron in developmentseed/obstore!215
- Add
tqdmprogress bar example by @kylebarron in developmentseed/obstore!237 - Add contributor, performance, integrations docs by @kylebarron in developmentseed/obstore!227
- Add minio example by @kylebarron in developmentseed/obstore!241
Other¶
- Use manylinux 2_24 for aarch64 linux wheels by @kylebarron in developmentseed/obstore!225
New Contributors¶
- @vincentsarago made their first contribution in developmentseed/obstore!168
- @jessekrubin made their first contribution in developmentseed/obstore!173
Full Changelog: github.com/developmentseed/obstore/compare/py-v0.3.0...py-v0.4.0
[0.3.0] - 2025-01-16¶
New Features
¶
- Streaming uploads.
obstore.putnow supports iterable input, andobstore.put_asyncnow supports async iterable input. This means you can pass the output ofobstore.get_asyncdirectly intoobstore.put_async. by @kylebarron in developmentseed/obstore!54 - Allow passing config options directly as keyword arguments. Previously, you had to pass all options as a
dictinto theconfigparameter. Now you can pass the elements directly to the store constructor. by @kylebarron in developmentseed/obstore!144 - Readable file-like objects. Open a readable file-like object with
obstore.openandobstore.open_async. by @kylebarron in developmentseed/obstore!33 - Fsspec integration by @martindurant in developmentseed/obstore!63
- Prefix store by @kylebarron in developmentseed/obstore!117
- Python 3.13 wheels by @kylebarron in developmentseed/obstore!95
- Support python timedelta objects as duration config values by @kylebarron in developmentseed/obstore!146
- Add class constructors for store builders. Each store now has an
__init__method, for easier construction. by @kylebarron in developmentseed/obstore!141
Breaking changes
¶
-
get_range,get_range_async,get_ranges, andget_ranges_asyncnow use start/end instead of offset/length. This is for consistency with therangeoption ofobstore.get. by @kylebarron in developmentseed/obstore!71 -
Return
BytesfromGetResult.bytes()by @kylebarron in developmentseed/obstore!134
Bug fixes
¶
- boto3 region name can be None by @kylebarron in developmentseed/obstore!59
- add missing py.typed file by @gruebel in developmentseed/obstore!115
Documentation
¶
- FastAPI/Starlette example by @kylebarron in developmentseed/obstore!145
- Add conda installation doc to README by @kylebarron in developmentseed/obstore!78
- Document suggested lifecycle rules for aborted multipart uploads by @kylebarron in developmentseed/obstore!139
- Add type hint and documentation for requester pays by @kylebarron in developmentseed/obstore!131
- Add note that S3Store can be constructed without boto3 by @kylebarron in developmentseed/obstore!108
- HTTP Store usage example by @kylebarron in developmentseed/obstore!142
What's Changed¶
- Improved docs for from_url by @kylebarron in developmentseed/obstore!138
- Implement read_all for async iterable by @kylebarron in developmentseed/obstore!140
New Contributors¶
- @willemarcel made their first contribution in developmentseed/obstore!64
- @martindurant made their first contribution in developmentseed/obstore!63
- @norlandrhagen made their first contribution in developmentseed/obstore!107
- @gruebel made their first contribution in developmentseed/obstore!115
Full Changelog: github.com/developmentseed/obstore/compare/py-v0.2.0...py-v0.3.0
[0.2.0] - 2024-10-25¶
What's Changed¶
- Streaming list results.
listnow returns an async or sync generator. by @kylebarron in developmentseed/obstore!35 - Optionally return list result as arrow. The
return_arrowkeyword argument returns chunks fromlistas Arrow RecordBatches, which is faster than materializing Python dicts/lists. by @kylebarron in developmentseed/obstore!38 - Return buffer protocol object from
get_rangeandget_ranges. Enables zero-copy data exchange from Rust into Python. by @kylebarron in developmentseed/obstore!39 - Add put options. Enables custom tags and attributes, as well as "put if not exists". by @kylebarron in developmentseed/obstore!50
- Rename to obstore by @kylebarron in developmentseed/obstore!45
- Add custom exceptions. by @kylebarron in developmentseed/obstore!48
Full Changelog: github.com/developmentseed/obstore/compare/py-v0.1.0...py-v0.2.0
[0.1.0] - 2024-10-21¶
- Initial release.