U vâ’i— ã@sšddlmZmZmZmZmZddlmZmZddl m Z ddl m Z ddl mZmZmZedƒZeeeeeefeegefeedœdd „Zd gZd S) é)ÚAnyÚCallableÚOptionalÚTypeVarÚcast)Ú ObservableÚabc)ÚMultipleAssignmentDisposable)ÚTimeoutScheduler)ÚMapperÚ PredicateÚ RelativeTimeÚ_TState)Ú initial_stateÚ conditionÚiterateÚ time_mapperÚreturncs4dtjtttjtjdœ‡‡‡‡fdd„ }t|ƒS)a¾Generates an observable sequence by iterating a state from an initial state until the condition fails. Example: res = source.generate_with_relative_time( 0, lambda x: True, lambda x: x + 1, lambda x: 0.5 ) Args: initial_state: Initial state. condition: Condition to terminate generation (upon returning false). iterate: Iteration step function. time_mapper: Time mapper function to control the speed of values being produced each iteration, returning relative times, i.e. either floats denoting seconds or instances of timedelta. Returns: The generated sequence. N)ÚobserverÚ schedulerrc sj|p t ¡}tƒ‰ˆ ‰d‰ttdƒ‰d‰d‰tjtddœ‡‡‡‡‡ ‡‡‡‡‡‡ f dd„ ‰| dˆ¡ˆ_ ˆS)NFT)rÚ_rc s˜ˆrˆ ˆ¡z.ˆrd‰nˆˆƒ‰ˆˆƒ‰ˆr:ˆ‰ˆ ˆƒ‰ Wn2tk rn}zˆ |¡WY¢dSd}~XYnXˆrŒˆ s|t‚| ˆ ˆ¡ˆ_nˆ ¡dS)NF)Zon_nextÚ ExceptionZon_errorÚAssertionErrorÚschedule_relativeÚ disposableZ on_completed)rrÚe) ÚactionrÚfirstÚ has_resultrÚmadrÚresultÚstateÚtimer©ú^/opt/alt/python38/lib/python3.8/site-packages/reactivex/observable/generatewithrelativetime.pyr3s"   z?generate_with_relative_time_..subscribe..actionr) r Z singletonr rrrÚ SchedulerBaserrr)rr©rrrr)rrrrrr r!r"r$Ú subscribe's  , z/generate_with_relative_time_..subscribe)N)rZ ObserverBaserrr%ZDisposableBaser)rrrrr'r#r&r$Úgenerate_with_relative_time_ sþý/r(N)ÚtypingrrrrrZ reactivexrrZreactivex.disposabler Zreactivex.schedulerr Zreactivex.typingr r r rr(Ú__all__r#r#r#r$Ús    û N