a DOg4@sddlZddlZddlZddlZgdZdZdZdZejZ e Z dZ ddZ Gd d d Zd d e edfd d Zd d e eedfddZdddddZedkreedS)N)Timertimeitrepeat default_timerz i@Bz def inner(_it, _timer{init}): {setup} _t0 = _timer() for _i in _it: {stmt} _t1 = _timer() return _t1 - _t0 cCs|ddd|S)N  )replace)srcindentr /usr/lib64/python3.9/timeit.pyreindentOsrc@sLeZdZddedfddZd ddZefddZeefd d Z dd d Z dS)rpassNc Cs||_i}|durtn|}d}t|trJt|td|d}t|d}n*t|rl||d<|d7}d}d}ntdt|trt||tdt|d }n&t|r||d <|d 7}d }ntd t j |||d} | |_ t| td} t | |||d|_ dS)Nexecr_setupz, _setup=_setupz_setup()z&setup is neither a string nor callableZ_stmtz , _stmt=_stmtz_stmt()z%stmt is neither a string nor callable)stmtsetupinitinner)timer_globals isinstancestrcompiledummy_src_namercallable ValueErrortemplateformatr rr) selfrrrglobalsZlocal_nsZ global_nsrZ stmtprefixr coder r r __init__es6       zTimer.__init__cCsJddl}ddl}|jdur:t|jd|jdtf|jt<|j|ddS)Nrrfile) linecache tracebackr lensplitrcache print_exc)r#r(r)r*r r r r.s   zTimer.print_exccCsNtd|}t}tz|||j}W|rJtn|rHt0|SN) itertoolsrgc isenableddisablerrenable)r#numberitZgcoldZtimingr r r rs   z Timer.timeitcCs*g}t|D]}||}||q |Sr/)rangerappend)r#rr5ritr r r rs    z Timer.repeatcCsPd}dD]8}||}||}|r,||||dkr||fSq|d9}qdS)N)r<rg? )r)r#callbackr:jr5 time_takenr r r autoranges   zTimer.autorange)N)N) __name__ __module__ __qualname__rr&r.default_numberrdefault_repeatrrBr r r r rSs #  rrcCst|||||Sr/)rr)rrrr5r$r r r rsrcCst||||||Sr/)rr)rrrrr5r$r r r rsr) _wrap_timerc s|durtjdd}ddl}z||dgd\}}Wn8|jyp}zt|tdWYd}~dSd}~00t}d|pd}dg}t}d} dd d d d d d|D]\} } | dvrt| | dvr| | | dvr| vr| ntdtj ddS| dvr$t| }|dkr$d}| dvr4t j }| dvrT| rLd7| d7} | dvrtt dddSqd|p~d}ddl} tjd| j|dur||}t|||} dkr d}| rևfdd}z| |\}Wn| YdS0| r tz| |}Wn| YdS0fdd}| rhtddt||tfd d!|D}t|}td"dkrd#nd$|||ft|}t|}||d%krddl}|d&||||ftd$ddS)'Nr<rz n:u:s:r:tcpvh) znumber=zsetup=zrepeat=timeZclockprocessverbosezunit=helpz#use -h/--help for command line helpr=rrg& .>gư>gMbP?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|ddS)Nz%{num} loop{s} -> {secs:.{prec}g} secsr<sr)numrOZsecsZprec)printr")r5rAmsgplural) precisionr r r??s zmain..callbackcs`}|dur|}n8ddD}|jdd|D]\}}||kr8qNq8d|||fS)NcSsg|]\}}||fqSr r ).0unitscaler r r Yz-main..format_time..T)reversez%.*g %s)itemssort)dtrVrWZscales)rT time_unitunitsr r format_timeSs   zmain..format_timez raw times: %sz, csg|] }|qSr r )rUr])r5r r rXdrYzmain..z"%d loop%s, best of %d: %s per looprOrrztThe test results are likely unreliable. The worst time (%s) was more than four times slower than the best time (%s).)sysargvgetopterrorrQrjoinrGintr8stderrrI process_time__doc__ospathinsertcurdirrrBr.rmapminmaxwarnings warn_explicit UserWarning)argsrHrcZoptserrrrrrrKoarjr;r?_Z raw_timingsr`ZtimingsZbestZworstrqr )r5rTr^r_r mains             ry__main__)N)r1rarIr0__all__rrFrG perf_counterrr$rr!rrrrryrCexitr r r r 4s.