
    -hh4                         S SK r S SKrS SKrS SKr/ SQrSrSrSr\R                  r	\
rSrS r " S S	5      rS
S
\	\S4S jrS
S
\	\\S4S jrSSS.S jjr\S:X  a  \R&                  " \" 5       5        gg)    N)Timertimeitrepeatdefault_timerz<timeit-src>i@B    z
def inner(_it, _timer{init}):
    {setup}
    _t0 = _timer()
    for _i in _it:
        {stmt}
        pass
    _t1 = _timer()
    return _t1 - _t0
c                 2    U R                  SSSU-  -   5      $ )N
 )replace)srcindents     //opt/python-3.13.8/usr/lib/python3.13/timeit.pyreindentr   Q   s    ;;tTC&L011    c                   T    \ rS rSrSS\S4S jrS
S jr\4S jr\	\4S jr
S
S jrS	rg)r   V   passNc                 2   X0l         0 nUc
  [        5       OUnSn[        U[        5      (       a#  [	        U[
        S5        US-   n[        US5      nO)[        U5      (       a  X%S'   US-  nSnSnO[        S5      e[        U[        5      (       a   [	        X-   [
        S5        [        US	5      nO'[        U5      (       a  XS
'   US-  nSnO[        S5      e[        R                  XUS9n	Xl        [	        U	[
        S5      n
[        XU5        US   U l        g )N execr	      _setupz, _setup=_setupz_setup()z&setup is neither a string nor callable   _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   globalslocal_ns	global_nsr   
stmtprefixr   codes              r   __init__Timer.__init__h   s    
")/HJw	eS!!E>62JUA&Ee__!&X%%DJEEFFdC  J%~v>D!$Dd^^ $WO#DDDEEoo44o@sNF3Th'g&
r   c                     SS K nSS KnU R                  bG  [        U R                  5      S U R                  R	                  S5      [
        4UR                  [
        '   UR                  US9  g )Nr   r	   file)	linecache	tracebackr   lensplitr$   cache	print_exc)r)   r3   r4   r5   s       r   r9   Timer.print_exc   sU    " 	$88/2488}/3/3xx~~d/C/=/?IOON+ 	&r   c                 <   [         R                  " S U5      n[        R                  " 5       n[        R                  " 5          U R                  X R                  5      nU(       a  [        R                  " 5         U$ ! U(       a  [        R                  " 5         f f = fN)	itertoolsr   gc	isenableddisabler   r   enable)r)   numberitgcoldtimings        r   r   Timer.timeit   sg     dF+


	ZZJJ/F		 		 s   A< <Bc                 r    / n[        U5       H%  nU R                  U5      nUR                  U5        M'     U$ r<   )ranger   append)r)   r   rB   rits         r   r   Timer.repeat   s7    ( vAF#AHHQK  r   c                     Sn S H2  nX#-  nU R                  U5      nU(       a  U" XE5        US:  d  M/  XE4s  $    US-  nM?  )N   )rO      r   g?
   )r   )r)   callbackrK   jrB   
time_takens         r   	autorangeTimer.autorange   sW     ![[0
V0$"//  GA r   )r   r   r   r<   )__name__
__module____qualname____firstlineno__r   r/   r9   default_numberr   default_repeatr   rU   __static_attributes__ r   r   r   r   V   s4    $ #&!'F'6 + ( +> 4r   r   r   c                 8    [        XX$5      R                  U5      $ r<   )r   r   )r   r   r   rB   r*   s        r   r   r      s     e-44V<<r   c                 8    [        XX%5      R                  X45      $ r<   )r   r   )r   r   r   r   rB   r*   s         r   r   r      s     e-44VDDr   )_wrap_timerc          	        ^^^ U c  [         R                  SS  n SS Kn UR                  U S/ SQ5      u  p0[
        nSR                  U 5      =(       d    SnSn/ n[        n	Sn
S mS	S
SSS.mSmU H  u  pUS;   a  [        U5      nUS;   a  UR                  U5        US;   a#  UT;   a  UmO[	        S[         R                  S9    gUS;   a  [        U5      n	U	S::  a  Sn	US;   a  [        R                  nUS;   a  U
(       a  TS-  mU
S-  n
US;   d  M  [	        [        SS9    g   SR                  U5      =(       d    SnSS Kn[         R                  R!                  SUR"                  5        Ub  U" U5      n[%        XhU5      nUS:X  a5  S nU
(       a  U4S jn UR'                  U5      u  nnU
(       a
  [	        5          UR+                  X5      nUUU4S jnU
(       a1  [	        SSR                  [-        UU5      5      -  5        [	        5         U Vs/ s H  nUU-  PM
     nn[/        U5      n[	        SXwS:w  a  SOS U	U" U5      4-  5        [/        U5      n[1        U5      nUUS!-  :  a1  SS KnUR5                  S"U" U5      < S#U" U5      < S$3[6        S S5        g ! UR                   a   n[	        U5        [	        S5         S nAgS nAff = f!   UR)                  5          g= f!   UR)                  5          g= fs  snf )%NrO   r   zn:u:s:r:pvh)znumber=zsetup=zrepeat=processverbosezunit=helpz#use -h/--help for command line helprP   r	   r   g&.>gư>gMbP?g      ?)nsecusecmsecsec   )z-nz--number)z-sz--setup)z-uz--unitz:Unrecognized unit. Please select nsec, usec, msec, or sec.r2   )z-rz--repeat)z-pz	--process)z-vz	--verbose)z-hz--helpr
   )endc           	      Z   > SnU S:g  n[        UR                  X(       a  SOSUTS95        g )Nz%{num} loop{s} -> {secs:.{prec}g} secsrO   sr   )numrm   secsprec)printr(   )rB   rT   msgplural	precisions       r   rR   main.<locals>.callbackD  s8    = A+cjjVfs"&0y ! B Cr   c                    > TnUb  TU   nOFTR                  5        VVs/ s H  u  pX!4PM
     nnnUR                  SS9  U H  u  p!X:  d  M    O   STU W-  W4-  $ s  snnf )NT)reversez%.*g %s)itemssort)dtunitscalescalesrt   	time_unitunitss       r   format_timemain.<locals>.format_timeX  su    $KE7<{{}E}um}FEKKK%%;  & IrEz4888 Fs   Azraw times: %sz, z"%d loop%s, best of %d: %s per looprm   r   r   z8The test results are likely unreliable. The worst time (z6) was more than four times slower than the best time (z).)sysargvgetopterrorrq   r   joinr\   intrI   stderrtimeprocess_time__doc__ospathinsertcurdirr   rU   r9   r   mapminmaxwarningswarn_explicitUserWarning)argsra   r   optserrr   r   rB   r   r   rd   oar   rL   rR   _raw_timingsr   rz   timingsbestworstr   rt   r~   r   s                           @@@r   mainr      s   " |xx|]]4$KL
 E99T?$fDFEFGI4cBEI""VF!!LLO  Ez	R::'""VF{##%%E##Q	qLG  's#1 2 IIe&E
 HHOOAryy!E"d5!A{C
	H-IFA
 Ghhv.
9 o		#k;*G HHI%01[rrF{[G1w<D	
.aKSR[&(( ) w<DLEq #.e"4k$6G I  +B		3
 W << c
34z	KKM	& 2s5   J! K  K+ L!K1KKK(+K?__main__r<   )r>   r=   r   r   __all__r$   r[   r\   perf_counterr   r*   r    r'   r   r   r   r   r   rW   exitr^   r   r   <module>r      s   h 
  
 
8!!
	2
Q Qh fM $= fM EC4 CL zHHTV r   