U e5d�4�@s�ddlZddlZddlZddlZddddgZdZdZdZejZ e Z d Z d d �Z Gd d�d�Zd d e edfdd�Zd d e eedfdd�Zddd�dd�Zedkr�e�e��dS)�N�Timer�timeit�repeat� default_timerz i@B�z� def inner(_it, _timer{init}): {setup} _t0 = _timer() for _i in _it: {stmt} _t1 = _timer() return _t1 - _t0 cCs|�ddd|�S)N� � )�replace)�src�indent�r �/usr/lib64/python3.8/timeit.py�reindentOsrc@sLeZdZddedfdd�Zd dd�Zefdd�Zeefd d �Z dd d �Z dS)r�passNc Cs�||_i}|dkrt�n|}d}t|t�rJt|td�|d}t|d�}n*t|�rl||d<|d7}d}d}ntd��t|t�r�t||td�t|d �}n&t|�r�||d <|d 7}d }ntd ��t j |||d�} | |_ t| td�} t | ||�|d|_ dS)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 rr) �selfrrr�globalsZlocal_nsZ global_nsrZ stmtprefixr �coder r r �__init__es6       zTimer.__init__cCsJddl}ddl}|jdk r:t|j�d|j�d�tf|jt<|j|d�dS)Nrr��file)� linecache� tracebackr �len�splitr�cache� print_exc)r#r(r)r*r r r r.�s  � zTimer.print_exccCsBt�d|�}t��}t��z|�||j�}W5|rg�����ư>g����MbP?g�?)ZnsecZusecZmsecZsec�)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)�endcs.d}|dk}t|j||rdnd|�d��dS)Nz%{num} loop{s} -> {secs:.{prec}g} secsr9�sr)ZnumrKZsecsZprec)�printr")r2r>�msgZplural)� precisionr r r<?s �zmain..callbackcs`�}|dk r�|}n8dd����D�}|jdd�|D]\}}||kr8qNq8d�|||fS)NcSsg|]\}}||f�qSr r )�.0�unit�scaler r r � Ysz-main..format_time..T)�reversez%.*g %s)�items�sort)�dtrPrQZscales)rN� time_unit�unitsr r � format_timeSs   zmain..format_timez raw times: %sz, csg|] }|��qSr r )rOrV)r2r r rRdszmain..z"%d loop%s, best of %d: %s per looprKrrztThe test results are likely unreliable. The worst time (%s) was more than four times slower than the best time (%s).)�sys�argv�getopt�errorrLr�joinrD�intr5�stderrrF� process_time�__doc__�os�path�insert�curdirrr?r.r�map�min�max�warnings� warn_explicit� UserWarning)�argsrEr\Zopts�errrrrrrG�o�arcr8r<�_Z raw_timingsrYZtimingsZbestZworstrjr )r2rNrWrXr �main�s���     �         ����rr�__main__)N)r1rZrFr0�__all__rrCrD� perf_counterrr$rr!rrrrrrr@�exitr r r r �4s4  � �