U e5dbã@s~dddgZddlZddlZddlZddd„Zddd„Zejje_ejje_Gdd„dejƒZ d d „Z d d „Z e d krze ƒdS)ÚrunÚrunctxÚProfileéNéÿÿÿÿcCst t¡ |||¡S©N)Ú _pyprofileÚ_Utilsrr)Ú statementÚfilenameÚsort©r ú /usr/lib64/python3.8/cProfile.pyrscCst t¡ |||||¡Sr)rrrr)r ÚglobalsÚlocalsr r r r r rsÿc@s\eZdZddd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z de _ dd„Z dd„Z dS)rrcCs$ddl}| |¡ ¡ |¡ ¡dS©Nr)ÚpstatsÚStatsZ strip_dirsZ sort_statsÚ print_stats)Úselfr rr r r r)szProfile.print_statsc Cs8ddl}t|dƒ�}| ¡| |j|¡W5QRXdS)NrÚwb)ÚmarshalÚopenÚ create_statsÚdumpÚstats)rÚfilerÚfr r r Ú dump_stats-s zProfile.dump_statscCs| ¡| ¡dSr)ÚdisableÚsnapshot_stats©rr 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 k r´Yq†YnX| j}|| j}| j}| j}|| k�r| |} || d7}|| d7}|| d7}|| d7}||||f| |<q†qldS)Nrééé) ZgetstatsrÚlabelÚcodeZ callcountZ reccallcountZ inlinetimeZ totaltimeÚidZcallsÚKeyError) rÚentriesZ callersdictsÚentryÚfuncZncZccZttZctZcallersZsubentryÚprevr r r r7s>           zProfile.snapshot_statscCsddl}|j}| |||¡Sr)Ú__main__Ú__dict__r)rÚcmdr,Údictr r r r]sz Profile.runcCs(| ¡zt|||ƒW5| ¡X|Sr)ÚenablerÚexec)rr.rrr r r rbs  zProfile.runctxcOs”t|ƒdkr|^}}}nV|s&tdƒ‚nHd|krZ| d¡}|^}}ddl}|jdtdd�ntdt|ƒdƒ‚| ¡z|||ŽW¢S| ¡XdS) Nr"z:descriptor 'runcall' of 'Profile' object needs an argumentr*rz0Passing 'func' as keyword argument is deprecated)Ú stacklevelz7runcall expected at least 1 positional argument, got %dr!)ÚlenÚ TypeErrorÚpopÚwarningsÚwarnÚDeprecationWarningr0r)ÚargsÚkwrr*r6r r r Úruncallks&    ÿ ÿzProfile.runcallz($self, func, /, *args, **kw)cCs | ¡|Sr)r0r r r r Ú __enter__‚szProfile.__enter__cGs | ¡dSr)r)rÚexc_infor r r Ú__exit__†szProfile.__exit__N)r) Ú__name__Ú __module__Ú __qualname__rrrrrrr;Ú__text_signature__r<r>r r r r rs & cCs(t|tƒrdd|fS|j|j|jfSdS)Nú~r)Ú isinstanceÚstrÚ co_filenameÚco_firstlinenoÚco_name)r%r r r r$‹s  r$c Cs¶ddl}ddl}ddl}ddl}ddlm}d}||d�}d|_|jdddd dd �|jd d d ddt|j j ƒd�|jdddddd�|j dd…s¦|  ¡|  d¡| ¡\}}||j dd…<|jdk rÚ|j |j¡|_t|ƒdk�rª|j�rd} |j|ddœ} nR|d} |j d|j | ¡¡t | ¡�} t|  ¡| dƒ} W5QRX| ddddœ} zt| | d|j|jƒWn6tk �r¦} zd|_|  | j¡W5d} ~ XYnXn|  ¡|S)Nr)Ú OptionParserzNcProfile.py [-o output_file_path] [-s sort] [-m module | scriptfile] [arg] ...)ÚusageFz-oz --outfileÚoutfilezSave stats to )ÚdestÚhelpÚdefaultz-sz--sortr z?Sort order when printing to stdout, based on pstats.Stats classr)rLrMrNÚchoicesz-mÚmoduleÚ store_truezProfile a library module)rLÚactionrMrNr!r"z(run_module(modname, run_name='__main__'))Ú run_moduleÚmodnamer1r,)Ú__file__r?Ú __package__Ú __cached__) ÚosÚsysÚrunpyrZoptparserIZallow_interspersed_argsZ add_optionÚsortedrZsort_arg_dict_defaultÚargvZ print_usageÚexitÚ parse_argsrKÚpathÚabspathr3rPrSÚinsertÚdirnameÚioÚ open_codeÚcompileÚreadrr ÚBrokenPipeErrorÚstdoutÚerrno)rXrYrZrrIrJÚparserZoptionsr9r%ZglobsZprognameÚfpÚexcr r r Úmain“sd   ÿ  ý ÿ   þ ü rmr,)Nr)Nr) Ú__all__Z_lsprofrcZprofilerrrÚ__doc__ZProfilerrr$rmr?r r r r Ús     o;