U
viK @ s d dl mZmZmZmZmZmZ d dlZd dlmZm Z m Z d dl
mZ edZee ee ee dddZ
dee jee f ee j eee gee f d d
dZdgZdS )
)AnyCallableOptionalTypeVarUnioncastN)
Observableabctyping)CompositeDisposable_T)sourcesamplerreturnc s, dt jt tt j d fdd
}t|S )N)observer schedulerc sx d dt td dtd d fdd
}tdfdd} fdd }tj|j||d
j|j||d
S )NF)_r c s" rd r d S )NF)on_nexton_completed)r at_end has_valuer value L/opt/alt/python38/lib/python3.8/site-packages/reactivex/operators/_sample.pysample_subscribe s
z>sample_observable..subscribe..sample_subscribe new_valuec s d | d S NTr r )r r r r r s z5sample_observable..subscribe..on_nextc s d d S r r r )r r r r " s z:sample_observable..subscribe..on_completedr )N)r r r r subscribeZon_error)r r r r r r r
r r r
s(
z$sample_observable..subscribe)N)r ZObserverBaser r
SchedulerBaser )r
r r r r! r sample_observable
s %r# )r r r c s" t t t t d fdd}|S )N)r
r c s. t tjrt| S t| tj dS dS )zSamples the observable sequence at each interval.
Examples:
>>> res = sample(source)
Args:
source: Source sequence to sample.
Returns:
Sampled observable sequence.
r N)
isinstancer ZObservableBaser# reactivexinterval)r
r r r r sample9 s
zsample_..sample)r r )r r r( r r' r sample_5 s r) )N)r
r r r r r r r% r r Zreactivex.disposabler r r# ZRelativeTimer" r) __all__r r r r s -