eF\SSKJrJr SSKJr SSKrSSKrSSKrSSK r SSK 7 SSK J r J r Sr "SS5r"S S 5rS r\"S S 55r\"SS\55rSr"SS5r"SS\5rSr"SS5r"SS\5r"SS\5r"SS5rSrg))SequenceIterable)total_orderingN)*)_get_object_traceback _get_tracescSH`n[U5S:aUS:waU(aSX4-s $SX4-s $[U5S:dUS:XaU(aSX4-s $S X4-s $US -nMb g) N)BKiBMiBGiBTiBdr z%+.1f %sz%.1f %si(rz%+.0f %sz%.0f %si)abs)sizesignunits 1/opt/imh/python3.13/lib/python3.13/tracemalloc.py _format_sizer sr1 t9s?ts{!TL00 D<// t9y DEM!TL00 D<//  2c@\rSrSrSrSrSrSrSrSr Sr S r S r g ) StatisticzK Statistic difference on memory allocations between two Snapshot instance.  tracebackrcountc(XlX lX0lgNr)selfrrrs r__init__Statistic.__init__%s"  rcZ[URURUR45$r)hashrrrrs r__hash__Statistic.__hash__*s T^^TYY ;<rr$s r__repr__Statistic.__repr__>s%;>>499djj9: ;rcHURURUR4$r)rrrr$s r _sort_keyStatistic._sort_keyBs 4::t~~66r)rrrN __name__ __module__ __qualname____firstlineno____doc__ __slots__r r%r,r3r6r9__static_attributes__rrrrs,/I =/;7rrc@\rSrSrSrSrSrSrSrSr Sr S r S r g ) StatisticDiffFzX Statistic difference on memory allocations between an old and a new Snapshot instance. rr size_diffr count_diffc@XlX lX0lX@lXPlgrrG)rrrrHrrIs rr StatisticDiff.__init__Ms" " $rc[URURURURUR 45$r)r#rrrHrrIr$s rr%StatisticDiff.__hash__Ts3T^^TYYZZ23 3rcj[U[5(d[$URUR:H=(ay URUR:H=(aY UR UR :H=(a9 UR UR :H=(a URUR:H$r)r(rEr)rrrHrrIr*s rr,StatisticDiff.__eq__Xs%//! !%//18II+8NNeoo58JJ%++-8OOu'7'77  9rcSUR[URS5[URS5URUR 4-nUR(a+URUR- nUS[US5-- nU$)Nz %s: size=%s (%s), count=%i (%+i)FTr/)rrrrHrrIr0s rr3StatisticDiff.__str__asx2>> 515::?? $$ ::ii$**,G N\'5%AA AD rczSURURURURUR4-$)Nz9rGr$s rr6StatisticDiff.__repr__ms4K>>499dnn::t00 1rc[UR5UR[UR5URUR 4$r)rrHrrIrrr$s rr9StatisticDiff._sort_keyrs7DNN#TYYDOO$djj  r)rrIrrHrNr;rCrrrErEFs-JI%39 1  rrEc 8/nUR5Hup4URUS5nUbR[UURURUR- URURUR- 5nO7[UURURURUR5nUR U5 M UR5H;up4[USUR*SUR*5nUR U5 M= U$Nr)itemspoprErrappend) old_group new_group statisticsrstatpreviouss r_compare_grouped_statsr`xsJ$??, ==D1   !%DII ,E!%TZZ(..-HJD!!%DII!%TZZ9D $-%??, YDII:q4::+F$- rc`\rSrSrSrSrSr\S5r\S5r Sr Sr S r S r S rSrg ) Framez Frame of a traceback. _framecXlgrrdrframes rr Frame.__init__s rc URS$rWrdr$s rfilenameFrame.filename{{1~rc URS$Nrdr$s rlineno Frame.linenormrcj[U[5(d[$URUR:H$rr(rbr)rer*s rr, Frame.__eq__(%''! ! u||+,rcj[U[5(d[$URUR:$rrtr*s r__lt__ Frame.__lt__s(%''! ! ell*+rc,[UR5$r)r#rer$s rr%Frame.__hash__DKK  rc<UR<SUR<3$)N:rkrqr$s rr3 Frame.__str__s--55rc@SUR<SUR<S3$)Nzrr$s rr6Frame.__repr__s26--MMrN)r<r=r>r?r@rAr propertyrkrqr,rxr%r3r6rBrCrrrbrbsUI- , !6Nrrbcp\rSrSrSrSrSSjr\S5rSr Sr S r S r S r S rS rSrSSjrSrg) TracebackzT Sequence of Frame instances sorted from the oldest frame to the most recent frame. )_frames _total_nframeNcn[R"U5 [[U55UlX lgr)rr tuplereversedrr)rframes total_nframes rr Traceback.__init__s)$ Xf-. )rcUR$r)rr$s rrTraceback.total_nframes!!!rc,[UR5$r)lenrr$s r__len__Traceback.__len__4<<  rc[U[5(a[SURU55$[ URU5$)Nc38# UHn[U5v M g7fr)rb.0traces r (Traceback.__getitem__..G3F%u3F)r(slicerrrbrindexs r __getitem__Traceback.__getitem__= eU # #G4<<3FGG Ge,- -rc4URUR;$r)rerrgs r __contains__Traceback.__contains__||t||++rc,[UR5$r)r#rr$s rr%Traceback.__hash__sDLL!!rcj[U[5(d[$URUR:H$rr(rr)rr*s rr,Traceback.__eq__s(%++! !  -.rcj[U[5(d[$URUR:$rrr*s rrxTraceback.__lt__s(%++! ! u}},-rc[US5$rW)strr$s rr3Traceback.__str__s47|rcpS[U53nURcUS- nU$USURS3- nU$)Nz $"3"3!4A6 6Arct/nUbUS:aX*SnOUSUnOUnU(a [U5nUHnURSUR<SUR<35 [R "URUR5R 5nU(dMrURSU-5 M U$)Nrz File "z", line z %s)rrZrkrq linecachegetlinestrip)rlimitmost_recent_firstlines frame_slicerhlines rformatTraceback.formats  qy"67m "6El K ";/K E LL!NNELL: ;$$U^^U\\BHHJDt X_- !  rr)NF)r<r=r>r?r@rAr rrrrrr%r,rxr3r6rrBrCrrrrsT-I*""!. ,"/ . rrc6[U5nUb [U5$g)z Get the traceback where the Python object *obj* was allocated. Return a Traceback instance. Return None if the tracemalloc module is not tracing memory allocations or did not trace the allocation of the object. N)rr)objrs rget_object_tracebackrs"#3 'F   rcj\rSrSrSrSrSr\S5r\S5r \S5r Sr S r S r S rSrg ) Traceiz Trace of a memory block. _tracecXlgrrrrs rr Trace.__init__s  rc URS$rWrr$s rdomain Trace.domainrmrc URS$rorr$s rr Trace.sizermrc,[URSS6$)N)rrr$s rrTrace.traceback#s$++ab/**rcj[U[5(d[$URUR:H$r)r(rr)rr*s rr, Trace.__eq__'rvrc,[UR5$r)r#rr$s rr%Trace.__hash__,r|rcPUR<S[URS5<3$)Nz: F)rrrr$s rr3 Trace.__str__/s>>< 5+IJJrcpSUR<S[URS5<SUR<S3$)NzP QrN)r<r=r>r?r@rAr rrrrr,r%r3r6rBrCrrrrseI ++- !KQrrc8\rSrSrSrSrSrSrSrSr Sr g ) _Tracesi7c<[R"U5 Xlgr)rr _traces)rtracess rr _Traces.__init__8s$ rc,[UR5$r)rrr$s rr_Traces.__len__=rrc[U[5(a[SURU55$[ URU5$)Nc38# UHn[U5v M g7fr)rrs rr&_Traces.__getitem__..Brr)r(rrrrrs rr_Traces.__getitem__@rrc4URUR;$r)rrrs rr_Traces.__contains__Frrcj[U[5(d[$URUR:H$r)r(rr)rr*s rr,_Traces.__eq__Is(%))! !  -.rcS[U5-$)Nz)rr$s rr6_Traces.__repr__Ns 3t9,,r)rN) r<r=r>r?r rrrr,r6rBrCrrrr7s  !. ,/ -rrcz[RRU5nURS5(aUSSnU$)Nz.pyc)ospathnormcaseendswith)rks r_normalize_filenamerRs7ww)H  CR= Orc \rSrSrSrSrSrg) BaseFilteriYcXlgr inclusive)rrs rr BaseFilter.__init__Zs"rc[er)NotImplementedErrorrs r_matchBaseFilter._match]s!!rrN)r<r=r>r?r rrBrCrrrrYs #"rrcV^\rSrSrS U4Sjjr\S5rSrSrSr Sr Sr U=r $) Filteriact>[TU]U5 Xl[U5UlX0lX@lXPlgr)superr rr_filename_patternrq all_framesr)rrfilename_patternrqrr __class__s rr Filter.__init__bs2 #"!45E!F $ rcUR$r)rr$s rrFilter.filename_patternks%%%rc[U5n[R"XR5(dgURcgX R:H$)NFT)rfnmatchrrqrrkrqs r_match_frame_implFilter._match_frame_implos>&x0x)?)?@@ ;; kk) *rcHURX5UR(+- $r)r rr s r _match_frameFilter._match_framexs%%h7t~~;MNNrc^TR(a7[U4SjU55(a TR$TR(+$USup#TRX#5$)Nc3J># UHupTRX5v M g7fr)r )rrkrqrs rr*Filter._match_traceback..}s)6+4'x))(;;+4s #r)ranyrr)rrrkrqs` r_match_tracebackFilter._match_traceback{sX ??6+4666~~% NN*+(| H$$X6 6rcUup#pEURU5nURb?UR(aU=(a X R:H$U=(d X R:g$U$r)rrr)rrrrrrress rr Filter._matchsV05-i##I. ;; "~~6++ 565v45 r)rrrrrq)NFN) r<r=r>r?r rrr rrrrB __classcell__rs@rrras97;&&+O 7rrc>^\rSrSrU4Sjr\S5rSrSrU=r $) DomainFilteric0>[TU]U5 X lgr)rr _domain)rrrrs rr DomainFilter.__init__s # rcUR$rr r$s rrDomainFilter.domains ||rcLUup#pEX R:HUR(+- $r)rr)rrrrrrs rrDomainFilter._matchs%05-i++%dnn*<==rr#) r<r=r>r?r rrrrBrrs@rrrs&>>rrcZ\rSrSrSrSrSr\S5rSr Sr Sr S S jr S S jr S rg )Snapshotiz: Snapshot of traces of memory blocks allocated by Python. c0[U5UlX lgr)rrtraceback_limit)rrr*s rr Snapshot.__init__sfo .rc[US5n[R"X[R5 SSS5 g!,(df  g=f)z! Write the snapshot into a file. wbN)openpickledumpHIGHEST_PROTOCOL)rrkfps rr0 Snapshot.dumps0(D !R KK&"9"9 :" ! !s &< A c|[US5n[R"U5sSSS5 $!,(df  g=f)z Load a snapshot from a file. rbN)r.r/load)rkr2s rr6 Snapshot.loads' (D !R;;r?" ! !s- ;c^U(a[U4SjU55(dgU(a[U4SjU55(agg)Nc3F># UHnURT5v M g7frrr trace_filterrs rr)Snapshot._filter_trace..s&<+:<$**511+:s!Fc3P># UHnURT5(+v M g7frr:r;s rrr=s)8'6|$**5111'6s#&T)r)rinclude_filtersexclude_filtersrs `r _filter_traceSnapshot._filter_tracesF <+:<<< 8'6888rc[U[5(d![S[U5R-5eU(a/n/nUH8nUR (aUR U5 M'UR U5 M: URRVs/sHnURUUU5(dMUPM! nnO$URRR5n[X`R5$s snf)z Create a new Snapshot instance with a filtered traces sequence, filters is a list of Filter or DomainFilter instances. If filters is an empty list, return a new Snapshot instance with a copy of the traces. z)filters must be a list of filters, not %s) r(r TypeErrortyper<rrZrrrAcopyr(r*)rfiltersr?r@r<r new_tracess r filter_tracesSnapshot.filter_tracess '8,,G"7m4456 6  O O ' ))#**<8#**<8 !( .2[[-@-@8-@E!//0?057 -@J8J ,,113J $8$899 8s C:8C:cFUS;a[SU<35eU(aUS;a[SU-5e0n0nU(dXURRH<nUupgpXHn X:n U =R U- slU =R S- slM> U$URRHEnUupgpUH7n XMn X:n U =R U- slU =R S- slM9 MG U$![a2 US:XaUn OUS:XaUSSn O USSS44n [ U 5n XU'Nf=f![a [XS5X:'Mf=f![a$ US:XaU 4n OU SS44n [ U 5n XU 'Nf=f![a [XS5X:'Mf=f) N)rrkrqzunknown key_type: )rqrkz/cumulative mode cannot by used with key type %rrrqrpr) ValueErrorrrKeyErrorrrrr)rkey_type cumulativestats tracebacksrrrtrace_tracebackrrrr^rhs r _group_bySnapshot._group_bys > >xAB B (*@@02:;< < ,,>C;o < * ;IE +DII%IJJ!OJ!-N %,,>C;o,E6$.$5 I$/ T)  a --$ G <;.!0!X-!0!!4#21#5a#8!" )& 1I2;/< E'0!'DE$E$6#x/&+XF',Qxm%5F$-f$5 ,55) 6$I+4Ya+H(IsHC5 .D48E=.F59D10D14EE+FFF F cURX5n[UR55nURS[R S9 U$)zL Group statistics by key_type. Return a sorted list of Statistic instances. Treversekey)rSlistvaluessortrr9)rrNrOgroupedr]s rr]Snapshot.statisticss? ..6'..*+ )*=*=>rcURX#5nURX#5n[XT5nURS[RS9 U$)z Compute the differences with an old snapshot old_snapshot. Get statistics as a sorted list of StatisticDiff instances, grouped by group_by. TrV)rSr`r[rEr9)r old_snapshotrNrOr\r[r]s r compare_toSnapshot.compare_tosH NN88  **8@ +IA -*A*ABr)r*rN)F)r<r=r>r?r@r r0 staticmethodr6rArIrSr]r`rBrCrrr(r(s?/ ;## :21f rr(ct[5(d [S5e[5n[5n[ X5$)zA Take a snapshot of traces of memory blocks allocated by Python. zLthe tracemalloc module must be tracing memory allocations to take a snapshot) is_tracing RuntimeErrorrget_traceback_limitr()rr*s r take_snapshotrg's7 <<<= = ]F)+O F ,,r)collections.abcrr functoolsrr ros.pathrr/ _tracemallocrrrrrEr`rbrrrrrrrrr(rgrCrrrls.$ ;"%7%7P/ / d(#N#N#NLJJJZ $Q$QN-h-6""-Z-` >: >EEP -r