Releases: developmentseed/obstore
Releases · developmentseed/obstore
pyo3-object_store-v0.2.0
What's Changed
- Bump to pyo3 0.24 by @kylebarron in #366
Full Changelog: pyo3-object_store-v0.1.0...pyo3-object_store-v0.2.0
pyo3-bytes-v0.2.0
What's Changed
- Bump to pyo3 0.24 by @kylebarron in #366
Full Changelog: pyo3-bytes-v0.1.3...pyo3-bytes-v0.2.0
py-v0.5.1
Bug fixes 🐛
- Fix import errors for Python 3.9 and 3.10. Update CI. by @kylebarron in #372
Full Changelog: py-v0.5.0...py-v0.5.1
py-v0.5.0
See also a blog post announcing this release.
New Features 🪄
- Class methods wrapper. Instead of calling
obstore.get(store), you can now callstore.get()directly. by @kylebarron in #331 - User-supplied credential callback by @kylebarron in #234
- Add Azure credential providers by @daviewales in #343
- Fsspec updates:
- [FEAT] Create obstore store in fsspec on demand by @machichima in #198
- [FEAT] support df.to_parquet and df.read_parquet() by @machichima in #165
- Document fsspec integration in user guide by @kylebarron in #299
- fsspec: Allow calling
registerwith no arguments by @kylebarron in #298
- Enable pickling Bytes by @kylebarron in #295
- Add AWS literal type hints by @kylebarron in #301
- pyo3-bytes slicing by @jessekrubin in #249
Breaking changes 🔧
Object store methods
No breaking changes.
Store constructors
- Removed
S3Store.from_sessionandS3Store._from_native. Use credential providers instead. - Reduce the config variations supported for input. I.e. we previously allowed
region,aws_region,REGIONorAWS_REGIONas a config parameter toS3Store, which could make it confusing. We now only support a single config input value for each underlying concept. #323
Fsspec
- Rename
AsyncFsspecStoretoFsspecStoreby @kylebarron in #297
Bug fixes 🐛
- Validate input for range request by @kylebarron in #255
Documentation 📖
- Update performance numbers by @kylebarron in #307
- Document type-only constructs by @kylebarron in #309, #311
- Add import warning admonition on ObjectStore type by @kylebarron in
- Update etag conditional put docs by @kylebarron in #310
New Contributors
- @weiji14 made their first contribution in #272
- @machichima made their first contribution in #198
Full Changelog: py-v0.4.0...py-v0.5.0
pyo3-object_store-v0.1.0
Initial release!
py-v0.4.0
See also a blog post announcing this release.
New Features 🪄
- Support for pickling & always manage store prefix by @kylebarron in #185, #239, #223
- Add top-level
obstore.store.from_urlfunction, which delegates to each store'sfrom_urlconstructor by @kylebarron in #179, #201 - Add option to return Arrow from
list_with_delimiterby @kylebarron in #238, #244 - (Provisional) Enhanced loading of s3 credentials using
aws-configcrate by @kylebarron in #203 - Access config values out from stores by @kylebarron in #210
- LocalStore updates:
- Enable automatic cleanup for local store, when deleting directories by @kylebarron in #175
- Optionally create root dir in LocalStore by @kylebarron in #177
- File-like object updates:
-
Add support for writable file-like objects by @kylebarron in #167
-
Updates to readable file API:
- Support user-specified capacity in readable file-like objects by @kylebarron in #174
- Expose
ObjectMetafrom readable file API by @kylebarron in #176
-
- Merge
configandkwargsand validate that no configuration parameters have been passed multiple times. (#180, #182, #218) - Add
__repr__toBytesclass by @jessekrubin in #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 #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. #189 obstore.exceptions.ObstoreErrorrenamed toobstore.exceptions.BaseError#200
Bug fixes 🐛
- Fix pylance finding exceptions module by @kylebarron in #183
- Allow passing in partial retry/backoff config by @kylebarron in #205
- Fix returning None from async functions by @kylebarron in #245
- Fix LocalStore range request past end of file, by @kylebarron in #230
Documentation 📖
- Update wording for fsspec docstring by @kylebarron in #195
- Add documentation about AWS region by @kylebarron in #213
- Add developer documentation for functional API choice by @kylebarron in #215
- Add
tqdmprogress bar example by @kylebarron in #237 - Add contributor, performance, integrations docs by @kylebarron in #227
- Add minio example by @kylebarron in #241
Other
- Use manylinux 2_24 for aarch64 linux wheels by @kylebarron in #225
New Contributors
- @vincentsarago made their first contribution in #168
- @jessekrubin made their first contribution in #173
Full Changelog: py-v0.3.0...py-v0.4.0
py-v0.3.0
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 #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 #144 - Readable file-like objects. Open a readable file-like object with
obstore.openandobstore.open_async. by @kylebarron in #33 - Fsspec integration by @martindurant in #63
- Prefix store by @kylebarron in #117
- Python 3.13 wheels by @kylebarron in #95
- Support python timedelta objects as duration config values by @kylebarron in #146
- Add class constructors for store builders. Each store now has an
__init__method, for easier construction. by @kylebarron in #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 #71
- Return
BytesfromGetResult.bytes()by @kylebarron in #134
Bug fixes 🐛
- boto3 region name can be None by @kylebarron in #59
- add missing py.typed file by @gruebel in #115
Documentation 📖
- FastAPI/Starlette example by @kylebarron in #145
- Add conda installation doc to README by @kylebarron in #78
- Document suggested lifecycle rules for aborted multipart uploads by @kylebarron in #139
- Add type hint and documentation for requester pays by @kylebarron in #131
- Add note that S3Store can be constructed without boto3 by @kylebarron in #108
- HTTP Store usage example by @kylebarron in #142
New Contributors
- @willemarcel made their first contribution in #64
- @martindurant made their first contribution in #63
- @norlandrhagen made their first contribution in #107
- @gruebel made their first contribution in #115
Full Changelog: py-v0.2.0...py-v0.3.0
py-v0.2.0
What's Changed
- Streaming list results.
listnow returns an async or sync generator. by @kylebarron in #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 #38 - Return buffer protocol object from
get_rangeandget_ranges. Enables zero-copy data exchange from Rust into Python. by @kylebarron in #39 - Add put options. Enables custom tags and attributes, as well as "put if not exists". by @kylebarron in #50
- Rename to obstore by @kylebarron in #45
- Add custom exceptions. by @kylebarron in #48
Full Changelog: py-v0.1.0...py-v0.2.0
py-v0.1.0
What's Changed
- Initial Release
Full Changelog: https://github.com/developmentseed/obstore/commits/py-v0.1.0