§
    šŒÃi5  ã                   óH   — d dl Z d dlmZmZ d dlmZ  G d„ de¬¦  «        ZdS )é    N)ÚABCMetaÚabstractmethod)Ú	timedeltac                   ó2   — e Zd ZdZdZed„ ¦   «         Zd„ ZdS )ÚBaseTriggerzQAbstract base class that defines the interface that every trigger must implement.© c                 ó   — dS )a  
        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      úc/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/apscheduler/triggers/base.pyÚget_next_fire_timezBaseTrigger.get_next_fire_time   s   € € € ó    c                 óZ   — |�|s|S |t          t          j        d|¦  «        ¬¦  «        z   S )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.
        Nr   )Úseconds)r   ÚrandomÚuniform)r
   Únext_fire_timeÚjitterr   s       r   Ú_apply_jitterzBaseTrigger._apply_jitter   s7   € ð Ð!¨Ð!Ø!Ð!à¥	µ&´.ÀÀFÑ2KÔ2KÐ LÑ LÔ LÑLÐLr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   r   r   r   r   r   r   r      sL   € € € € € Ø[Ð[à€Iàðð ñ „^ððMð Mð Mð Mð Mr   r   )Ú	metaclass)r   Úabcr   r   Údatetimer   r   r   r   r   ú<module>r      s|   ðØ €€€Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð ðMð Mð Mð Mð M˜Gð Mñ Mô Mð Mð Mð Mr   