
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,aµ4  ã                   @   s®   d dl Z d dlZd dlZd dlZddddgZdZdZdZejZ	e
Zd	Zd
d„ ZG dd„ dƒZdde	edfdd„Zdde	eedfdd„Zdddœdd„Zedkrªe eƒ ¡ dS )é    NÚTimerÚtimeitÚrepeatÚdefault_timerz<timeit-src>i@B é   zˆ
def inner(_it, _timer{init}):
    {setup}
    _t0 = _timer()
    for _i in _it:
        {stmt}
    _t1 = _timer()
    return _t1 - _t0
c                 C   s   |   ddd|  ¡S )NÚ
ú )Úreplace)ÚsrcÚindent© r   ú+/opt/alt/python38/lib64/python3.8/timeit.pyÚreindentO   s    r   c                   @   sL   e Zd Zddedfdd„Zddd„Zefdd„Zeefd	d
„Z	ddd„Z
dS )r   ÚpassNc                 C   sü   || _ i }|d krtƒ n|}d}t|tƒrJt|tdƒ |d }t|dƒ}n*t|ƒrl||d< |d7 }d}d}ntdƒ‚t|tƒršt|| tdƒ t|d	ƒ}n&t|ƒr¸||d
< |d7 }d}ntdƒ‚t	j
|||d�}	|	| _t|	tdƒ}
t|
||ƒ |d | _d S )NÚ Úexecr   é   Ú_setupz, _setup=_setupz_setup()z&setup is neither a string nor callableé   Z_stmtz, _stmt=_stmtz_stmt()z%stmt is neither a string nor callable)ÚstmtÚsetupÚinitÚinner)ÚtimerÚ_globalsÚ
isinstanceÚstrÚcompileÚdummy_src_namer   ÚcallableÚ
ValueErrorÚtemplateÚformatr
   r   r   )Úselfr   r   r   ÚglobalsZlocal_nsZ	global_nsr   Z
stmtprefixr
   Úcoder   r   r   Ú__init__e   s6    

zTimer.__init__c                 C   sJ   dd l }dd l}| jd k	r:t| jƒd | j d¡tf|jt< |j|d� d S )Nr   r   ©Úfile)Ú	linecacheÚ	tracebackr
   ÚlenÚsplitr   ÚcacheÚ	print_exc)r#   r(   r)   r*   r   r   r   r.   ˆ   s    

ý
zTimer.print_excc                 C   sB   t  d |¡}t ¡ }t ¡  z|  || j¡}W 5 |r<t ¡  X |S ©N)Ú	itertoolsr   ÚgcZ	isenabledZdisableZenabler   r   )r#   ÚnumberÚitZgcoldZtimingr   r   r   r   £   s    

zTimer.timeitc                 C   s*   g }t |ƒD ]}|  |¡}| |¡ q|S r/   )Úranger   Úappend)r#   r   r2   ÚrÚiÚtr   r   r   r   ·   s
    
zTimer.repeatc                 C   sP   d}dD ]8}|| }|   |¡}|r,|||ƒ |dkr||f  S q|d9 }qd S )Né   )r9   é   r   gš™™™™™É?é
   )r   )r#   Úcallbackr7   Újr2   Ú
time_takenr   r   r   Ú	autorangeÑ   s    


zTimer.autorange)N)N)Ú__name__Ú
__module__Ú__qualname__r   r&   r.   Údefault_numberr   Údefault_repeatr   r?   r   r   r   r   r   S   s   ÿ
#
r   c                 C   s   t | |||ƒ |¡S r/   )r   r   )r   r   r   r2   r$   r   r   r   r   æ   s    c                 C   s   t | |||ƒ ||¡S r/   )r   r   )r   r   r   r   r2   r$   r   r   r   r   ë   s    )Ú_wrap_timerc                   s  | d krt jdd … } dd l}z(| | ddddddd	d
ddg	¡\}} W n: |jk
r€ } zt|ƒ tdƒ W Y ¢dS d }~X Y nX t}d | ¡p’d}d‰ g }t}d}	d ‰dddddœ‰d‰|D ]Â\}
}|
dkrÖt|ƒ‰ |
dkrè| 	|¡ |
dk�r|ˆk�r|‰ntdt j
d�  dS |
dk�r6t|ƒ}|dk�r6d}|
dk�rFtj}|
dk�rf|	�r^ˆd7 ‰|	d7 }	|
dkr¾ttd d!�  dS q¾d |¡�p�d}dd l}t j d|j¡ |d k	�r¼||ƒ}t|||ƒ}ˆ dk�rd }|	�rè‡fd"d#„}z| |¡\‰ }W n   | ¡  Y dS X |	�rtƒ  z| |ˆ ¡}W n   | ¡  Y dS X ‡‡‡fd$d%„}|	�rztd&d' t||ƒ¡ ƒ tƒ  ‡ fd(d)„|D ƒ}t|ƒ}td*ˆ ˆ dk�r¨d+nd,|||ƒf ƒ t|ƒ}t|ƒ}||d- k�r dd l}| d.||ƒ||ƒf td,d¡ d S )/Nr9   r   zn:u:s:r:tcpvhznumber=zsetup=zrepeat=ÚtimeZclockZprocessÚverbosezunit=Úhelpz#use -h/--help for command line helpr:   r   r   g•Ö&è.>g�íµ ÷Æ°>gü©ñÒMbP?g      ð?)ZnsecZusecZmsecZsecé   )z-nz--number)z-sz--setup)z-uz--unitz:Unrecognized unit. Please select nsec, usec, msec, or sec.r'   )z-rz--repeat)z-pz	--process)z-vz	--verbose)z-hz--helpr   )Úendc                    s.   d}| dk}t |j| |rdnd|ˆ d�ƒ d S )Nz%{num} loop{s} -> {secs:.{prec}g} secsr9   Úsr   )ZnumrK   ZsecsZprec)Úprintr"   )r2   r>   ÚmsgZplural)Ú	precisionr   r   r<   ?  s     ÿzmain.<locals>.callbackc                    s`   ˆ}|d k	rˆ| }n8dd„ ˆ  ¡ D ƒ}|jdd� |D ]\}}| |kr8 qNq8dˆ | | |f S )Nc                 S   s   g | ]\}}||f‘qS r   r   )Ú.0ÚunitÚscaler   r   r   Ú
<listcomp>Y  s     z-main.<locals>.format_time.<locals>.<listcomp>T)Úreversez%.*g %s)ÚitemsÚsort)ÚdtrP   rQ   Zscales)rN   Ú	time_unitÚunitsr   r   Úformat_timeS  s    
zmain.<locals>.format_timezraw times: %sz, c                    s   g | ]}|ˆ  ‘qS r   r   )rO   rV   )r2   r   r   rR   d  s     zmain.<locals>.<listcomp>z"%d loop%s, best of %d: %s per looprK   r   r   ztThe test results are likely unreliable. The worst time (%s) was more than four times slower than the best time (%s).)ÚsysÚargvÚgetoptÚerrorrL   r   ÚjoinrD   Úintr5   ÚstderrrF   Úprocess_timeÚ__doc__ÚosÚpathÚinsertÚcurdirr   r?   r.   r   ÚmapÚminÚmaxÚwarningsÚwarn_explicitÚUserWarning)ÚargsrE   r\   ZoptsÚerrr   r   r   r   rG   ÚoÚarc   r8   r<   Ú_Zraw_timingsrY   ZtimingsZbestZworstrj   r   )r2   rN   rW   rX   r   Úmainð   sÄ        þÿ


ÿ





 ÿÿý  ürr   Ú__main__)N)r1   rZ   rF   r0   Ú__all__r   rC   rD   Úperf_counterr   r$   r   r!   r   r   r   r   rr   r@   Úexitr   r   r   r   Ú<module>4   s4   
  ÿ
  ÿ
 