Changelog¶
[0.6.0] - 2025-03-24¶
New Features
¶
- Planetary computer credential provider by @kylebarron in developmentseed/obstore!379
Breaking changes
¶
Object store methods¶
No breaking changes.
Store constructors¶
- In the
AzureStore
constructor, thecontainer
positional argument was renamed tocontainer_name
to match thecontainer_name
key inAzureConfig
. by @kylebarron in developmentseed/obstore!380
This is a breaking change if you had been calling AzureStore(container="my container name")
.
This is not breaking if you had been using it as a positional argument AzureStore("my container name")
or if you had already been using AzureStore(container_name="my container name")
.
The idea here is that we want one and only one argument name for each underlying config parameter. Most of these breaking changes took place in 0.5.0, but this was overlooked.
Bug fixes
¶
- Fix import errors on Python 3.9:
- Fix azure auth import on Python 3.9 by @kylebarron in developmentseed/obstore!378
- Fix
_buffered.pyi
for python 3.9 by @kylebarron in developmentseed/obstore!381 - Define
__all__
to fix type checking import paths developmentseed/obstore!389
Documentation
¶
- Fix chunk_size typo by @kylebarron in developmentseed/obstore!377
- Docs: Make integrations dropdown by @kylebarron in developmentseed/obstore!382
- Docs: Use source order in credential provider docs by @kylebarron in developmentseed/obstore!383
Other¶
- Add typing extensions as runtime dependency by @kylebarron in developmentseed/obstore!384
Full Changelog: github.com/developmentseed/obstore/compare/py-v0.5.1...py-v0.6.0
[0.5.1] - 2025-03-17¶
Bug fixes
¶
- Fix import errors for Python 3.9 and 3.10. Update CI. by @kylebarron in developmentseed/obstore!372
Full Changelog: github.com/developmentseed/obstore/compare/py-v0.5.0...py-v0.5.1
[0.5.0] - 2025-03-17¶
New Features
¶
- Class methods wrapper. Instead of calling
obstore.get(store)
, you can now callstore.get()
directly. by @kylebarron in developmentseed/obstore!331 - User-supplied credential callback by @kylebarron in developmentseed/obstore!234
- Add Azure credential providers by @daviewales in developmentseed/obstore!343
- Fsspec updates:
- [FEAT] Create obstore store in fsspec on demand by @machichima in developmentseed/obstore!198
- [FEAT] support df.to_parquet and df.read_parquet() by @machichima in developmentseed/obstore!165
- Document fsspec integration in user guide by @kylebarron in developmentseed/obstore!299
- fsspec: Allow calling
register
with no arguments by @kylebarron in developmentseed/obstore!298 - Enable pickling Bytes by @kylebarron in developmentseed/obstore!295
- Add AWS literal type hints by @kylebarron in developmentseed/obstore!301
- pyo3-bytes slicing by @jessekrubin in developmentseed/obstore!249
Breaking changes
¶
Object store methods¶
No breaking changes.
Store constructors¶
- Removed
S3Store.from_session
andS3Store._from_native
. Use credential providers instead. - Reduce the config variations supported for input. I.e. we previously allowed
region
,aws_region
,REGION
orAWS_REGION
as a config parameter toS3Store
, which could make it confusing. We now only support a single config input value for each underlying concept. developmentseed/obstore!323
Fsspec¶
- Rename
AsyncFsspecStore
toFsspecStore
by @kylebarron in developmentseed/obstore!297
Bug fixes
¶
- Validate input for range request by @kylebarron in developmentseed/obstore!255
Documentation
¶
- Update performance numbers by @kylebarron in developmentseed/obstore!307
- Document type-only constructs by @kylebarron in developmentseed/obstore!309, developmentseed/obstore!311
- Add import warning admonition on ObjectStore type by @kylebarron in
- Update etag conditional put docs by @kylebarron in developmentseed/obstore!310
New Contributors¶
- @weiji14 made their first contribution in developmentseed/obstore!272
- @machichima made their first contribution in developmentseed/obstore!198
Full Changelog: github.com/developmentseed/obstore/compare/py-v0.4.0...py-v0.5.0
[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_url
function, which delegates to each store'sfrom_url
constructor by @kylebarron in developmentseed/obstore!179, developmentseed/obstore!201 - Add option to return Arrow from
list_with_delimiter
by @kylebarron in developmentseed/obstore!238, developmentseed/obstore!244 - (Provisional) Enhanced loading of s3 credentials using
aws-config
crate 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
ObjectMeta
from readable file API by @kylebarron in developmentseed/obstore!176
-
Merge
config
andkwargs
and validate that no configuration parameters have been passed multiple times. (developmentseed/obstore!180, developmentseed/obstore!182, developmentseed/obstore!218) - Add
__repr__
toBytes
class by @jessekrubin in developmentseed/obstore!173
Breaking changes
¶
get_range
,get_range_async
,get_ranges
, andget_ranges_async
now require named parameters forstart
,end
, andlength
to 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
PrefixStore
was used to enable this. As of 0.4.0,PrefixStore
was removed and all stores manage an optional mount prefix natively. obstore.open
has been renamed toobstore.open_reader
.- The
from_env
constructor has been removed fromS3Store
,GCSStore
, andAzureStore
. Now all constructors will read from environment variables. Use__init__
orfrom_url
instead. developmentseed/obstore!189 obstore.exceptions.ObstoreError
renamed toobstore.exceptions.BaseError
developmentseed/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
tqdm
progress 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.put
now supports iterable input, andobstore.put_async
now supports async iterable input. This means you can pass the output ofobstore.get_async
directly 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
dict
into theconfig
parameter. 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.open
andobstore.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_async
now use start/end instead of offset/length. This is for consistency with therange
option ofobstore.get
. by @kylebarron in developmentseed/obstore!71 -
Return
Bytes
fromGetResult.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.
list
now returns an async or sync generator. by @kylebarron in developmentseed/obstore!35 - Optionally return list result as arrow. The
return_arrow
keyword argument returns chunks fromlist
as Arrow RecordBatches, which is faster than materializing Python dicts/lists. by @kylebarron in developmentseed/obstore!38 - Return buffer protocol object from
get_range
andget_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.