grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a XC?hFã@sddlmZmZddlmZddlZddlZddlZddl Z ddl Tddl m Z m Z dd„Z Gdd „d ƒZGd d „d ƒZd d „ZeGdd„dƒƒZeGdd„deƒƒZdd„ZGdd„dƒZGdd„deƒZdd„ZGdd„dƒZGdd„deƒZGdd„deƒZGd d!„d!ƒZd"d#„ZdS)$é)ÚSequenceÚIterable)Útotal_orderingN)Ú*)Ú_get_object_tracebackÚ _get_tracescCs†dD]|}t|ƒdkr@|dkr@|r0d||fSd||fSt|ƒdksT|dkrx|rhd||fSd ||fS|d }qdS) N)ÚBZKiBZMiBZGiBÚTiBédrz%+.1f %sz%.1f %si(r z%+.0f %sz%.0f %si)Úabs)ÚsizeZsignZunit©r ú0/opt/alt/python39/lib64/python3.9/tracemalloc.pyÚ _format_size src@s@eZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dS)Ú Statistic©Ú tracebackr ÚcountcCs||_||_||_dS©Nr)Úselfrr rr r rÚ__init__%szStatistic.__init__cCst|j|j|jfƒSr)Úhashrr r©rr r rÚ__hash__*szStatistic.__hash__cCs2t|tƒstS|j|jko0|j|jko0|j|jkSr)Ú isinstancerÚNotImplementedrr r©rÚotherr r rÚ__eq__-s   ÿ þzStatistic.__eq__cCsBd|jt|jdƒ|jf}|jr>|j|j}|dt|dƒ7}|S)Nz%s: size=%s, count=%iFú , average=%s)rrr r©rÚtextZaverager r rÚ__str__4s þÿ zStatistic.__str__cCsd|j|j|jfS)Nz)rrr r rÚ__repr__>sÿzStatistic.__repr__cCs|j|j|jfSr)r rrrr r rÚ _sort_keyBszStatistic._sort_keyN© Ú__name__Ú __module__Ú __qualname__Ú __slots__rrrr"r#r$r r r rrs rc@s@eZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dS)Ú StatisticDiff©rr Ú size_diffrÚ count_diffcCs"||_||_||_||_||_dSrr+)rrr r,rr-r r rrMs zStatisticDiff.__init__cCst|j|j|j|j|jfƒSr)rrr r,rr-rr r rrTsÿzStatisticDiff.__hash__cCsJt|tƒstS|j|jkoH|j|jkoH|j|jkoH|j|jkoH|j|jkSr)rr*rrr r,rr-rr r rrXs   ÿ þ ý üzStatisticDiff.__eq__cCsPd|jt|jdƒt|jdƒ|j|jf}|jrL|j|j}|dt|dƒ7}|S)Nz %s: size=%s (%s), count=%i (%+i)FTr)rrr r,rr-r r r rr"as  üÿ zStatisticDiff.__str__cCsd|j|j|j|j|jfS)Nz9r+rr r rr#ms  ÿÿzStatisticDiff.__repr__cCs t|jƒ|jt|jƒ|j|jfSr)r r,r r-rrrr r rr$rs  þzStatisticDiff._sort_keyNr%r r r rr*Fs  r*cCsªg}| ¡D]d\}}| |d¡}|durNt||j|j|j|j|j|jƒ}nt||j|j|j|jƒ}| |¡q | ¡D]*\}}t|d|j d|j ƒ}| |¡qz|S©Nr)ÚitemsÚpopr*r rÚappend)Ú old_groupÚ new_groupÚ statisticsrÚstatZpreviousr r rÚ_compare_grouped_statsxs" þþ  r6c@sXeZdZdZdd„Zedd„ƒZedd„ƒZdd „Zd d „Z d d „Z dd„Z dd„Z dS)ÚFrame©Ú_framecCs ||_dSrr8©rÚframer r rr“szFrame.__init__cCs |jdSr.r8rr r rÚfilename—szFrame.filenamecCs |jdS©Nér8rr r rÚlineno›sz Frame.linenocCst|tƒstS|j|jkSr©rr7rr9rr r rrŸs z Frame.__eq__cCst|tƒstS|j|jkSrr@rr r rÚ__lt__¤s z Frame.__lt__cCs t|jƒSr)rr9rr r rr©szFrame.__hash__cCsd|j|jfS)Nz%s:%s©r<r?rr r rr"¬sz Frame.__str__cCsd|j|jfS)NzrBrr r rr#¯szFrame.__repr__N) r&r'r(r)rÚpropertyr<r?rrArr"r#r r r rr7Œs  r7c@speZdZdZddd„Zedd„ƒZdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dd„Zddd„ZdS)Ú Traceback)Ú_framesÚ _total_nframeNcCs"t |¡tt|ƒƒ|_||_dSr)rrÚtupleÚreversedrErF)rÚframesÚ total_nframer r rr»s zTraceback.__init__cCs|jSr)rFrr r rrJÄszTraceback.total_nframecCs t|jƒSr)ÚlenrErr r rÚ__len__ÈszTraceback.__len__cCs4t|tƒr"tdd„|j|DƒƒSt|j|ƒSdS)Ncss|]}t|ƒVqdSr)r7©Ú.0Útracer r rÚ Íóz(Traceback.__getitem__..)rÚslicerGrEr7©rÚindexr r rÚ __getitem__Ës zTraceback.__getitem__cCs |j|jvSr)r9rEr:r r rÚ __contains__ÑszTraceback.__contains__cCs t|jƒSr)rrErr r rrÔszTraceback.__hash__cCst|tƒstS|j|jkSr©rrDrrErr r rr×s zTraceback.__eq__cCst|tƒstS|j|jkSrrWrr r rrAÜs zTraceback.__lt__cCs t|dƒSr.)Ústrrr r rr"ászTraceback.__str__cCs8dt|ƒ›�}|jdur"|d7}n|d|j›d�7}|S)Nz z total_nframe=)rGrFrJ)rÚsr r rr#äs   zTraceback.__repr__FcCsŒg}|dur2|dkr$|| d…}q6|d|…}n|}|rBt|ƒ}|D]@}| d|j|jf¡t |j|j¡ ¡}|rF| d|¡qF|S)Nrz File "%s", line %sz %s)rHr1r<r?Ú linecacheÚgetlineÚstrip)rÚlimitZmost_recent_firstÚlinesZ frame_slicer;Úliner r rÚformatìs  ÿzTraceback.format)N)NF)r&r'r(r)rrCrJrLrUrVrrrAr"r#rar r r rrD³s  rDcCs t|ƒ}|durt|ƒSdSdSr)rrD)ÚobjrIr r rÚget_object_tracebacksrcc@s\eZdZdZdd„Zedd„ƒZedd„ƒZedd „ƒZd d „Z d d „Z dd„Z dd„Z dS)ÚTrace©Ú_tracecCs ||_dSrre©rrOr r rrszTrace.__init__cCs |jdSr.rerr r rÚdomainsz Trace.domaincCs |jdSr=rerr r rr sz Trace.sizecCst|jdd…ŽS)Né)rDrfrr r rr#szTrace.tracebackcCst|tƒstS|j|jkSr)rrdrrfrr r rr's z Trace.__eq__cCs t|jƒSr)rrfrr r rr,szTrace.__hash__cCsd|jt|jdƒfS)Nz%s: %sF)rrr rr r rr"/sz Trace.__str__cCsd|jt|jdƒ|jfS)Nz'F)rhrr rrr r rr#2sÿzTrace.__repr__N) r&r'r(r)rrCrhr rrrr"r#r r r rrds   rdc@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)Ú_TracescCst |¡||_dSr)rrÚ_traces)rÚtracesr r rr8s z_Traces.__init__cCs t|jƒSr)rKrkrr r rrL=sz_Traces.__len__cCs4t|tƒr"tdd„|j|DƒƒSt|j|ƒSdS)Ncss|]}t|ƒVqdSr)rdrMr r rrPBrQz&_Traces.__getitem__..)rrRrGrkrdrSr r rrU@s z_Traces.__getitem__cCs |j|jvSr)rfrkrgr r rrVFsz_Traces.__contains__cCst|tƒstS|j|jkSr)rrjrrkrr r rrIs z_Traces.__eq__cCs dt|ƒS)Nz)rKrr r rr#Nsz_Traces.__repr__N) r&r'r(rrLrUrVrr#r r r rrj7s rjcCs&tj |¡}| d¡r"|dd…}|S)Nz.pycéÿÿÿÿ)ÚosÚpathÚnormcaseÚendswith)r<r r rÚ_normalize_filenameRs   rrc@seZdZdd„Zdd„ZdS)Ú BaseFiltercCs ||_dSr)Ú inclusive)rrtr r rrZszBaseFilter.__init__cCst‚dSr)ÚNotImplementedErrorrgr r rÚ_match]szBaseFilter._matchN)r&r'r(rrvr r r rrsYsrscsJeZdZd‡fdd„ Zedd„ƒZdd„Zd d „Zd d „Zd d„Z ‡Z S)ÚFilterNFcs2tƒ |¡||_t|ƒ|_||_||_||_dSr)ÚsuperrrtrrÚ_filename_patternr?Ú all_framesrh)rrtÚfilename_patternr?rzrh©Ú __class__r rrbs   zFilter.__init__cCs|jSr)ryrr r rr{kszFilter.filename_patterncCs6t|ƒ}t ||j¡sdS|jdur(dS||jkSdS)NFT)rrÚfnmatchryr?©rr<r?r r rÚ_match_frame_implos  zFilter._match_frame_implcCs| ||¡|j ASr)r€rtrr r rÚ _match_framexszFilter._match_framecsHˆjr,t‡fdd„|Dƒƒr"ˆjSˆj Sn|d\}}ˆ ||¡SdS)Nc3s|]\}}ˆ ||¡VqdSr)r€)rNr<r?rr rrP}sÿz*Filter._match_traceback..r)rzÚanyrtr�)rrr<r?r rrÚ_match_traceback{s ÿ  zFilter._match_tracebackcCsF|\}}}}| |¡}|jdurB|jr4|o2||jkS|p@||jkS|Sr)rƒrhrt)rrOrhr rrJÚresr r rrv†s   z Filter._match)NFN) r&r'r(rrCr{r€r�rƒrvÚ __classcell__r r r|rrwasÿ    rwcs0eZdZ‡fdd„Zedd„ƒZdd„Z‡ZS)Ú DomainFiltercstƒ |¡||_dSr)rxrÚ_domain)rrtrhr|r rr’s zDomainFilter.__init__cCs|jSr)r‡rr r rrh–szDomainFilter.domaincCs|\}}}}||jk|j ASr)rhrt)rrOrhr rrJr r rrvšs zDomainFilter._match)r&r'r(rrCrhrvr…r r r|rr†‘s  r†c@sTeZdZdd„Zdd„Zedd„ƒZdd„Zd d „Zd d „Z ddd„Z ddd„Z dS)ÚSnapshotcCst|ƒ|_||_dSr)rjrlÚtraceback_limit)rrlr‰r r rr¤s zSnapshot.__init__cCs>t|dƒ� }t ||tj¡Wdƒn1s00YdS)NÚwb)ÚopenÚpickleÚdumpZHIGHEST_PROTOCOL)rr<Úfpr r rr�ªs z Snapshot.dumpcCs8t|dƒ�}t |¡WdƒS1s*0YdS)NÚrb)r‹rŒÚload)r<rŽr r rr�±s z Snapshot.loadcs@|rt‡fdd„|DƒƒsdS|r.Fc3s|]}| ˆ¡ VqdSrr‘r’r”r rrP¿sÿT)r‚)rÚinclude_filtersÚexclude_filtersrOr r”rÚ _filter_trace¹s ÿ ÿzSnapshot._filter_tracecs‚t|tƒstdt|ƒjƒ‚|rjg‰g‰|D] }|jrBˆ |¡q,ˆ |¡q,‡‡‡fdd„ˆjjDƒ}n ˆjj  ¡}t |ˆj ƒS)Nz)filters must be a list of filters, not %scsg|]}ˆ ˆˆ|¡r|‘qSr )r—rM©r–r•rr rÚ Õs þÿz*Snapshot.filter_traces..) rrÚ TypeErrorÚtyper&rtr1rlrkÚcopyrˆr‰)rÚfiltersr“Z new_tracesr r˜rÚ filter_tracesÄs ÿ   zSnapshot.filter_tracesc CsØ|dvrtd|fƒ‚|r.|dvr.td|ƒ‚i}i}|�s |jjD]Ä}|\}}}} z ||} WnXty¸|dkr||} n(|dkr’|dd…} n|dddff} t| ƒ} | ||<Yn0z(|| } | j|7_| jd7_WqDt�yt| |dƒ|| <YqD0qDnÈ|jjD]¾}|\}}}} |D]¦} z || } WnDt�y||dk�rZ| f} n| ddff} t| ƒ} | || <Yn0z(|| } | j|7_| jd7_Wn$t�yÊt| |dƒ|| <Yn0�q(�q|S) N)rr<r?zunknown key_type: %r)r?r<z/cumulative mode cannot by used with key type %rrr?r>r)Ú ValueErrorrlrkÚKeyErrorrDr rr)rÚkey_typeÚ cumulativeZstatsZ tracebacksrOrhr Ztrace_tracebackrJrrIr5r;r r rÚ _group_byÝsZ ÿ        zSnapshot._group_byFcCs,| ||¡}t| ¡ƒ}|jdtjd�|S©NT)ÚreverseÚkey)r£ÚlistÚvaluesÚsortrr$)rr¡r¢Zgroupedr4r r rr4s  zSnapshot.statisticscCs6| ||¡}| ||¡}t||ƒ}|jdtjd�|Sr¤)r£r6r©r*r$)rZ old_snapshotr¡r¢r3r2r4r r rÚ compare_tos    zSnapshot.compare_toN)F)F) r&r'r(rr�Ú staticmethodr�r—ržr£r4rªr r r rrˆŸs  3 rˆcCs$tƒstdƒ‚tƒ}tƒ}t||ƒS)NzLthe tracemalloc module must be tracing memory allocations to take a snapshot)Ú is_tracingÚ RuntimeErrorrZget_traceback_limitrˆ)rlr‰r r rÚ take_snapshot's r®)Úcollections.abcrrÚ functoolsrr~r[Zos.pathrnrŒZ _tracemallocrrrrr*r6r7rDrcrdrjrrrsrwr†rˆr®r r r rÚs2 (2&M'0