NfdZgdZddlZddlZd dZd dZejje_ejje_GddejZd 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 /usr/lib/python3.11/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_stats2s'  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_stats6s--//   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.runctxasL   gv & & & LLNNNNDLLNNNN s <Ac| ||i||S#|wxYwr)rIr')rr;argskws rruncallzProfile.runcalljsG  4$$$ LLNNNNDLLNNNNs 2Ac.||Sr)rIr)s r __enter__zProfile.__enter__qs  rc.|dSr)r')rexc_infos r__exit__zProfile.__exit__us 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/zs6$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/| d5} t1| | d} dddn #1swxYwY| dddd} t5| | d|j|jnL#t8$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_modulemodnamerbrJrD)__file__rT __package__ __cached__)ossysrunpyroptparseraallow_interspersed_args add_optionsortedrsort_arg_dict_defaultargv print_usageexit parse_argsrcpathabspathlenrhrkinsertdirnamercompilereadrr BrokenPipeErrorstdouterrno)rqrrrsrrarbparseroptionsrLr0globsprognamefpexcs rmainrs IIIJJJLLLMMM%%%%%% \E \ & & &F%*F" dKi &666 dH6 Nv|9::<<< d, '888 8ABB<  ''))OWdCHQQQK"'//'/:: 4yy1}} > =D#.7EE AwH HOOArwx88 9 9 9h%% <rwwyy(F;; < < < < < < < < < < < < < < <%&#" E  4gow| D D D D   CJ HHSY          Ms*$GGGG11 H&;!H!!H&rD)Nr) rW__all___lsprofprofiler rrProfilerrr/rrTrXrrrs ' & & EEEE====n$ "*[[[[[g[[[~EEE888v zDFFFFFr