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 +/opt/alt/python39/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) itertoolsrgcZ isenabledZdisablerrZenable)r#numberitZgcoldZtimingr r r rs   z Timer.timeitcCs*g}t|D]}||}||q |Sr/)rangerappend)r#rr2ritr r r rs    z Timer.repeatcCsPd}dD]8}||}||}|r,||||dkr||fSq|d9}qdS)N)r9rg? )r)r#callbackr7jr2 time_takenr r r autoranges   zTimer.autorange)N)N) __name__ __module__ __qualname__rr&r.default_numberrdefault_repeatrr?r r r r rSs #  rrcCst|||||Sr/)rr)rrrr2r$r r r rsrcCst||||||Sr/)rr)rrrrr2r$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)'Nr9rz n:u:s:r:tcpvh) znumber=zsetup=zrepeat=timeZclockZprocessverbosezunit=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} secsr9sr)ZnumrKZsecsZprec)printr")r2r>msgZplural) 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)dtrPrQZscales)rN time_unitunitsr r format_timeSs   zmain..format_timez raw times: %sz, csg|] }|qSr r )rOrW)r2r r rRdrSzmain..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).)sysargvgetopterrorrLrjoinrDintr5stderrrF process_time__doc__ospathinsertcurdirrr?r.rmapminmaxwarnings warn_explicit UserWarning)argsrEr]ZoptserrrrrrrGoardr8r<_Z raw_timingsrZZtimingsZbestZworstrkr )r2rNrXrYr mains             rs__main__)N)r1r[rFr0__all__rrCrD perf_counterrr$rr!rrrrrsr@exitr r r r 4s.