1from typing import Callable, Optional 2 3from rx import operators as ops 4from rx.core import Observable, pipe 5from rx.core.typing import Mapper 6 7 8def _sum(key_mapper: Optional[Mapper] = None) -> Callable[[Observable], Observable]: 9 if key_mapper: 10 return pipe( 11 ops.map(key_mapper), 12 ops.sum() 13 ) 14 15 return ops.reduce(seed=0, accumulator=lambda prev, curr: prev + curr) 16