U viA@sddlmZddlmZmZmZmZmZddlZddlm Z m Z m Z mZddl m Z mZddlmZedZdde eeeee e ege efd d d Zee e ege efd d dZd dgZdS))Future)CallableListOptionalTypeVarUnionN) Observableabc from_futuretyping)CompositeDisposableSingleAssignmentDisposable) synchronized_T)max_concurrent)sourcesrreturncs&tttttdfdd }|S)NsourcercsLdkr tg}tj|Sdtjtttjdfdd }t|S)aMerges an observable sequence of observable sequences into an observable sequence, limiting the number of concurrent subscriptions to inner sequences. Or merges two observable sequences into a single observable sequence. Examples: >>> res = merge(sources) Args: source: Source observable. Returns: The observable sequence that merges the elements of the inner sequences. Nobserver schedulerc sdgtdggttdfdd ttddfdd }fd d }j|j|d S) NrF)xscsjttjfdd}tjj}tjj}|j|||d_dS)NcsRr"d}|n,dd8<drNddkrNdSNr)removepop on_completed)s) active_countgroup is_stoppedrqueue subscribe subscriptionK/opt/alt/python38/lib/python3.8/site-packages/reactivex/operators/_merge.pyr1s   zQmerge_..merge..subscribe..subscribe..on_completedr)r addrlockon_nexton_errorr# disposable)rrr*r+)rr r!rr"rrr#)r$r&r#-s  z;merge_..merge..subscribe..subscribe) inner_sourcercs<stdkr.dd7<|n |dSr)AssertionErrorappendr-)rrr"r#r%r&r*Bs   z9merge_..merge..subscribe..on_nextcs dd<ddkrdS)NTr)rr%)rr!rr%r&rJs z>merge_..merge..subscribe..on_completedr')r rrr(r#r+)rrr*r)rr)rr r!rr"rr#r&r#$s $z(merge_..merge..subscribe)N) tuple reactivexmerger ObserverBaserr SchedulerBaser)rZsources_r#rrrr&r3s 2zmerge_..mergerr)rrr3r%r6r&merge_ s"Ir9)rcCs tttttddd}|S)Nrcs*dtjtttjdfdd }t|S)aDPartially applied merge_all operator. Merges an observable sequence of observable sequences into an observable sequence. Args: source: Source observable to merge. Returns: The observable sequence that merges the elements of the inner sequences. Nrcsltdgt}|tttdfdfdd }fdd}j|j|d|_S) NFz Future[_T]r0cs~tt|tr"t|n|}tjfdd}tjj}tjj}|j |||d}|_ dS)Ncs*dr&tdkr&dSr)rlenrr%)r inner_subscriptionr!rr%r&r}s zWmerge_all_..merge_all..subscribe..on_next..on_completedr') r r( isinstancerr rr)r*r+r#r,)r-rr*r+r$)r r!rrr)r;r&r*ss"  zAmerge_all_..merge_all..subscribe..on_nextcs dd<tdkrdS)NTrr)r:rr%)r r!rr%r&rs zFmerge_all_..merge_all..subscribe..on_completedr') r r r(rrrr#r+r,)rrmr*rr7)r r!rrr&r#js &z0merge_all_..merge_all..subscribe)N)r r4rrr5r)rr#r%r7r& merge_all\s *zmerge_all_..merge_allr8)r>r%r%r& merge_all_[s:r?)asynciorr rrrrrr2rr r Zreactivex.disposabler r Zreactivex.internalrrintr9r?__all__r%r%r%r&s   O$>