Filter

Definition

class broqer.op.Filter(predicate: Callable[[Any], bool], *args, unpack: bool = False, **kwargs)[source]

Filter object applied to publisher

Parameters:
  • predicate – function to evaluate the filtering
  • *args – variable arguments to be used for evaluating predicate
  • unpack – value from emits will be unpacked (*value)
  • **kwargs – keyword arguments to be used for evaluating predicate

Usage

Filters values based on a predicate function

Usage:

>>> from broqer import Value, op, Sink
>>> s = Value()
>>> filtered_publisher = s | op.Filter(lambda v:v>0)
>>> _disposable = filtered_publisher.subscribe(Sink(print))
>>> s.emit(1)
1
>>> s.emit(-1)
>>> s.emit(0)
>>> _disposable.dispose()

Also possible with additional args and kwargs:

>>> import operator
>>> filtered_publisher = s | op.Filter(operator.and_, 0x01)
>>> _disposable = filtered_publisher.subscribe(Sink(print))
>>> s.emit(100)
>>> s.emit(101)
101