1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
from typing import Callable, Optional, TypeVar, cast
from reactivex import Observable, compose
from reactivex import operators as ops
from reactivex.internal.basic import identity
from reactivex.typing import Comparer
from ._min import first_only
_T = TypeVar("_T")
def max_(
comparer: Optional[Comparer[_T]] = None,
) -> Callable[[Observable[_T]], Observable[_T]]:
"""Returns the maximum value in an observable sequence according to
the specified comparer.
Examples:
>>> op = max()
>>> op = max(lambda x, y: x.value - y.value)
Args:
comparer: [Optional] Comparer used to compare elements.
Returns:
An operator function that takes an observable source and returns
an observable sequence containing a single element with the
maximum element in the source sequence.
"""
return compose(
ops.max_by(cast(Callable[[_T], _T], identity), comparer),
ops.map(first_only),
)
__all__ = ["max_"]
|