
    i5                     :    S SK r S SKJrJr  S SKJr   " S S\S9rg)    N)ABCMetaabstractmethod)	timedeltac                   2    \ rS rSrSrSr\S 5       rS rSr	g)BaseTrigger   zQAbstract base class that defines the interface that every trigger must implement. c                     g)z
Returns the next datetime to fire on, If no such datetime can be calculated, returns
``None``.

:param datetime.datetime previous_fire_time: the previous time the trigger was fired
:param datetime.datetime now: current datetime
Nr	   )selfprevious_fire_timenows      F/app/mltbenv/lib/python3.13/site-packages/apscheduler/triggers/base.pyget_next_fire_timeBaseTrigger.get_next_fire_time   s        c                 \    Ub  U(       d  U$ U[        [        R                  " SU5      S9-   $ )a  
Randomize ``next_fire_time`` by adding a random value (the jitter).

:param datetime.datetime|None next_fire_time: next fire time without jitter applied. If
    ``None``, returns ``None``.
:param int|None jitter: maximum number of seconds to add to ``next_fire_time``
    (if ``None`` or ``0``, returns ``next_fire_time``)
:param datetime.datetime now: current datetime
:return datetime.datetime|None: next fire time with a jitter.
r   )seconds)r   randomuniform)r   next_fire_timejitterr   s       r   _apply_jitterBaseTrigger._apply_jitter   s-     !!!	&..F2K LLLr   N)
__name__
__module____qualname____firstlineno____doc__	__slots__r   r   r   __static_attributes__r	   r   r   r   r      s"    [I Mr   r   )	metaclass)r   abcr   r   datetimer   r   r	   r   r   <module>r$      s     ' MG Mr   