U
vi @ s d dl mZ d dlmZmZmZmZmZ d dlm Z m
Z
mZ d dlmZ
d dlmZmZmZ d dlmZ d dlmZ d dlmZ ed Zed
ZedZdeeef eeeef ee eef ge
e f eeg ee f ee
e ge
e eef f d
ddZdgZdS ) )OrderedDict)AnyCallableOptionalTypeVarcast)GroupedObservable
Observableabc) operators)CompositeDisposableRefCountDisposableSingleAssignmentDisposable)identitySubject)Mapper_T_TKey_TValueN)
key_mapperelement_mapperduration_mappersubject_mapperreturnc sT |pt tttf tdd }|p$|tt ttttf d fdd}|S )aQ Groups the elements of an observable sequence according to a
specified key mapper function. A duration mapper function is used
to control the lifetime of groups. When a group expires, it receives
an OnCompleted notification. When a new element with the same key
value as a reclaimed group occurs, the group will be reborn with a
new lifetime request.
Examples:
>>> group_by_until(lambda x: x.id, None, lambda : reactivex.never())
>>> group_by_until(
lambda x: x.id,lambda x: x.name, lambda grp: reactivex.never()
)
>>> group_by_until(
lambda x: x.id,
lambda x: x.name,
lambda grp: reactivex.never(),
lambda: ReplaySubject()
)
Args:
key_mapper: A function to extract the key for each element.
duration_mapper: A function to signal the expiration of a group.
subject_mapper: A function that returns a subject used to initiate
a grouped observable. Default mapper returns a Subject object.
Returns: a sequence of observable groups, each of which corresponds to
a unique key value, containing all elements that share that same key
value. If a group's lifetime expires, a new group with the same key
value can be created once an element with such a key value is
encountered.
c S s t S Nr r r R/opt/alt/python38/lib/python3.8/site-packages/reactivex/operators/_groupbyuntil.py