3
]                 @   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	   5/home/ghaith/Applications/sentSatProg_v.0.1.3/misc.py__init__   s    zTimer.__init__c             C   s   t j  | _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  | 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 j  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 )NF)r   )r   r	   r	   r
   stop    s    z
Timer.stopc             C   s   t j  | j |krdS dS d S )NTF)r   r   )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)value)r   r	   r	   r
   __str__8   s(    









zStatus.__str__c             C   s   t || jr| j|jk S dS )NF)
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 )NF)r,   r-   r*   )r   r.   r	   r	   r
   __le__U   s    zStatus.__le__c             C   s   t || jr| j|jkS dS )NF)r,   r-   r*   )r   r.   r	   r	   r
   __gt__Z   s    zStatus.__gt__c             C   s   t || jr| j|jkS dS )NF)r,   r-   r*   )r   r.   r	   r	   r
   __ge___   s    zStatus.__ge__c             C   s   t || jr| j|jkS dS )NF)r,   r-   r*   )r   r.   r	   r	   r
   __ne__d   s    zStatus.__ne__N)r   r   r   r!   r"   r#   r$   r%   r&   Hashr'   r(   r)   r+   r/   r0   r1   r2   r3   r	   r	   r	   r
   r   *   s    r   c             C   sH   d}d}t | }tj||}tj|}|j| |j| |j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    



rC   )r   enumr6   r   r   Enumr   rC   r	   r	   r	   r
   <module>   s   $?