U
    cc                     @   s>   d Z ddlmZ ddlmZ ddlmZ G dd dejZdS )	z Clocked schedule Implementation.    )	schedules)maybe_make_aware   )NEVER_CHECK_TIMEOUTc                       sR   e Zd ZdZd fdd	Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
  ZS )clockedz@clocked schedule.

    Depends on PeriodicTask one_off=True
    Nc                    s   t || _t j||d dS )zInitialize clocked.)nowfunappN)r   clocked_timesuper__init__)selfr	   r   r   	__class__ \/var/www/html/project/venv/lib/python3.8/site-packages/django_celery_beat/clockedschedule.pyr      s    
zclocked.__init__c                 C   s   | j |   S N)r	   now)r   last_run_atr   r   r   remaining_estimate   s    zclocked.remaining_estimatec                 C   s<   |  d }t| d}|dkr.tjdtdS tjd|dS )Nr   T)is_duenextF)r   maxtotal_secondsr   Z
schedstater   )r   r   Z	rem_deltaZremaining_sr   r   r   r      s
    
zclocked.is_duec                 C   s   d| j  dS )Nz
<clocked: >)r	   r   r   r   r   __repr__   s    zclocked.__repr__c                 C   s   t |tr| j|jkS dS )NF)
isinstancer   r	   r   otherr   r   r   __eq__!   s    
zclocked.__eq__c                 C   s   |  | S r   )r   r   r   r   r   __ne__&   s    zclocked.__ne__c                 C   s   | j | j| jffS r   )r   r	   r   r   r   r   r   
__reduce__)   s    zclocked.__reduce__)NN)__name__
__module____qualname____doc__r   r   r   r   r   r    r!   __classcell__r   r   r   r   r   	   s   r   N)	r%   Zceleryr   Zcelery.utils.timer   utilsr   ZBaseScheduler   r   r   r   r   <module>   s   