U viK@sddlmZmZmZmZmZmZddlZddlmZm Z mZddl m Z edZ ee eeee dddZ d eejeefee jeee gee fd d d Zd gZdS) )AnyCallableOptionalTypeVarUnioncastN) Observableabctyping)CompositeDisposable_T)sourcesamplerreturncs,dtjtttjdfdd }t|S)N)observer schedulercsxddttdd tddfdd }tdfdd }fdd }tj|j||d j|j||d S) NF)_rcs"rdrdS)NF)on_next on_completed)rat_end has_valuervalueL/opt/alt/python38/lib/python3.8/site-packages/reactivex/operators/_sample.pysample_subscribes  z>sample_observable..subscribe..sample_subscribe new_valuecs d|dSNTrr)rrrrrsz5sample_observable..subscribe..on_nextcsddSrrr)rrrr"sz:sample_observable..subscribe..on_completedr)N)rr rr subscribeZon_error)rrrrrrr rrr s(   z$sample_observable..subscribe)N)r Z ObserverBaser r SchedulerBaser)r rr rr!rsample_observable s %r#)rrrcs"ttttdfdd }|S)N)r rcs.ttjrt|St|tjdSdS)zSamples the observable sequence at each interval. Examples: >>> res = sample(source) Args: source: Source sequence to sample. Returns: Sampled observable sequence. rN) isinstancer ZObservableBaser# reactivexinterval)r rrrrsample9s   zsample_..sample)rr )rrr(rr'rsample_5sr))N)r rrrrrrr%rr Zreactivex.disposabler r r#Z RelativeTimer"r)__all__rrrrs   -