o ?Og4@s ddlZddlZddlZddlZgdZdZdZdZejZ e Z dZ ddZ Gd d d Zd d e edfd d Zd d e eedfddZdddddZedkrVeedSdS)N)Timertimeitrepeat default_timerz i@Bz def inner(_it, _timer{init}): {setup} _t0 = _timer() for _i in _it: {stmt} pass _t1 = _timer() return _t1 - _t0 cCs |ddd|S)N  )replace)srcindentr -/opt/alt/python310/lib64/python3.10/timeit.pyreindentPsrc@sNeZdZ ddedfddZd ddZefddZeefd d Z d d d Z dS)rpassNc Cs ||_i}|dur tn|}d}t|tr&t|td|d}t|d}nt|r7||d<|d7}d}d}ntdt|trNt||tdt|d }nt|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__fs8       zTimer.__init__cCsL ddl}ddl}|jdurt|jd|jdtf|jt<|j|ddS)Nrrfile) linecache tracebackr lensplitrcache print_exc)r#r(r)r*r r r r.s   zTimer.print_exccCsP td|}t}tz|||j}W|rt|S|r'twwN) itertoolsrgcZ isenabledZdisablerrZenable)r#numberitZgcoldZtimingr r r rs  z Timer.timeitcCs, g}t|D] }||}||q|Sr/)rangerappend)r#rr2ritr r r rs    z Timer.repeatcCsP d} dD]}||}||}|r||||dkr"||fSq|d9}q)NT)r9rg? )r)r#callbackr7jr2 time_takenr r r autoranges    zTimer.autoranger/) __name__ __module__ __qualname__rr&r.default_numberrdefault_repeatrr?r r r r rTs # rrcCs t|||||Sr/)rr)rrrr2r$r r r rsrcCs t||||||Sr/)rr)rrrrr2r$r r r rsr) _wrap_timerc s |dur tjdd}ddl}z ||dgd\}}Wn|jy9}zt|tdWYd}~dSd}~wwt}d|pBd}dg}t}d} dd d d d d d|D]Z\} } | dvrdt| | dvrm| | | dvr| vrx| n tdtj ddS| dvrt| }|dkrd}| dvrt j }| dvr| rd7| d7} | dvrtt dddSqXd|pd}ddl} tjd| j|dur||}t|||} dkrd}| rfdd}z | |\}Wn | YdS| rtz| |}Wn | YdSfdd}| r(tddt||tfd d!|D}t|}td"dkr?d#nd$|||ft|}t|}||d%krkddl}|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 |}nddD}|jdd|D] \}}||kr&nqd|||fS)NcSsg|]\}}||fqSr r ).0unitscaler r r Zsz-main..format_time..T)reversez%.*g %s)itemssort)dtrPrQZscales)rN time_unitunitsr r format_timeTs   zmain..format_timez raw times: %sz, csg|]}|qSr r )rOrV)r2r r rReszmain..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\ZoptserrrrrrrGoarcr8r<_Z raw_timingsrYZtimingsZbestZworstrjr )r2rNrWrXr mains      rr__main__r/)r1rZrFr0__all__rrCrD perf_counterrr$rr!rrrrrrr@exitr r r r s41