3
¦s§]¹  ã               @   s(   d Z G dd„ deƒZdd„ Zdd„ ZdS )zMisc. useful thingsc               @   s"   e Zd ZdZddd„Zdd„ ZdS )	ÚTrackerzTracks progress of taské    c             C   s   || _ || _|| _|| _d S )N)ÚnameÚsizeÚcurrPercentageÚcount)Úselfr   r   r   r   © r   úh/oak/stanford/groups/akundaje/marinovg/Symbiodinium/2019-09-27-figures/multi_mds/miniMDS-master/tools.pyÚ__init__   s    zTracker.__init__c             C   sf   | j dkrb| j d k	rb|  jd7  _| jd }t| jƒ| j  t|ƒd krb|| _tdj| j| jƒƒ d S )Nr   é   éd   z{} {}% complete)r   r   r   ÚfloatÚprintÚformatr   )r   ZnewPercentager   r   r	   Ú	increment
   s    
zTracker.incrementN)r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
   r   r   r   r   r	   r      s   
r   c       	      C   s„   d}xzt | ||ƒD ]j\}}}|d }|d }|d k	rT|t|ƒkrTtdj||ƒƒ d}|d k	r|t|ƒkrtdj||ƒƒ d}qW |S )NTr   r   zError. {} must be > {}.FzError. {} must be < {}.)Úzipr   r   r   )	ÚargsÚnamesÚ	intervalsZ
valid_argsÚargr   ÚintervalÚlower_boundÚupper_boundr   r   r	   Úargs_are_valid   s    r   c             C   s4   t | d ƒ}|dk r t|ƒd S t|d ƒd S dS )z/Converts resolution in bp to string (e.g. 10kb)iè  ÚkbÚmbN)ÚintÚstr)ÚresZres_kbr   r   r	   Úget_res_string!   s    r#   N)r   Úobjectr   r   r#   r   r   r   r	   Ú<module>   s   