Skip to content

Commit b39cbcf

Browse files
authored
python(chore): v0.17.0 prep (#614)
1 parent 6699cb8 commit b39cbcf

3 files changed

Lines changed: 31 additions & 2 deletions

File tree

python/CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,35 @@ All notable changes to this project will be documented in this file.
33

44
This project adheres to [Semantic Versioning](http://semver.org/).
55

6+
## [v0.17.0] - June 3, 2026
7+
8+
### What's New
9+
10+
#### Update, Archive, and Unarchive Channels
11+
Channels can now be edited from the Python client. Use `client.channels.update(channel, ChannelUpdate(...))` to change a channel's `description`, `unit`, `metadata`, or archived state, or call `update()`, `archive()`, and `unarchive()` directly on a `Channel`. Units are read and written by name, and `Channel` now exposes `metadata` and `is_archived`.
12+
13+
```python
14+
channel = client.channels.update(channel, ChannelUpdate(unit="volts", metadata={"calibrated": True}))
15+
channel.archive()
16+
```
17+
18+
#### HDF5 Schema Detection
19+
Data import now detects HDF5 files under three layouts, selected through the `data_type` argument with the new `DataTypeKey.HDF5_ONE_D`, `DataTypeKey.HDF5_TWO_D`, and `DataTypeKey.HDF5_COMPOUND` keys. `detect_config` and `import_from_path` also accept a new `time_format` argument; when omitted, HDF5 imports use `TimeFormat.ABSOLUTE_UNIX_NANOSECONDS`. HDF5 support remains an optional extra (`pip install sift-stack-py[hdf5]`).
20+
21+
#### Configurable Request Timeouts
22+
gRPC and REST calls now accept a configurable default request timeout. Set `GrpcConfig(request_timeout=...)` for unary gRPC calls and `RestConfig(request_timeout=...)` for REST, both defaulting to 60 seconds. A per-call `timeout` overrides the default, `None` disables it, and long-running operations such as `wait_until_complete` and `wait_and_download` honor their own `timeout_secs`.
23+
24+
### Bugfixes
25+
- Bound synchronous API calls so they fail fast instead of hanging the calling thread indefinitely when a request stalls or the client has already been closed. ([#613](https://github.com/sift-stack/sift/pull/613))
26+
- Release the underlying gRPC channels on `close()` and `close_sync()` and make teardown idempotent, eliminating a shutdown warning, stall, and double-close hang at process exit. ([#595](https://github.com/sift-stack/sift/pull/595))
27+
28+
### Full Changelog
29+
- [Add update, archive, and unarchive to Channel](https://github.com/sift-stack/sift/pull/599)
30+
- [Add HDF5 schema detection](https://github.com/sift-stack/sift/pull/593)
31+
- [Add a default gRPC request deadline](https://github.com/sift-stack/sift/pull/609)
32+
- [Bound sync calls at the transport layer](https://github.com/sift-stack/sift/pull/613)
33+
- [Fix gRPC client lifecycle so channels are released promptly](https://github.com/sift-stack/sift/pull/595)
34+
635
## [v0.16.2] - May 21, 2026
736

837
### Bugfixes

python/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "sift_stack_py"
7-
version = "0.16.2"
7+
version = "0.17.0"
88
description = "Python client library for the Sift API"
99
requires-python = ">=3.8"
1010
readme = { file = "README.md", content-type = "text/markdown" }

python/uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)