
    i                     b    S SK Jr  S SKJrJr   " S S\5      r " S S\5      r " S S\5      rg	)
    )BaseTrigger)
obj_to_ref
ref_to_objc                   4    \ rS rSrSrSS jrS rS rS rSr	g)	BaseCombiningTrigger   )jittertriggersNc                     Xl         X l        g N)r
   r	   )selfr
   r	   s      K/app/mltbenv/lib/python3.13/site-packages/apscheduler/triggers/combining.py__init__BaseCombiningTrigger.__init__   s         c                     SU R                    Vs/ s H(  n[        UR                  5      UR                  5       4PM*     snU R                  S.$ s  snf )N   )versionr
   r	   )r
   r   	__class____getstate__r	   )r   triggers     r   r   !BaseCombiningTrigger.__getstate__   sW      $}},G G--.0D0D0FG, kk
 	
s   /Ac                 P   UR                  SS5      S:  a)  [        SUS    SU R                  R                   S35      eUS   U l        / U l        US    HM  u  p![        U5      nUR                  U5      nUR                  U5        U R
                  R                  U5        MO     g )Nr   r   z Got serialized data for version z of z*, but only versions up to 1 can be handledr	   r
   )
get
ValueErrorr   __name__r	   r
   r   __new____setstate__append)r   stateclsrefclsr   s        r   r   !BaseCombiningTrigger.__setstate__   s    99Y"Q&253C2DD>>**++UW 
 Ho":.MFV$Ckk#&G  'MM  )	 /r   c                     SR                  U R                  R                  U R                  U R                  (       a  SU R                   35      $ S5      $ )Nz
<{}({}{})>z	, jitter= )formatr   r   r
   r	   r   s    r   __repr__BaseCombiningTrigger.__repr__%   sL    ""NN##MM)-i}%
 	
 ;=
 	
r   r   )
r   
__module____qualname____firstlineno__	__slots__r   r   r   r(   __static_attributes__ r   r   r   r      s    &I
*
r   r   c                   (    \ rS rSrSrSrS rS rSrg)
AndTrigger-   a;  
Always returns the earliest next fire time that all the given triggers can agree on.
The trigger is considered to be finished when any of the given triggers has finished its
schedule.

Trigger alias: ``and``

.. warning:: This trigger should only be used to combine triggers that fire on
    specific times of day, such as
    :class:`~apscheduler.triggers.cron.CronTrigger` and
    class:`~apscheduler.triggers.calendarinterval.CalendarIntervalTrigger`.
    Attempting to use it with
    :class:`~apscheduler.triggers.interval.IntervalTrigger` will likely result in
    the scheduler hanging as it tries to find a fire time that matches exactly
    between fire times produced by all the given triggers.

:param list triggers: triggers to combine
:param int|None jitter: delay the job execution by ``jitter`` seconds at most
r/   c                      U R                    Vs/ s H  nUR                  X5      PM     nnS U;   a  g [        U5      [        U5      :X  a   U R	                  US   U R
                  U5      $ [        U5      nMw  s  snf )Nr   )r
   get_next_fire_timeminmax_apply_jitterr	   )r   previous_fire_timenowr   
fire_timess        r   r4   AndTrigger.get_next_fire_timeD   s      $}},G **+=C,   z!ZC
O3))*Q-cJJ*o s   A9c                 d    SR                  SR                  S U R                   5       5      5      $ )Nzand[{}], c              3   8   #    U  H  n[        U5      v   M     g 7fr   str.0r   s     r   	<genexpr>%AndTrigger.__str__.<locals>.<genexpr>R   s     )Tm7#g,,m   r&   joinr
   r'   s    r   __str__AndTrigger.__str__Q   s&    		)Tdmm)T TUUr   N	r   r*   r+   r,   __doc__r-   r4   rH   r.   r/   r   r   r1   r1   -   s    ( I&Vr   r1   c                   (    \ rS rSrSrSrS rS rSrg)	OrTriggerU   a  
Always returns the earliest next fire time produced by any of the given triggers.
The trigger is considered finished when all the given triggers have finished their schedules.

Trigger alias: ``or``

:param list triggers: triggers to combine
:param int|None jitter: delay the job execution by ``jitter`` seconds at most

.. note:: Triggers that depends on the previous fire time, such as the interval trigger, may
    seem to behave strangely since they are always passed the previous fire time produced by
    any of the given triggers.
r/   c                     U R                    Vs/ s H  nUR                  X5      PM     nnU Vs/ s H	  oUc  M  UPM     nnU(       a&  U R                  [        U5      U R                  U5      $ g s  snf s  snf r   )r
   r4   r7   r5   r	   )r   r8   r9   r   r:   	fire_times         r   r4   OrTrigger.get_next_fire_timef   sx      ==
( &&'9?( 	 
 2<UIi
U%%c*ot{{CHH
 Vs   A0A5A5c                 d    SR                  SR                  S U R                   5       5      5      $ )Nzor[{}]r=   c              3   8   #    U  H  n[        U5      v   M     g 7fr   r?   rA   s     r   rC   $OrTrigger.__str__.<locals>.<genexpr>r   s     (S]'W]rE   rF   r'   s    r   rH   OrTrigger.__str__q   s$    tyy(ST]](SSTTr   NrJ   r/   r   r   rM   rM   U   s     I	Ur   rM   N)apscheduler.triggers.baser   apscheduler.utilr   r   r   r1   rM   r/   r   r   <module>rX      s7    1 3%
; %
P%V% %VPU$ Ur   