async_rx.subject.rx_subject_behavior   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 1
eloc 7
dl 0
loc 30
rs 10
c 0
b 0
f 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A rx_subject_behavior() 0 21 1
1
from typing import Optional
2
3
from ..protocol import Subject, SubjectHandler
4
from .rx_subject_replay import rx_subject_replay
5
6
__all__ = ["rx_subject_behavior"]
7
8
9
def rx_subject_behavior(subject_handler: Optional[SubjectHandler] = None) -> Subject:
10
    """Create a behavior subject.
11
12
    One of the variants of Subjects is the BehaviorSubject, which has a notion
13
    of "the current value".
14
    It stores the latest value emitted to its consumers, and whenever
15
    a new Observer subscribes, it will immediately receive the "current value"
16
    from the BehaviorSubject.
17
18
    BehaviorSubjects are useful for representing "values over time".
19
    For instance, an event stream of birthdays is a Subject,
20
    but the stream of a person's age would be a BehaviorSubject.
21
22
    Args:
23
        subject_handler (Optional[SubjectHandler]): optional suject handler callback
24
25
    Returns:
26
        (Subject): the subject
27
28
    """
29
    return rx_subject_replay(buffer_size=1, subject_handler=subject_handler)
30