v0.18.0
pathwaycom/pathwayv0.18.0Feb 7, 2025by github-actions[bot]
AI Summary
Added JSON serialization support for all Pathway types, fixed PostgreSQL serialization, and updated Pointer type handling.
Key Highlights
- All Pathway types can now be serialized into JSON.
- PostgreSQL connectors now handle PyObjectWrapper and Timedelta properly.
- Pointer type serialized as string in Iceberg and Delta Lake.
Breaking Changes
- Changed interface of UnstructuredParser.
- Pointer type serialized as string in Iceberg and Delta Lake.
- Bytes type serialized with base64 in JSON.
- Array type serialized as object in JSON.
- Removed undocumented `license_key` argument from pw.run.
New Features
- JSON serialization support.
- PostgreSQL serialization fixes.
Full Release Notes
### Added - `pw.io.postgres.write` and `pw.io.postgres.write_snapshot` now handle serialization of `PyObjectWrapper` and `Timedelta` properly. - New chunking options in `pathway.xpacks.llm.parsers.UnstructuredParser` - Now all Pathway types can be serialized into JSON and consistently deserialized back. - `table.col.dt.to_duration` converting an integer into a `pw.Duration`. - `pw.Json` now supports storing datetime and duration type values in ISO format. ### Changed - **BREAKING**: Changed the interface of `UnstructuredParser` - **BREAKING**: The `Pointer` type is now serialized and deserialized as a string field in Iceberg and Delta Lake. - **BREAKING**: The `Bytes` type is now serialized and deserialized with base64 encoding and decoding when the JSON format is used. A string field is used to store the encoded contents. - **BREAKING**: The `Array` type is now serialized and deserialized as an object with two fields: `shape` denoting the shape of the stored multi-dimensional array and `elements` denoting the elements of the flattened array. - **BREAKING**: Marked package as **py.typed** to indicate support for type hints. ### Removed - **BREAKING**: Removed undocumented `license_key` argument from `pw.run` and `pw.run_all` methods. Instead, `pw.set_license_key` should be used.