\ddZgdZddlZddlZddlZd dZd dZejje_ejje_GddejZ d Z d Z e d kr e dSdS) zUPython interface for the 'lsprof' profiler. Compatible with the 'profile' module. )runrunctxProfileNc^tjt|||SN) _pyprofile_Utilsrr) statementfilenamesorts ..\python\lib\cProfile.pyrrs%  W % % ) ))Xt D DDcbtjt|||||Sr)r r rr)r globalslocalsr r s rrrs0  W % % , ,Y-5t = ==rcJeZdZdZd dZdZdZdZdZdZ d Z d Z d Z d S)ra`Profile(timer=None, timeunit=None, subcalls=True, builtins=True) Builds a profiler object using the specified timer function. The default timer is a fast built-in one based on real time. For custom timer functions returning integers, timeunit can be a float specifying a scale (i.e. how long each integer unit is, in seconds). rcddl}|||dSNr)pstatsStats strip_dirs sort_stats print_stats)selfr rs rrzProfile.print_stats)sI  T%%''22488DDFFFFFrcddl}t|d5}|||j|ddddS#1swxYwYdS)Nrwb)marshalopen create_statsdumpstats)rfilerfs r dump_statszProfile.dump_stats-s $   (       LLQ ' ' ' ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s0AAAcV||dSr)disablesnapshot_statsrs rr zProfile.create_stats3s'  rcl|}i|_i}|D]]}t|j}|j}||jz }|j}|j}i} | |t|j<||||| f|j|<^|D]}|j rt|j}|j D]} |t| j} n#t$rY*wxYw| j}|| jz }| j}| j}|| vr4| |} || dz }|| dz }|| dz }|| dz }||||f| |<dS)Nr) getstatsr"labelcode callcount reccallcount inlinetime totaltimeidcallsKeyError) rentries callersdictsentryfuncncccttctcallerssubentryprevs rr(zProfile.snapshot_stats7s--//   7 7E$$DBe((B!BBG+2LEJ (!2r2w6DJt   3 3E{ 3UZ(( % 33H!".r(-/@/@"A#!!! !!+Bh33B!,B!+Bw&t}d1g d1g d1g d1g $&BNGDMM% 3 3s'C CCcFddl}|j}||||Sr)__main____dict__r)rcmdrDdicts rrz Profile.run]s) {{3d+++rc| t||||n#|wxYw|Sr)enableexecr')rrFrrs rrzProfile.runctxbsL   gv & & & LLNNNNDLLNNNN s <Ac| ||i||S#|wxYwr)rIr')rr;argskws rruncallzProfile.runcallksG  4$$$ LLNNNNDLLNNNNs 2Ac.||Sr)rIr)s r __enter__zProfile.__enter__rs  rc.|dSr)r')rexc_infos r__exit__zProfile.__exit__vs rN)r) __name__ __module__ __qualname____doc__rr%r r(rrrNrPrSrrrrsGGGG((( !3!3!3L,,, rrc^t|trdd|fS|j|j|jfS)N~r) isinstancestr co_filenameco_firstlinenoco_name)r0s rr/r/{s6$EQ~ $"5t|DDrc ddl}ddl}ddl}ddl}ddlm}d}||}d|_|dddd d |d d d ddt|j j |ddddd|j dds)| | d|\}}||j dd<|j$|j|j|_t%|dkr|jrd} |j|dd} n|d} |jd|j| t/j| 5} t3| | d} dddn #1swxYwY| dddd} t7| | d|j|jnL#t:$r+} d|_| | jYd} ~ nd} ~ wwxYw| |S)Nr) OptionParserzNcProfile.py [-o output_file_path] [-s sort] [-m module | scriptfile] [arg] ...)usageFz-oz --outfileoutfilezSave stats to )desthelpdefaultz-sz--sortr z?Sort order when printing to stdout, based on pstats.Stats classr,)rdrerfchoicesz-mmodule store_truezProfile a library module)rdactionrerfr+z(run_module(modname, run_name='__main__')) run_modulemodnamerJrD)__file__rT __package__ __cached__) ossysrunpyroptparseraallow_interspersed_args add_optionsortedrsort_arg_dict_defaultargv print_usageexit parse_argsrcpathabspathlenrhrkinsertdirnameio open_codecompilereadrr BrokenPipeErrorstdouterrno)rprqrrrrarbparseroptionsrLr0globsprognamefpexcs rmainrs IIIJJJLLLMMM%%%%%% \E \ & & &F%*F" dKi &666 dH6 Nv|9::<<< d, '888 8ABB<  ''))OWdCHQQQK"'//'/:: 4yy1}} > =D#.7EE AwH HOOArwx88 9 9 9h'' <2rwwyy(F;; < < < < < < < < < < < < < < <%&#" E  4gow| D D D D   CJ HHSY          Ms*$GG  G G66 H+!H&&H+rD)Nr) rW__all___lsprofrprofiler rrProfilerrr/rrTrXrrrs ' & &  EEEE====n$ "*[[[[[g[[[~EEE888v zDFFFFFr