U vi@sddlmZmZmZmZddlmZmZddlmZ ddlmZddl m Z edZ dee e ee eee d d d Zdee eeje eee geefd d dZdd gZdS))AnyCallableOptionalTypeVar) Observableabc) operators)typing)SequenceContainsNoElementsError_TFN)source has_default default_valuereturncs2dtjttttjdfdd }t|S)N)observer schedulercsHgdgtddfdd }fdd}j|j||dS)NF)xrcs|d<dd<dS)NrT)r) seen_valuevaluerS/opt/alt/python38/lib/python3.8/site-packages/reactivex/operators/_lastordefault.pyon_nextsz9last_or_default_async..subscribe..on_nextcs4dsstnddS)Nr)on_errorr r on_completedr)r rrrrrrs z>last_or_default_async..subscribe..on_completed)r)r subscriber)rrrrrr r )rrrrrsz(last_or_default_async..subscribe)N)rZ ObserverBaserr Z SchedulerBaser)r r rrrrrlast_or_default_async s  r)r predicatercs"ttttdfdd }|S)N)r rcs(r|ttSt|dS)a2Return last or default element. Examples: >>> res = _last_or_default(source) Args: source: Observable sequence to get the last item from. Returns: Observable sequence containing the last element in the observable sequence. T)pipeopsfilterlast_or_defaultr)r rrrrr!,s z(last_or_default..last_or_default)rr)rrr!rr"rr!)sr!)FN)NN)r rrrrZ reactivexrrrrZreactivex.internal.exceptionsr r boolrZ Predicater!__all__rrrrs*