a DOg@sdZgdZddlZddlZddlZdddZdddZejje_ejje_Gd d d ejZ d d Z d dZ e dkr|e dS)zUPython interface for the 'lsprof' profiler. Compatible with the 'profile' module. )runrunctxProfileNcCstt|||SN) _pyprofile_Utilsrr) statementfilenamesortr -/opt/alt/python39/lib64/python3.9/cProfile.pyrsrcCstt|||||Sr)rrrr)r globalslocalsr r r r r rsrc@sZeZdZdZdddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS)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). rcCs$ddl}|||dSNr)pstatsStatsZ strip_dirsZ sort_stats print_stats)selfr rr r r r)szProfile.print_statscCsLddl}t|d&}|||j|Wdn1s>0YdS)Nrwb)marshalopen create_statsdumpstats)rfilerfr r r dump_stats-s zProfile.dump_statscCs||dSr)disablesnapshot_statsrr r r r3szProfile.create_statsc Cs*|}i|_i}|D]P}t|j}|j}||j}|j}|j}i} | |t|j<||||| f|j|<q|D]}|j rlt|j}|j D]} z|t| j} Wnt yYqYn0| j}|| j}| j}| j}|| vr| |} || d7}|| d7}|| d7}|| d7}||||f| |<qqldS)Nr) ZgetstatsrlabelcodeZ callcountZ reccallcountZ inlinetimeZ totaltimeidZcallsKeyError) rentriesZ callersdictsentryfuncZncZccZttZctZcallersZsubentryprevr r r r7s>            zProfile.snapshot_statscCsddl}|j}||||Sr)__main____dict__r)rcmdr,dictr r r r]sz Profile.runcCs0|zt|||W|n |0|Sr)enableexecr)rr.rrr r r rbs zProfile.runctxcOs0|z||i|W|S|0dSr)r0r)rr*argskwr r r runcallks zProfile.runcallcCs ||Sr)r0r r r r __enter__rszProfile.__enter__cGs |dSr)r)rexc_infor r r __exit__vszProfile.__exit__N)r) __name__ __module__ __qualname____doc__rrrrrrr4r5r7r r r r rs & rcCs(t|trdd|fS|j|j|jfSdS)N~r) isinstancestr co_filenameco_firstlinenoco_name)r%r r r r${s  r$c Csddl}ddl}ddl}ddl}ddlm}d}||d}d|_|jdddd dd |jd d d ddt|j j d|jdddddd|j dds| | d|\}}||j dd<|jdur|j|j|_t|dkr|jrd} |j|dd} nh|d} |jd|j| t|  } t| | d} Wdn1sV0Y| dddd} zt| | d|j|jWn8ty} zd|_| | jWYd} ~ n d} ~ 00n| |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)rErFrGchoicesz-mmodule store_truezProfile a library module)rEactionrFrGr!r"z(run_module(modname, run_name='__main__')) run_modulemodnamer1r,)__file__r8 __package__ __cached__) ossysrunpyrZoptparserBZallow_interspersed_argsZ add_optionsortedrZsort_arg_dict_defaultargvZ print_usageexit parse_argsrDpathabspathlenrIrLinsertdirnameio open_codecompilereadrr BrokenPipeErrorstdouterrno)rQrRrSrrBrCparserZoptionsr2r%ZglobsZprognamefpexcr r r mains`          0$rgr,)Nr)Nr) r;__all__Z_lsprofr]ZprofilerrrZProfilerrr$rgr8r r r r s    _;