ó
    F\hß  ã                   ó  • S r / SQrSSKrSSKrSSKrSSKrSS jrSS jr	\R                  R                   \l         \R                  R                   \	l          " S S\R                  5      rS rS	 r\S
:X  a  \" 5         gg)zRPython interface for the 'lsprof' profiler.
Compatible with the 'profile' module.
)ÚrunÚrunctxÚProfileé    Nc                 óV   • [         R                  " [        5      R                  XU5      $ ©N)Ú
_pyprofileÚ_Utilsr   r   )Ú	statementÚfilenameÚsorts      Ú/usr/lib/python3.13/cProfile.pyr   r      s    € Ü×ÒœWÓ%×)Ñ)¨)¸tÓDÐDó    c                 óX   • [         R                  " [        5      R                  XUX45      $ r   )r   r	   r   r   )r
   ÚglobalsÚlocalsr   r   s        r   r   r      s'   € Ü×ÒœWÓ%×,Ñ,¨YÀØ-5ó=ð =r   c                   óR   • \ rS rSrSrSS jrS rS rS rS r	S r
S	 rS
 rS rSrg)r   é   aH  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).
c                 ó°   • SS K n[        U[        5      (       d  U4nUR                  U 5      R	                  5       R
                  " U6 R                  5         g ©Nr   )ÚpstatsÚ
isinstanceÚtupleÚStatsÚ
strip_dirsÚ
sort_statsÚprint_stats)Úselfr   r   s      r   r   ÚProfile.print_stats*   sB   € ÛÜ˜$¤×&Ñ&Ø�7ˆDØ�‰�TÓ×%Ñ%Ó'×2Ò2°DÐ9×EÑEÕGr   c                 ó°   • SS K n[        US5       nU R                  5         UR                  U R                  U5        S S S 5        g ! , (       d  f       g = f)Nr   Úwb)ÚmarshalÚopenÚcreate_statsÚdumpÚstats)r   Úfiler!   Úfs       r   Ú
dump_statsÚProfile.dump_stats0   s;   € ÛÜ�$˜Ô Ø×ÑÔØ�L‰L˜Ÿ™ QÔ'÷ ×Öús   ‘-AÁ
Ac                 óD   • U R                  5         U R                  5         g r   )ÚdisableÚsnapshot_stats©r   s    r   r#   ÚProfile.create_stats6   s   € Ø�‰ŒØ×ÑÕr   c                 óÂ  • U R                  5       n0 U l        0 nU Hu  n[        UR                  5      nUR                  nXSR
                  -
  nUR                  nUR                  n0 n	X’[        UR                  5      '   XeXxU	4U R                  U'   Mw     U H´  nUR                  (       d  M  [        UR                  5      nUR                   Hy  n
 U[        U
R                  5         n	U
R                  nXZR
                  -
  nU
R                  nU
R                  nXI;   a   X”   nX[S   -  nXkS   -  nX{S   -  nX‹S   -  nXVXx4X”'   M{     M¶     g ! [         a     M�  f = f)Nr   é   é   é   )Úgetstatsr%   ÚlabelÚcodeÚ	callcountÚreccallcountÚ
inlinetimeÚ	totaltimeÚidÚcallsÚKeyError)r   ÚentriesÚcallersdictsÚentryÚfuncÚncÚccÚttÚctÚcallersÚsubentryÚprevs               r   r,   ÚProfile.snapshot_stats:   sW  € Ø—-‘-“/ˆØˆŒ
ØˆãˆEÜ˜Ÿ™Ó$ˆDØ—‘ˆBØ×(Ñ(Ñ(ˆBØ×!Ñ!ˆBØ—‘ˆBØˆGØ+2œ˜EŸJ™J›Ñ(Ø! r¨wÐ6ˆD�J‰J�tÓñ ó ˆEØ�{�{‰{Ü˜UŸZ™ZÓ(�Ø %§¤�Hð!Ø".¬r°(·-±-Ó/@Ñ"A˜ð "×+Ñ+�BØ×3Ñ3Ñ3�BØ!×,Ñ,�BØ!×+Ñ+�BØ“Ø&™}˜Ø 1™g™˜Ø 1™g™˜Ø 1™g™˜Ø 1™g™˜Ø$&¨B N�G“Mó !,ò øô $ó !Ú ð!ús   ÃEÅ
EÅEc                 óF   • SS K nUR                  nU R                  XU5      $ r   )Ú__main__Ú__dict__r   )r   ÚcmdrJ   Údicts       r   r   ÚProfile.run`   s!   € ÛØ× Ñ ˆØ�{‰{˜3 dÓ+Ð+r   c                 óŠ   • U R                  5          [        XU5        U R                  5         U $ ! U R                  5         f = fr   )ÚenableÚexecr+   )r   rL   r   r   s       r   r   ÚProfile.runctxe   s5   € Ø�‰Œð	Ü�˜vÔ&à�L‰LŒNØˆøð �L‰L�Nús	   ’0 °Ac                ó~   • U R                  5          U" U0 UD6U R                  5         $ ! U R                  5         f = fr   )rP   r+   )r   r@   ÚargsÚkws       r   ÚruncallÚProfile.runcalln   s0   € Ø�‰Œð	Ù˜Ð$ Ñ$à�L‰L�NøˆD�L‰L�Nús   ’* ª<c                 ó&   • U R                  5         U $ r   )rP   r-   s    r   Ú	__enter__ÚProfile.__enter__u   s   € Ø�‰ŒØˆr   c                 ó$   • U R                  5         g r   )r+   )r   Úexc_infos     r   Ú__exit__ÚProfile.__exit__y   s   € Ø�‰�r   )r%   N)éÿÿÿÿ)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r(   r#   r,   r   r   rV   rY   r]   Ú__static_attributes__© r   r   r   r      s6   † ñôHò(òò!3òL,ò
òòõr   r   c                 ó|   • [        U [        5      (       a  SSU 4$ U R                  U R                  U R                  4$ )NÚ~r   )r   ÚstrÚco_filenameÚco_firstlinenoÚco_name)r5   s    r   r4   r4   ~   s8   € Ü�$œ×ÑØ�Q˜ˆ~Ðà× Ñ  $×"5Ñ"5°t·|±|ÐDÐDr   c            
      óà  • SS K n SS KnSS KnSS KnSSKJn  SnU" US9nSUl        UR                  SSSS	S S
9  UR                  SSSSS[        UR                  R                  5      S9  UR                  SSSSSS9  UR                  SS  (       d!  UR                  5         UR                  S5        UR                  5       u  pxX�R                  S S & UR                  b*  U R                   R#                  UR                  5      Ul        [%        U5      S:”  aû  UR&                  (       a  Sn	UR(                  US   S.n
O¯US   nUR                   R+                  SU R                   R-                  U5      5        [.        R0                  " U5       n[3        UR5                  5       US5      n	S S S 5        [6        R8                  R;                  SS US9nUUR<                  UR>                  S S S.n
 [A        W	U
S UR                  URB                  5        U$ UR                  5         U$ ! , (       d  f       N�= f! [D         a-  nS Ul#        UR                  URH                  5         S nAU$ S nAff = f)Nr   )ÚOptionParserzNcProfile.py [-o output_file_path] [-s sort] [-m module | scriptfile] [arg] ...)ÚusageFz-oz	--outfileÚoutfilezSave stats to <outfile>)ÚdestÚhelpÚdefaultz-sz--sortr   z?Sort order when printing to stdout, based on pstats.Stats classr1   )rq   rr   rs   Úchoicesz-mÚmoduleÚ
store_truezProfile a library module)rq   Úactionrr   rs   r0   z(run_module(modname, run_name='__main__'))Ú
run_moduleÚmodnamerQ   rJ   )ÚnameÚloaderÚorigin)Ú__spec__Ú__file__r`   Ú__package__Ú
__cached__)%ÚosÚsysÚrunpyr   Úoptparsern   Úallow_interspersed_argsÚ
add_optionÚsortedr   Úsort_arg_dict_defaultÚargvÚprint_usageÚexitÚ
parse_argsrp   ÚpathÚabspathÚlenru   rx   ÚinsertÚdirnameÚioÚ	open_codeÚcompileÚreadÚ	importlibÚ	machineryÚ
ModuleSpecr|   rz   r   r   ÚBrokenPipeErrorÚstdoutÚerrno)r�   r‚   rƒ   r   rn   ro   ÚparserÚoptionsrT   r5   ÚglobsÚprognameÚfpÚspecÚexcs                  r   Úmainr£   †   s0  € ÛÛÛÛÝ%Ø\€EÙ Ñ&€FØ%*€FÔ"Ø
×Ñ�d˜K¨iØ&°ð ñ 6à
×Ñ�d˜H¨6ØNØÜ�v—|‘|×9Ñ9Ó:ð ñ <ð ×Ñ�d °,Ø'°ð ñ 8ð �8‰8�A�BŽ<Ø×ÑÔØ�‰�Œà×'Ñ'Ó)�O€WØ‡H�H‰Q€Kð ‡�Ñ"ØŸ'™'Ÿ/™/¨'¯/©/Ó:ˆŒä
ˆ4ƒy�1ƒ}Ø�>�>Ø=ˆDà#×.Ñ.Ø ™7ñ‰Eð
 ˜A‘wˆHØ�H‰H�O‰O˜A˜rŸw™wŸ™¨xÓ8Ô9Ü—’˜hÔ'¨2Ü˜rŸw™w›y¨(°FÓ;�÷ (ä×&Ñ&×1Ñ1°zÈ$Ø9Að 2ð CˆDð !Ø ŸK™KØ ŸI™IØ#Ø"ñˆEð	 Ü�4˜  g§o¡o°w·|±|ÔDð €Mð 	×ÑÔØ€M÷' (Õ'ûô ó 	 àˆCŒJØ�H‰H�S—Y‘Y×Ðð €Mûð	 ús$   ÆH%Ç.#H6 È%
H3È6
I-É "I(É(I-rJ   )Nr_   )rd   Ú__all__Ú_lsprofÚimportlib.machineryr–   r’   Úprofiler   r   r   ÚProfilerr   r4   r£   r`   rf   r   r   Ú<module>r©      sƒ   ðñò '€ã Û Û 	Û ô
Eô=ð �n‰n×$Ñ$€„Ø×"Ñ"×*Ñ*€„ô]ˆg×Ñô ]òBEò;ð| ˆzÓÙ…Fð r   