robinhood / faust

Python Stream Processing
Other
6.74k stars 533 forks source link

Cython implementation of HoppingWindow.ranges returns tuples with (int, float) #674

Closed forsberg closed 3 years ago

forsberg commented 4 years ago

Checklist

Steps to reproduce

Using a faust[fast], values stored in a Table with HoppingWindow are not retrievable via the .value() function.

Inspecting the RocksDB tables via ldb, the keys (given that we store an integer as key) are on the form:

[621, [1603100040.0, 1603100099.9]]

However, when trying to retrieve the data, the key asked for is on the form:

[621, [1603100040, 1603100099.9]]

This only happens when faust has been cythonized. When running with NO_CYTHON=True, the problem disappears.

The root cause seems to be the Cython implementation of HoppingWindow.ranges returning a tuple (int, float) instead of (float, float).

Possibly related to #223, #510, but not sure about that.

Versions