Home / v0.20.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2024-05-22 7.8 kB
v0.20.0 source code.tar.gz 2024-05-22 1.2 MB
v0.20.0 source code.zip 2024-05-22 1.4 MB
Totals: 3 Items   2.6 MB 0

Overview

  • Adds a dataflow structure visualizer. Run python -m bytewax.visualize.

  • Breaking change The internal format of recovery databases has been changed from using JsonPickle to Python's built-in {py:obj}pickle. Recovery stores that used the old format will not be usable after upgrading.

  • Breaking change The unary operator and UnaryLogic have been renamed to stateful and StatefulLogic respectively.

  • Adds a stateful_batch operator to allow for lower-level batch control while managing state.

  • StatefulLogic.on_notify, StatefulLogic.on_eof, and StatefulLogic.notify_at are now optional overrides. The defaults retain the state and emit nothing.

  • Breaking change Windowing operators have been moved from bytewax.operators.window into bytewax.operators.windowing.

  • Breaking change ClockConfigs have had Config dropped from their name and are just Clocks. E.g. If you previously from bytewax.operators.window import SystemClockConfig now from bytewax.operators.windowing import SystemClock.

  • Breaking change WindowConfigs have been renamed to Windowers. E.g. If you previously from bytewax.operators.window import SessionWindow now from bytewax.operators.windowing import SessionWindower.

  • Breaking change All windowing operators now return a set of streams {py:obj}~bytewax.operators.windowing.WindowOut. {py:obj}~bytewax.operators.windowing.WindowMetadata now is branched into its own stream and is no longer part of the single downstream. All window operator emitted items are labeled with the unique window ID they came from to facilitate joining the data later.

  • Breaking change {py:obj}~bytewax.operators.windowing.fold_window now requires a merge argument. This handles whenever the session windower determines that two windows must be merged because a new item bridged a gap.

  • Breaking change The join_named and join_window_named operators have been removed because they did not support returning proper type information. Use {py:obj}~bytewax.operators.join or {py:obj}~bytewax.operators.windowing.join_window instead, which have been enhanced to properly type their downstream values.

  • Breaking change {py:obj}~bytewax.operators.join and {py:obj}~bytewax.operators.windowing.join_window have had their product argument replaced with mode. You now can specify more nuanced kinds of join modes.

  • Python interfaces are now provided for custom clocks and windowers. Subclass {py:obj}~bytewax.operators.windowing.Clock (and a corresponding {py:obj}~bytewax.operators.windowing.ClockLogic) or {py:obj}~bytewax.operators.windowing.Windower (and a corresponding {py:obj}~bytewax.operators.windowing.WindowerLogic) to define your own senses of time and window definitions.

  • Adds a {py:obj}~bytewax.operators.windowing.window operator to allow you to write more flexible custom windowing operators.

  • Session windows now work correctly with out-of-order data and joins.

  • All windowing operators now process items in timestamp order. The most visible change that this results in is that the {py:obj}~bytewax.operators.windowing.collect_window operator now emits collections with values in timestamp order.

  • Adds a {py:obj}~bytewax.operators.filter_map_value operator.

  • Adds a {py:obj}~bytewax.operators.enrich_cached operator for easier joining with an external data source.

  • Adds a {py:obj}~bytewax.operators.key_rm convenience operator to remove keys from a {py:obj}~bytewax.operators.KeyedStream.

What's Changed

New Contributors

Full Changelog: https://github.com/bytewax/bytewax/compare/v0.19.0...v0.20.0

Source: README.md, updated 2024-05-22