Skip to content

python(fix): support bytes channel values, bump bindings to 0.5.1, v0.21.0 release prep - #784

Open
solidiquis wants to merge 2 commits into
mainfrom
python/bytes-channel-support-py
Open

python(fix): support bytes channel values, bump bindings to 0.5.1, v0.21.0 release prep#784
solidiquis wants to merge 2 commits into
mainfrom
python/bytes-channel-support-py

Conversation

@solidiquis

@solidiquis solidiquis commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Summary

Fixes ingesting ChannelDataType.BYTES channels from the Python library, bumps sift-stream-bindings to 0.5.1 (the Rust side of the change, #782), and preps the v0.21.0 release.

Reported by a customer on sift-stack-py v0.20.0: ValueError: Unknown data type: bytes when registering a flow with a bytes channel.

Why

#761 fixed flow registration but is unreleased. The next failure a user hits is sending a value on a bytes channel: ValueError: Invalid data type: bytes from ChannelValue._to_rust_form. That path needed ValuePy.Bytes, which did not exist in the bindings until 0.5.1.

Changes

  • sift_client/sift_types/ingestion.py: handle BYTES in ChannelValue._to_rust_form, accepting bytes, bytearray, memoryview, or an iterable of ints. Also add the missing BYTES and STRING branches to _to_rust_value.
  • pyproject.toml and uv.lock: sift-stream-bindings==0.5.0==0.5.1 in every extra. The generated all extra was regenerated with generate_extras.py and matches.
  • Tests: TestChannelValue covers both converters across every ChannelDataType, including the bytes-like input types and the None path.
  • Release prep: version 0.20.00.21.0 in pyproject.toml and uv.lock. CHANGELOG.md turns the Unreleased section into v0.21.0 - September 4, 2026, which also carries the unreleased data import listing, enum import, and get_data nanosecond warning changes.

Verification

Against the published 0.5.1 wheel: ruff, mypy lib, and the ingestion tests pass. The full non-integration suite passes except sift_py/data_import/_csv_test.py::test_simple_upload_invalid_csv, which also fails on a clean checkout of main.

After merge

Tag python/v0.21.0 on the merge commit and dispatch python_release.yaml from that tag.

🤖 Generated with Claude Code

…to 0.5.1

Handle ChannelDataType.BYTES in ChannelValue._to_rust_form and _to_rust_value.
Requires sift-stream-bindings 0.5.1 for ValuePy.Bytes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Python docs preview: https://sift-stack.github.io/sift/python/pr-784/

Deployed from 4c84838. The link may take up to a minute to become live as GitHub Pages propagates.

@solidiquis
solidiquis requested a review from marc-sift September 4, 2026 21:48
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@solidiquis solidiquis changed the title python(fix): support bytes channel values, bump sift-stream-bindings to 0.5.1 python(fix): support bytes channel values, bump bindings to 0.5.1, v0.21.0 release prep Sep 4, 2026
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.

2 participants