+
    iF  c                   s^   ^ RI HtHt ^ RIHt ^ RIt^ RIt^ RIt^ RI	t	^ RI
5 ^ RI
HtHt R t ! R R4      t ! R	 R
4      tR t] ! R R4      4       t] ! R R]4      4       tR t ! R R4      t ! R R]4      tR t ! R R4      t ! R R]4      t ! R R]4      t ! R R4      tR tR# )    )SequenceIterable)total_orderingN)Z*)_get_object_traceback_get_tracesc                 s   R Fz  p\        V 4      ^d8  d(   VR 8w  d!   V'       d   RW3,          u # RW3,          u # \        V 4      R	8  g   VR8X  d!   V'       d   RW3,          u # RW3,          u # V R,          p K|  	  R# )
BTiBz%+.1f %sz%.1f %si   z%+.0f %sz%.0f %sN)r   ZKiBZMiBZGiBr   i (  )abs)sizeZsignZunit   && $/usr/lib64/python3.14/tracemalloc.py_format_sizer      sr    1t9s?ts{!TL00 D<//t9y DEM!TL00 D<// 2    c                   sH   a  ] tR t^t o R	tR tR tR tR tR t	R t
RtV tR# )
	Statisticc                s*    Wn         W n        W0n        R # N	tracebackr	   count)selfr   r	   r   s   &&&&r   __init__ZStatistic.__init__%   s    "	
r   c                sZ    \        V P                  V P                  V P                  34      # r   )hashr   r	   r   r      &r   __hash__ZStatistic.__hash__*   s     T^^TYY

;<<r   c                s    \        V\        4      '       g   \        # V P                  VP                  8H  ;'       d;    V P                  VP                  8H  ;'       d    V P
                  VP
                  8H  # r   )
isinstancer   NotImplementedr   r	   r   r   Zother   &&r   __eq__ZStatistic.__eq__-   s^    %++!!%//1 . .II+. .JJ%++-	/r   c                s    R V P                   \        V P                  R4      V P                  3,          pV P                  '       d8   V P                  V P                  ,          pVR\        VR4      ,          ,          pV# )z%s: size=%s, count=%iF, average=%s)r   r   r	   r   r   ZtextZaverage   &  r   __str__ZStatistic.__str__4   se    'NN E2JJ   :::ii$**,GN\'5%AAADr   c                sV    R V P                   V P                  V P                  3,          # )z)<Statistic traceback=%r size=%i count=%i>r   r   r   r   __repr__ZStatistic.__repr__>   s%    ;>>499djj9: 	;r   c                sH    V P                   V P                  V P                  3# r   )r	   r   r   r   r   r   	_sort_keyZStatistic._sort_keyB   s    		4::t~~66r   )r   r	   r   Nr   __name__
__module____qualname____firstlineno__	__slots__r   r   r   r!   r"   r#   __static_attributes____classdictcell____classdict__   @r   r   r      s/     
 /I
=/;7 7r   r   c                   sH   a  ] tR t^Ft o R	tR tR tR tR tR t	R t
RtV tR# )
StatisticDiffc                sB    Wn         W n        W0n        W@n        WPn        R # r   r   r	   	size_diffr   
count_diff)r   r   r	   r1   r   r2   s   &&&&&&r   r   ZStatisticDiff.__init__M   s    "	"
$r   c                s    \        V P                  V P                  V P                  V P                  V P
                  34      # r   )r   r   r	   r1   r   r2   r   r   r   r   ZStatisticDiff.__hash__T   s3    T^^TYYZZ2 3 	3r   c                st   \        V\        4      '       g   \        # V P                  VP                  8H  ;'       d}    V P                  VP                  8H  ;'       d\    V P
                  VP
                  8H  ;'       d;    V P                  VP                  8H  ;'       d    V P                  VP                  8H  # r   )r   r/   r   r   r	   r1   r   r2   r   r   r   r   ZStatisticDiff.__eq__X   s    %//!!%//1 8 8II+8 8NNeoo58 8 JJ%++-8 8 OOu'7'77		9r   c                s@   R V P                   \        V P                  R4      \        V P                  R4      V P                  V P
                  3,          pV P                  '       d8   V P                  V P                  ,          pVR\        VR4      ,          ,          pV# )z %s: size=%s (%s), count=%i (%+i)FTr   )r   r   r	   r1   r   r2   r   r    r   r!   ZStatisticDiff.__str__a   sz    2>>		515::??	$$ :::ii$**,GN\'5%AAADr   c                s    R V P                   V P                  V P                  V P                  V P                  3,          # )z9<StatisticDiff traceback=%r size=%i (%+i) count=%i (%+i)>r0   r   r   r   r"   ZStatisticDiff.__repr__m   s4    K>>499dnn::t00 	1r   c                s    \        V P                  4      V P                  \        V P                  4      V P                  V P
                  3# r   )r   r1   r	   r2   r   r   r   r   r   r#   ZStatisticDiff._sort_keyr   s7    DNN#TYYDOO$djj  	 r   )r   r2   r	   r1   r   Nr0   r$   r,   r.   r   r/   r/   F   s0     
 JI%39
1
   r   r/   c           	      sJ   . pVP                  4        F  w  r4V P                  VR 4      pVe[   \        VVP                  VP                  VP                  ,
          VP                  VP                  VP                  ,
          4      pM7\        VVP                  VP                  VP                  VP                  4      pVP                  V4       K  	  V P                  4        F;  w  r4\        V^ VP                  ) ^ VP                  ) 4      pVP                  V4       K=  	  V# r   )ZitemsZpopr/   r	   r   append)	old_group	new_group
statisticsr   statZprevious   &&    r   _compare_grouped_statsr9   x   s    J$??,	==D1 !%DII,E!%TZZ(..-HJD !!%DII!%TZZ9D 	$ - %??,	YDII:q4::+F$ - r   c                   sh   a  ] tR t^t o R	tR t]R 4       t]R 4       tR t	R t
R tR tR tR	tV tR
# )Framec                    Wn         R # r   _framer   framer   r   r   ZFrame.__init__   s    r   c                (    V P                   ^ ,          # r    r<   r   r   r   filenameZFrame.filename       {{1~r   c                (    V P                   ^,          #    r<   r   r   r   linenoZFrame.lineno   rC   r   c                l    \        V\        4      '       g   \        # V P                  VP                  8H  # r   r   r:   r   r=   r   r   r   r   ZFrame.__eq__   (    %''!!u||+,r   c                l    \        V\        4      '       g   \        # V P                  VP                  8  # r   rI   r   r   r   __lt__ZFrame.__lt__   s(    %''!!ell*+r   c                ,    \        V P                  4      # r   )r   r=   r   r   r   r   ZFrame.__hash__       DKK  r   c                s<    V P                   : R V P                  : 2# )Z:rB   rG   r   r   r   r!   ZFrame.__str__   s    --55r   c                s@    R V P                   : RV P                  : R2# )z<Frame filename=z lineno=>rO   r   r   r   r"   ZFrame.__repr__   s    26--MMr   r<   N)r%   r&   r'   r(   r)   r   propertyrB   rG   r   rL   r   r!   r"   r*   r+   r,   r.   r   r:   r:      sY     
 I    -
,
!6N Nr   r:   c                   sx   a  ] tR t^t o RtRR lt]R 4       tR tR t	R t
R tR tR	 tR
 tR tRR ltRtV tR# )	TracebackNc                sp    \         P                  ! V 4       \        \        V4      4      V n        W n        R # r   )r   r   tuplereversed_frames_total_nframe)r   framestotal_nframe   &&&r   r   ZTraceback.__init__   s)    $
 Xf-.)r   c                    V P                   # r   )rV   r   r   r   rX   ZTraceback.total_nframe   s    !!!r   c                rM   r   )lenrU   r   r   r   __len__ZTraceback.__len__       4<<  r   c                   \        V\        4      '       dO   \        ;QJ d%    . R  V P                  V,           4       F  NK  	  5# ! R  V P                  V,           4       4      # \	        V P                  V,          4      # )c              3   8   "   T F  p\        V4      x  K  	  R # 5ir   )r:   .0trace   & r   	<genexpr>Z(Traceback.__getitem__.<locals>.<genexpr>        G3F%u3F   )r   slicerS   rU   r:   r   Zindexr   r   __getitem__ZTraceback.__getitem__   W    eU##5G4<<3FG5G5G4<<3FGGGe,--r   c                4    VP                   V P                  9   # r   )r=   rU   r>   r   r   __contains__ZTraceback.__contains__       ||t||++r   c                rM   r   )r   rU   r   r   r   r   ZTraceback.__hash__   s    DLL!!r   c                rH   r   r   rR   r   rU   r   r   r   r   ZTraceback.__eq__   s(    %++!!-.r   c                rK   r   rn   r   r   r   rL   ZTraceback.__lt__   s(    %++!!u}},-r   c                s&    \        V ^ ,          4      # rA   )Zstrr   r   r   r!   ZTraceback.__str__   s    47|r   c                s    R \        V 4       2pV P                  f   VR,          pV# VRV P                   R2,          pV# )z<Traceback rP   z total_nframe=)rS   rV   rX   )r   Zsrc   r   r"   ZTraceback.__repr__   sO    %+'%HA  >$"3"3!4A66Ar   c                s   . pVe   V^ 8  d   W) R  pMV R V pMT pV'       d   \        V4      pV F  pVP                  RVP                  : RVP                  : 24       \        P
                  ! VP                  VP                  4      P                  4       pV'       g   Ks  VP                  RV,          4       K  	  V# )Nz  File "z", line z    %s)rT   r3   rB   rG   	linecacheZgetlineZstrip)r   ZlimitZmost_recent_firstZlinesZframe_slicer?   Zlines   &&&    r   formatZTraceback.format   s    qy"67m"6ElK";/K ELL!NNELL: ;$$U^^U\\BHHJDtX_- ! r   )rU   rV   r   )NF)r%   r&   r'   r(   r)   r   rQ   rX   r\   ri   rl   r   r   rL   r!   r"   rp   r*   r+   r,   r.   r   rR   rR      sW      -I* " "!.,"/
.
 r   rR   c                 s:    \        V 4      pVe   \        V4      # R # r   )r   rR   )ZobjrW   rc   r   get_object_tracebackrq     s"     #3'F  r   c                   sr   a  ] tR tRt o R
tR t]R 4       t]R 4       t]R 4       t	R t
R tR tR	 tR
tV tR# )Tracei  c                r;   r   _tracer   rb   r   r   r   ZTrace.__init__  s	     r   c                r@   rA   rs   r   r   r   domainZTrace.domain  rC   r   c                rD   rE   rs   r   r   r   r	   Z
Trace.size  rC   r   c                s6    \        V P                  R ,          !  # ):i   NN)rR   rt   r   r   r   r   ZTrace.traceback#  s    $++b/**r   c                rH   r   )r   rr   r   rt   r   r   r   r   ZTrace.__eq__'  rJ   r   c                rM   r   )r   rt   r   r   r   r   ZTrace.__hash__,  rN   r   c                sP    V P                   : R \        V P                  R4      : 2# )z: F)r   r   r	   r   r   r   r!   ZTrace.__str__/  s    >><		5+IJJr   c                sp    R V P                   : R\        V P                  R4      : RV P                  : R2# )z<Trace domain=z size=Fz, traceback=rP   )rv   r   r	   r   r   r   r   r"   ZTrace.__repr__2  s(    ;;TYY >P 	Qr   rs   N)r%   r&   r'   r(   r)   r   rQ   rv   r	   r   r   r   r!   r"   r*   r+   r,   r.   r   rr   rr     si      I
     + +-
!KQ Qr   rr   c                   sD   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )
_Tracesi7  c                s>    \         P                  ! V 4       Wn        R # r   )r   r   _traces)r   tracesr   r   r   Z_Traces.__init__8  s    $r   c                rM   r   )r[   rx   r   r   r   r\   Z_Traces.__len__=  r]   r   c                r^   )c              3   r_   r   )rr   r`   rc   r   rd   Z&_Traces.__getitem__.<locals>.<genexpr>B  re   rf   )r   rg   rS   rx   rr   rh   r   r   ri   Z_Traces.__getitem__@  rj   r   c                rk   r   )rt   rx   ru   r   r   rl   Z_Traces.__contains__F  rm   r   c                rH   r   )r   rw   r   rx   r   r   r   r   Z_Traces.__eq__I  s(    %))!!-.r   c                s&    R \        V 4      ,          # )z<Traces len=%s>)r[   r   r   r   r"   Z_Traces.__repr__N  s     3t9,,r   )rx   N)r%   r&   r'   r(   r   r\   ri   rl   r   r"   r*   r+   r,   r.   r   rw   rw   7  s(     
!.,/
- -r   rw   c                 s|    \         P                  P                  V 4      p V P                  R 4      '       d   V RR p V # )z.pycNi)osZpathZnormcaseZendswith)rB   r   r   _normalize_filenamer{   R  s7    ww)H  CR=Or   c                   s,   a  ] tR tRt o R tR tRtV tR# )
BaseFilteriY  c                r;   r   	inclusive)r   r~   r   r   r   ZBaseFilter.__init__Z  s    "r   c                s    \         hr   )ZNotImplementedErrorru   r   r   _matchZBaseFilter._match]  s    !!r   r}   N)r%   r&   r'   r(   r   r   r*   r+   r,   r.   r   r|   r|   Y  s     #" "r   r|   c                   s^   a a ] tR tRt oR	V 3R llt]R 4       tR tR tR t	R t
RtVtV ;t# )
Filteria  c                sv   < \         SV `  V4       Wn        \        V4      V n        W0n        W@n        WPn        R # r   )superr   r~   r{   _filename_patternrG   
all_framesrv   )r   r~   filename_patternrG   r   rv   	__class__s   &&&&&&r   r   ZFilter.__init__b  s2    #"!45E!F$r   c                rZ   r   )r   r   r   r   r   ZFilter.filename_patternk  s    %%%r   c                s    \        V4      p\        P                  ! WP                  4      '       g   R # V P                  f   R# W P                  8H  # )FT)r{   fnmatchr   rG   r   rB   rG   rY   r   _match_frame_implZFilter._match_frame_implo  s>    &x0x)?)?@@;;kk)*r   c                sP    V P                  W4      V P                  '       * ,          # r   )r   r~   r   rY   r   _match_frameZFilter._match_framex  s    %%h7t~~;MNNr   c                s  a  S P                   '       d^   \        ;QJ d    V 3R  lV 4       F  '       g   K   RM	  RM! V 3R  lV 4       4      '       d   S P                  # S P                  '       * # V^ ,          w  r#S P                  W#4      # )c              3   sJ   <"   T F  w  rSP                  W4      x  K  	  R # 5ir   )r   )ra   rB   rG   r   s   &  r   rd   Z*Filter._match_traceback.<locals>.<genexpr>}  s)      6+4'x ))(;;+4s    #TF)r   anyr~   r   )r   r   rB   rG   s   f&  r   _match_tracebackZFilter._match_traceback{  so    ???s 6+46sss 6+46 6 6~~% NN*+(|H$$X66r   c                s    Vw  r#rEV P                  V4      pV P                  eC   V P                  '       d   T;'       d    W P                  8H  # T;'       g    W P                  8g  # V# r   )r   rv   r~   )r   rb   rv   r	   r   rX   Zres   &&     r   r   ZFilter._match  s^    05-i##I.;;"~~~66++ 5655v45
r   )r   r   rv   r~   rG   )NFN)r%   r&   r'   r(   r   rQ   r   r   r   r   r   r*   r+   __classcell__r   r-      @@r   r   r   a  s8      & &+O	7 r   r   c                   sH   a a ] tR tRt oV 3R lt]R 4       tR tRtVt	V ;t
# )DomainFilteri  c                s2   < \         SV `  V4       W n        R # r   )r   r   _domain)r   r~   rv   r   s   &&&r   r   ZDomainFilter.__init__  s    #r   c                rZ   r   r   r   r   r   rv   ZDomainFilter.domain  s    ||r   c                sT    Vw  r#rEW P                   8H  V P                  '       * ,          # r   )rv   r~   )r   rb   rv   r	   r   rX   r8   r   r   ZDomainFilter._match  s%    05-i++%dnn*<==r   r   )r%   r&   r'   r(   r   rQ   rv   r   r*   r+   r   r   r   r   r   r     s(       > >r   r   c                   sb   a  ] tR tRt o R tR t]R 4       tR tR t	R t
RR ltRR	 ltR
tV tR# )Snapshoti  c                s2    \        V4      V n        W n        R # r   )rw   ry   traceback_limit)r   ry   r   rY   r   r   ZSnapshot.__init__  s     fo.r   c                s    \        VR 4      ;_uu_ 4       p\        P                  ! W\        P                  4       RRR4       R#   + '       g   i     R# ; i)ZwbN)openpickledumpZHIGHEST_PROTOCOL)r   rB   fpr
   r   r   ZSnapshot.dump  s6     (D!!RKK&"9"9: "!!!s   &AA	c                s    \        V R 4      ;_uu_ 4       p\        P                  ! V4      uuRRR4       #   + '       g   i     R# ; i)ZrbN)r   r   load)rB   r   rc   r   r   ZSnapshot.load  s-    
 (D!!R;;r? "!!!s	   6A	c                s0  a V'       dC   \         ;QJ d    V3R  lV 4       F  '       g   K   RM	  RM! V3R  lV 4       4      '       g   R# V'       dC   \         ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       d   R# R# )c              3   sF   <"   T F  pVP                  S4      x  K  	  R # 5ir   r   ra   trace_filterrb      & r   rd   )Snapshot._filter_trace.<locals>.<genexpr>  s&      <+:< $**511+:s   !TFc              3   sP   <"   T F  pVP                  S4      '       * x  K  	  R # 5ir   r   r   r   r   rd   r     s)      8'6| $**5111'6s   #&)r   )r   include_filtersexclude_filtersrb   s   &&&fr   _filter_traceZSnapshot._filter_trace  sp    3 <+:<333 <+:< < <s 8'68sss 8'68 8 8r   c                s   \        V\        4      '       g&   \        R \        V4      P                  ,          4      hV'       d   . p. pV F9  pVP
                  '       d   VP                  V4       K(  VP                  V4       K;  	  V P                  P                   Uu. uF   pV P                  VVV4      '       g   K  VNK"  	  ppM$V P                  P                  P                  4       p\        W`P                  4      # u upi )z)filters must be a list of filters, not %s)r   r   Z	TypeErrorZtyper%   r~   r3   ry   rx   r   Zcopyr   r   )r   Zfiltersr   r   r   rb   Z
new_tracesr   r   filter_tracesZSnapshot.filter_traces  s     '8,,G"7m445 6 6 O O ')))#**<8#**<8	 !(
 .2[[-@-@ 8-@E!//0?057  %-@J 8J
 ,,113J
$8$8998s   D?Dc                s   VR9  d   \        RV: 24      hV'       d   VR9  d   \        RV,          4      h/ p/ pV'       gi   V P                  P                   FL  pVw  rgr WH,          p
 W:,          pV;P
                  V,          un        V;P                  ^,          un        KN  	  V# V P                  P                   FU  pVw  rgrV FG  p WM,          p
 W:,          pV;P
                  V,          un        V;P                  ^,          un        KI  	  KW  	  V#   \         dA    TR 8X  d   TpM$TR8X  d   TR,          pMT^ ,          ^ ,          ^ 33p\	        T4      p
YT&    Li ; i  \         d    \        Y^4      Y:&    EK.  i ; i  \         d*    TR8X  d   T3pMT^ ,          ^ 33p\	        T4      p
YT&    Li ; i  \         d    \        Y^4      Y:&    EK  i ; i)r   rG   zunknown key_type: z/cumulative mode cannot by used with key type %r:NrF   N)r   rB   rG   )rG   rB   )Z
ValueErrorry   rx   ZKeyErrorrR   r	   r   r   )r   key_type
cumulativeZstatsZ
tracebacksrb   rv   r	   Ztrace_tracebackrX   r   rW   r7   r?   s   &&&           r   	_group_byZSnapshot._group_by  s   >>xABB(*@@ 02:; < < 
,,>C;o
< * ;IE +DII%IJJ!OJ! -N % ,,>C;o,E6$.$5	I$/		T)	

a
 - -$ G   <;.!0!X-!0!4#21#5a#8!"<!> )& 1I2;/<   E'0!'DE$E $ 6#x/&+XF',Qxm%5F$-f$5	,55)6 $ I+4Ya+H(IsI   #D,:E+F:GAE('E(+F	F	1G ?G G! G!c                s    V P                  W4      p\        VP                  4       4      pVP                  R \        P
                  R7       V# T)ZreverseZkey)r   ZlistZvaluessortr   r#   )r   r   r   Zgroupedr6   s   &&&  r   r6   ZSnapshot.statistics  s?    
 ..6'..*+
)*=*=>r   c                s    V P                  W#4      pVP                  W#4      p\        WT4      pVP                  R \        P                  R7       V# r   )r   r9   r   r/   r#   )r   Zold_snapshotr   r   r5   r4   r6   s   &&&&   r   
compare_toZSnapshot.compare_to  sH     NN88	 **8@	+IA
-*A*ABr   )r   ry   N)F)r%   r&   r'   r(   r   r   Zstaticmethodr   r   r   r   r6   r   r*   r+   r,   r.   r   r   r     sB     
/; # #	:21f
 
r   r   c                  sv    \        4       '       g   \        R 4      h\        4       p \        4       p\	        W4      # )zLthe tracemalloc module must be tracing memory allocations to take a snapshot)Z
is_tracingZRuntimeErrorr   Zget_traceback_limitr   )ry   r   s     r   take_snapshotr   '  s7     << < = 	=]F)+OF,,r   )Zcollections.abcr   r   Z	functoolsr   r   ro   Zos.pathrz   r   Z_tracemallocr   r   r   r   r/   r9   r:   rR   rq   rr   rw   r{   r|   r   r   r   r   ) r   r   <module>r      s    . $      ;"%7 %7P/  / d( #N #N #NL J J JZ$Q $QN-h -6" "-Z -`>: >E EP	-r   