U
    Tr`                     @   sP   d dl Z d dlZd dlmZ d dlZG dd dZG dd dejZdd ZdS )	    N)	getLoggerc                   @   sD   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dS )Timerc                 C   s   d| _ d| _d| _d S )N}   r   F)_max_tick_runningself r
   ;/mnt/cestravail/FreezeDetection/sentSatProg_v.0.1.3/misc.py__init__   s    zTimer.__init__c                 C   s   t   | _d| _dS )z Call this to start timer TN)timer   r   r   r
   r
   r   tick   s    
z
Timer.tickc                 C   s   t   | j S )z Call this to stop timer r   r   r   r
   r
   r   tock   s    z
Timer.tockc                   C   s   t jst   t jd t _d S )N   )r	   r   r   r   r   r
   r
   r
   r   	half_tick   s    zTimer.half_tickc                 C   s   | j S )Nr   r   r
   r
   r   running   s    zTimer.runningc                 C   s
   d| _ d S NFr   r   r
   r
   r   stop    s    z
Timer.stopc                 C   s   t   | j |krdS dS d S )NTFr   )r	   secondsr
   r
   r   has_elapsed#   s    zTimer.has_elapsedN)
__name__
__module____qualname__r   r   r   r   r   r   r   r
   r
   r
   r   r      s   r   c                   @   sd   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
Zdd Zdd Zdd Zdd Zdd Zdd ZdS )Statusr      r                     	   c                 C   s   | j dkrdS | j dkrdS | j dkr*dS | j dkr8dS | j d	krFd
S | j dkrTdS | j dkrbdS | j dkrpdS | j dkr~dS | j dkrdS d S )Nr   Offliner   Pendingr   	Requestedr   Onliner   Downloadingr    
Downloadedr!   ZHashingr"   	Succeededr#   Failedr$   	Corrupted)valuer   r
   r
   r   __str__8   s(    









zStatus.__str__c                 C   s   t || jr| j|jk S dS r   
isinstance	__class__r.   r	   otherr
   r
   r   __lt__P   s    zStatus.__lt__c                 C   s   t || jr| j|jkS dS r   r0   r3   r
   r
   r   __le__U   s    zStatus.__le__c                 C   s   t || jr| j|jkS dS r   r0   r3   r
   r
   r   __gt__Z   s    zStatus.__gt__c                 C   s   t || jr| j|jkS dS r   r0   r3   r
   r
   r   __ge___   s    zStatus.__ge__c                 C   s   t || jr| j|jkS dS r   r0   r3   r
   r
   r   __ne__d   s    zStatus.__ne__N)r   r   r   r%   r&   r'   r(   r)   r*   Hashr+   r,   r-   r/   r5   r6   r7   r8   r9   r
   r
   r
   r   r   *   s    r   c                 C   sH   d}d}t | }t||}t|}|| || |d |S )Nz'%(asctime)s [%(levelname)s] %(message)sz%d/%d %H:%MINFO)r   logging	FormatterStreamHandlersetFormatter
addHandlersetLevel)keysiofmtdatefmtlog	formatterconsoler
   r
   r   setup_loggeri   s    



rI   )r   enumr<   r   r   Enumr   rI   r
   r
   r
   r   <module>   s   $?