Files
onepilot/frogpilot/third_party/reactivex/operators/_publishvalue.py
T
firestar5683 d0e1db6766 StarPilot
2026-03-22 03:15:05 -05:00

30 lines
878 B
Python

from typing import Callable, Optional, TypeVar, Union, cast
from reactivex import ConnectableObservable, Observable, abc
from reactivex import operators as ops
from reactivex.subject import BehaviorSubject
from reactivex.typing import Mapper
_T1 = TypeVar("_T1")
_T2 = TypeVar("_T2")
def publish_value_(
initial_value: _T1,
mapper: Optional[Mapper[Observable[_T1], Observable[_T2]]] = None,
) -> Callable[[Observable[_T1]], Union[Observable[_T2], ConnectableObservable[_T1]]]:
if mapper:
def subject_factory(
scheduler: Optional[abc.SchedulerBase] = None,
) -> BehaviorSubject[_T1]:
return BehaviorSubject(initial_value)
return ops.multicast(subject_factory=subject_factory, mapper=mapper)
subject = BehaviorSubject(cast(_T2, initial_value))
return ops.multicast(subject)
__all__ = ["publish_value_"]