stantheman0128 opened a new issue, #1670:
URL: https://github.com/apache/datafusion-python/issues/1670

   Split out from #1577 (item 6), which asks for a `WindowUDF` ABC equivalent 
to `Accumulator`.
   
   Checked this against current `main`: 
`datafusion.user_defined.WindowEvaluator` already provides the capability. 
`crates/core/src/udwf.rs::RustPartitionEvaluator` dispatches `memoize` / 
`get_range` / `evaluate` / `evaluate_all` / `evaluate_all_with_rank` / 
`supports_bounded_execution` / `uses_window_frame` / `include_rank` via 
`call_method`, and `python/tests/test_udwf.py` has several pure-Python 
subclasses driven through `udwf()`.
   
   It's deliberately not `metaclass=ABCMeta` like `Accumulator`, though: which 
`evaluate*` method must be implemented depends on the `uses_window_frame` / 
`supports_bounded_execution` / `include_rank` flag matrix documented on the 
class, so no single method can be marked `@abstractmethod` the way 
`Accumulator`'s can.
   
   Opening this to confirm: is the literal "ABC" form still wanted on top of 
what exists (and if so, what should the abstractness contract look like given 
the flag matrix), or should #1577 drop this item?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to