U
    fw%Z¿  ã                   @   s&   d dl Z d dlZG dd„ dejƒZdS )é    Nc                   @   s6   e Zd ZdZdZddd„Zdd„ Zdd	„ Zd
d„ ZdS )ÚSpeedzDisplay speed of changes.FNc                 C   s,   || _ |d krd nt|ƒ| _g | _d| _d S )Nr   )ÚnameÚfloatÚ	_durationÚ_data_pointsÚ_changes)Úselfr   Úduration© r
   ú1/usr/lib/python3/dist-packages/ttystatus/speed.pyÚ__init__   s    zSpeed.__init__c                 C   s   t   ¡ S )z5Wrapper around time.time for unit tests to overrride.)Útime)r   r
   r
   r   Únow"   s    z	Speed.nowc           
      C   sd   t | jƒdk rd}nD| jd \}}| jd \}}|| }|  ¡ }|| }	t|ƒt|	ƒ }dt|ƒ S )Né   g        r   éÿÿÿÿz%.2f/s)Úlenr   r   r   )
r   ÚwidthZspeedZoldestZstartedZlatestÚ_Zdeltar   r	   r
   r
   r   Úrender&   s    zSpeed.renderc                 C   sx   |  j d7  _ |  ¡ }| j | j |f¡ | jd krNt| jƒdkrt| jdd…= n&|| j }| jd d |k rt| jd= qXd S )Né   r   r   r   )r   r   r   Úappendr   r   )r   Zmasterr   Úcutoffr
   r
   r   Úupdate3   s    

zSpeed.update)N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Zstatic_widthr   r   r   r   r
   r
   r
   r   r      s   
r   )r   Z	ttystatusZWidgetr   r
   r
   r
   r   Ú<module>   s   