U vi@sddlmZmZmZmZddlmZmZddlm Z m Z edZ d e e e eee gee fdddZ d e e e eee gee fdd d Zdd gZd S))AnyCallableOptionalTypeVar) Observableabc) PredicatePredicateIndexed_TF) predicate inclusivereturncs"ttttdfdd }|S)Nsourcer cs2dtjtttjtjdfdd }t|S)aReturns elements from an observable sequence as long as a specified condition is true. Example: >>> take_while(source) Args: source: The source observable to take from. Returns: An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. Nobserver schedulerr cs4dtdfdd }j|jj|dS)NT)valuec sjbsW5QRdSz |Wn<tk rb}z|WYW5QRdSd}~XYnXW5QRXr~|nr|dS)Nlock Exceptionon_erroron_next on_completedrZexn)r rr runningrO/opt/alt/python38/lib/python3.8/site-packages/reactivex/operators/_takewhile.pyr"s  ,  zCtake_while_..take_while..subscribe..on_nextr)r subscriberrrrrr r r)rrrrsz2take_while_..take_while..subscribe)NrZ ObserverBaser rZ SchedulerBaseZDisposableBaserrrr r rr take_while sztake_while_..take_whilerr )r r r&rr$r take_while_ s0r(cs"ttttdfdd }|S)Nrcs2dtjtttjtjdfdd }t|S)aReturns elements from an observable sequence as long as a specified condition is true. The element's index is used in the logic of the predicate function. Example: >>> take_while(source) Args: source: Source observable to take from. Returns: An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. Nrcs<ddtddfdd }j|jj|dS)NTr)rr c sjlsW5QRdSz|Wn<tk rd}z|WYW5QRdSd}~XYn Xd7W5QRXr|nr|dS)Nrr)ir rr rrrrrZs "  zStake_while_indexed_..take_while_indexed..subscribe..on_nextr)rrrrr r!)r*rrrrSszBtake_while_indexed_..take_while_indexed..subscribe)Nr"r#r$r%rtake_while_indexedBs!z/take_while_indexed_..take_while_indexedr')r r r+rr$rtake_while_indexed_?s4r,N)F)F)typingrrrrZ reactivexrrZreactivex.typingrr r boolr(r,__all__rrrrs  7 :