U vi @ sf d dl mZmZmZmZmZ d dlmZmZ d dl m Z mZ ee eeedf dddZdgZ dS ) )AnyListOptionalTuplecast) Observableabc)CompositeDisposableSingleAssignmentDisposable.)sourcesreturnc s@ d dt jttdf tt j t jd fdd }t|S )a Wait for observables to complete and then combine last values they emitted into a tuple. Whenever any of that observables completes without emitting any value, result sequence will complete at that moment as well. Examples: >>> obs = reactivex.fork_join(obs1, obs2, obs3) Returns: An observable sequence containing the result of combining last element from each source in given sequence. r N.)observer schedulerr c s t }d g| dg| dg| td dfdd ttd g| td d fdd}t|D ]}|| qztS )NF)ir c sP d| <