-
Notifications
You must be signed in to change notification settings - Fork 21
[ISSUE-137] Python bindings row-based append API #142
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@luoyuxia PTAL, when comfortable 🙏 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds a row-based append API to Python bindings, enabling single-row inserts with support for dict, list, and tuple input formats. This provides a more ergonomic alternative to batch operations for streaming use cases and real-time ingestion.
Changes:
- Added
append()method toAppendWriterclass supporting dict, list, and tuple input formats - Implemented type conversion logic from Python values to Fluss
Datumtypes with strict validation - Added Python patterns to
.gitignoreto exclude build artifacts
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| bindings/python/src/table.rs | Adds append() method, row input conversion logic, and Python-to-Datum type mapping with validation |
| bindings/python/fluss/init.pyi | Adds type stubs and comprehensive documentation for the new append() method |
| bindings/python/example/example.py | Demonstrates usage of new append() API with dict and list inputs |
| .gitignore | Adds Python-specific ignore patterns for build artifacts |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
luoyuxia
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@fresh-borzoni Hi, thanks for the pr. Just left two question
|
@luoyuxia Thanks for the review! Addressed comments. |
luoyuxia
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@fresh-borzoni Thanks for the pr. LGTM!
Purpose
Linked issue: close #137
Adds a Python
append()method to enable single-row inserts with support for dict, list, and tuple input formats, providing a more ergonomic API for appending individual rows compared to batch operations.Brief change log
append()method to PythonTableclass with support for dict, list, and tuple inputRowInputenum withFromPyObjectderive for automatic type dispatchpython_to_generic_row()function to convert Python values toGenericRowwith strict validationpython_value_to_datum()function with type-specific conversions, optimized bytes extraction, and field-level error messages.gitignoreto exclude__pycache__/and*.sofilesAPI and Format
API Changes: Yes
Table.append(row)acceptingdict | list | tupleStorage Format: No changes
Documentation
New Feature: Yes
__init__.pyiexample/example.py