3 \4@sddlZddlZddlZddlZddddgZdZdZdZejZ e Z d Z d d Z Gd ddZd d e edfddZd d e eedfddZdddddZedkrejedS)NTimertimeitrepeat default_timerz i@Bz def inner(_it, _timer{init}): {setup} _t0 = _timer() for _i in _it: {stmt} _t1 = _timer() return _t1 - _t0 cCs|jddd|S)N  )replace)srcindentr /usr/lib64/python3.6/timeit.pyreindentPsrc@sLeZdZddedfddZd ddZefddZeefd d Z dd d Z dS)rpassNc Cs||_i}|dkrtn|}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__fs6       zTimer.__init__cCsJddl}ddl}|jdk r:t|jd|jjdtf|jt<|j|ddS)Nrr)file) linecache tracebackr lensplitrcache print_exc)r#r'r(r)r r r r-s   zTimer.print_excc CsBtjd|}tj}tjz|j||j}Wd|rr r r r rTs  "  rcCst||||j|S)N)rr)rrrr3r$r r r rscCst||||j||S)N)rr)rrrrr3r$r r r rs) _wrap_timerc s^|dkrtjdd}ddl}y(|j|ddddddd d d d g \}}Wn2|jk rx}zt|td dSd}~XnXt}dj|pd}d}g}t} d} d} dddd} dx|D]\} }| d8krt|}| d9kr|j || d:kr|| kr|} ntdtj ddS| d;kr0t|} | dkr0d} | dkr`t j }| d?kr| rxd7| d7} | d@krttd)d*dSqWdj|pd}ddl}tjjd|j|dk r||}t|||}|dkr(d}| rfd+d,}y|j|\}}Wn|jdSy|j| |}Wn|jdSt|}| rxtd-d)jfd.d/|Dtd0|d)d*|d|}| dk r| | }n>d1d/| jD}|jd2d3x|D]\}} ||krPqWtd4| ||| ft|}|d|}t|}||d5krZ|d|}ddl}|jd6||| ftd7ddS)ANr:rz n:u:s:r:tcpvhznumber=zsetup=zrepeat=timeclockZprocessverbosezunit=helpz#use -h/--help for command line helprrg@@g.A)usecZmsecZsecr-n--number-s--setup-u--unitz4Unrecognized unit. Please select usec, msec, or sec.)r'-r--repeat-t--time-c--clock-p --process-v --verbose-h--helpr)endcsd}t|j||ddS)Nz#{num} loops -> {secs:.{prec}g} secs)ZnumZsecsZprec)printr")r3r=msg) precisionr r r<@szmain..callbackz raw times:csg|]}d|fqS)z%.*gr ).0x)r`r r Oszmain..z %d loops,cSsg|]\}}||fqSr r )raZunitscaler r r rcUsT)reversezbest of %d: %.*g %s per looprztThe test results are likely unreliable. The worst time (%.*g %s) was more than four times slower than the best time.r)rKrL)rMrN)rOrP)rQrR)rSrT)rUrV)rWrX)rYrZ)r[r\)sysargvgetopterrorr^rjoinrCintr6stderrrErFZ process_time__doc__ospathinsertcurdirrr>r-rminitemssortmaxwarnings warn_explicit UserWarning)argsrDrhZoptserrrrr3rrrGZ time_unitZunitsoarnr9r<_r7ZbestrJrdZscalesZworstrvr )r`r mains                        r~__main__)N)r/rfrEr.__all__rrBrCZ perf_counterrr$rr!rrrrr~r?exitr r r r 5s(  y