
    i                         S SK Jr  S SKJr  S SKJr  S SKJr   S SKJ	r
  S r " S	 S
\5      rg! \ a  r\" S5      \eSrCff = f)    wraps)SchedulerNotRunningError)BaseScheduler)	maybe_ref)reactorz+TwistedScheduler requires Twisted installedNc                 0   ^  [        T 5      U 4S j5       nU$ )Nc                 H   > U R                   R                  " TU /UQ70 UD6  g N)_reactorcallFromThread)selfargskwargsfuncs      K/app/mltbenv/lib/python3.13/site-packages/apscheduler/schedulers/twisted.pywrapperrun_in_reactor.<locals>.wrapper   s!    $$T4A$A&A    r   )r   r   s   ` r   run_in_reactorr      s"    
4[B B Nr   c                   z   ^  \ rS rSrSrSrSrU 4S jr\SU 4S jj5       r	SS jr
S rS r\S	 5       rS
 rSrU =r$ )TwistedScheduler   a  
A scheduler that runs on a Twisted reactor.

Extra options:

=========== ========================================================
``reactor`` Reactor instance to use (defaults to the global reactor)
=========== ========================================================
Nc                 l   > [        UR                  S[        5      5      U l        [        TU ]  U5        g )Nr   )r   popdefault_reactorr   super
_configure)r   config	__class__s     r   r   TwistedScheduler._configure#   s'    !&**Y"HI6"r   c                 D   > [         TU ]  U5        U R                  5         g r   )r   shutdown_stop_timer)r   waitr    s     r   	_shutdownTwistedScheduler._shutdown'   s    r   c                 T    U R                   (       d  [        eU R                  U5        g r   )runningr   r&   )r   r%   s     r   r#   TwistedScheduler.shutdown,   s    ||**tr   c                     U R                  5         Ub+  U R                  R                  XR                  5      U l        g g r   )r$   r   	callLaterwakeup_delayedcallr   wait_secondss     r   _start_timerTwistedScheduler._start_timer2   s4    # $ 7 7kk RD $r   c                     U R                   (       a=  U R                   R                  5       (       a  U R                   R                  5         U ? g g g r   )r.   activecancel)r   s    r   r$   TwistedScheduler._stop_timer7   s?    !2!2!9!9!;!;$$&! "<r   c                 f    U R                  5         U R                  5       nU R                  U5        g r   )r$   _process_jobsr1   r/   s     r   r-   TwistedScheduler.wakeup<   s*    ))+,'r   c                     SSK Jn  U" 5       $ )Nr   )TwistedExecutor)apscheduler.executors.twistedr;   )r   r;   s     r   _create_default_executor)TwistedScheduler._create_default_executorB   s    A  r   )r.   r   )T)__name__
__module____qualname____firstlineno____doc__r   r.   r   r   r&   r#   r1   r$   r-   r=   __static_attributes____classcell__)r    s   @r   r   r      s[     HL#  S
"
 ( (
! !r   r   )	functoolsr   apscheduler.schedulersr   apscheduler.schedulers.baser   apscheduler.utilr   twisted.internetr   r   ImportErrorexcr   r    r   r   <module>rN      sM     ; 5 &N;
0!} 0!  N
C
D#MNs   / A	>A