MINI MINI MANI MO

Path : /lib64/python3.6/__pycache__/
File Upload :
Current File : //lib64/python3.6/__pycache__/tracemalloc.cpython-36.opt-2.pyc

3


 \A@sddlmZmZddlmZddlZddlZddlZddl	Z	ddl
Tddl
mZmZddZ
Gdd	d	ZGd
ddZdd
ZeGdddZeGdddeZddZGdddZGdddeZddZGdddZGdddeZGdddeZGd d!d!Zd"d#ZdS)$)SequenceIterable)total_orderingN)*)_get_object_traceback_get_tracescCszxtd
D]l}t|dkr:|dkr:|r.d||fSd||fSt|dksN|dkrj|r^d||fSd||fS|d
}qWdS)NBKiBMiBGiBTiBdz%+.1f %sz%.1f %s
iz%+.0f %sz%.0f %s)rr	r
rri()abs)sizeZsignZunitr#/usr/lib64/python3.6/tracemalloc.py_format_size
s
rc@s@eZdZdZddZddZdd	Zd
dZdd
ZddZ	dS)	Statistic	tracebackrcountcCs||_||_||_dS)N)rrr)selfrrrrrr__init__%szStatistic.__init__cCst|j|j|jfS)N)hashrrr)rrrr__hash__*szStatistic.__hash__cCs$|j|jko"|j|jko"|j|jkS)N)rrr)rotherrrr__eq__-szStatistic.__eq__cCsBd|jt|jd|jf}|jr>|j|j}|dt|d7}|S)Nz%s: size=%s, count=%iFz, average=%s)rrrr)rtextaveragerrr__str__2s

zStatistic.__str__cCsd|j|j|jfS)Nz)<Statistic traceback=%r size=%i count=%i>)rrr)rrrr__repr__<szStatistic.__repr__cCs|j|j|jfS)N)rrr)rrrr	_sort_key@szStatistic._sort_keyN)rrr)
__name__
__module____qualname__	__slots__rrrrr r!rrrrrs
rc@s@eZdZdZddZdd	Zd
dZdd
ZddZddZ	dS)
StatisticDiffrr	size_diffr
count_diffcCs"||_||_||_||_||_dS)N)rrr'rr()rrrr'rr(rrrrKs
zStatisticDiff.__init__cCst|j|j|j|j|jfS)N)rrrr'rr()rrrrrRszStatisticDiff.__hash__cCs<|j|jko:|j|jko:|j|jko:|j|jko:|j|jkS)N)rrr'rr()rrrrrrVs
zStatisticDiff.__eq__cCsPd|jt|jdt|jd|j|jf}|jrL|j|j}|dt|d7}|S)Nz %s: size=%s (%s), count=%i (%+i)FTz, average=%s)rrrr'rr()rrrrrrr]s


zStatisticDiff.__str__cCsd|j|j|j|j|jfS)Nz9<StatisticDiff traceback=%r size=%i (%+i) count=%i (%+i)>)rrr'rr()rrrrr iszStatisticDiff.__repr__cCs t|j|jt|j|j|jfS)N)rr'rr(rr)rrrrr!nszStatisticDiff._sort_keyN)rrr'rr()
r"r#r$r%rrrrr r!rrrrr&Dsr&cCsg}xp|jD]d\}}|j|d}|dk	rPt||j|j|j|j|j|j}nt||j|j|j|j}|j|qWx6|jD]*\}}t|d|jd|j}|j|qW|S)Nr)itemspopr&rrappend)	old_group	new_group
statisticsrstatZpreviousrrr_compare_grouped_statstsr0c@sXeZdZdZddZeddZeddZdd	Zd
dZ	dd
Z
ddZddZdS)Frame_framecCs
||_dS)N)r2)rframerrrrszFrame.__init__cCs
|jdS)Nr)r2)rrrrfilenameszFrame.filenamecCs
|jdS)N)r2)rrrrlinenoszFrame.linenocCs|j|jkS)N)r2)rrrrrrszFrame.__eq__cCs|j|jkS)N)r2)rrrrr__lt__szFrame.__lt__cCs
t|jS)N)rr2)rrrrrszFrame.__hash__cCsd|j|jfS)Nz%s:%s)r4r6)rrrrrsz
Frame.__str__cCsd|j|jfS)Nz<Frame filename=%r lineno=%r>)r4r6)rrrrr szFrame.__repr__N)r2)
r"r#r$r%rpropertyr4r6rr7rrr rrrrr1sr1c@sbeZdZdZddZddZddZdd	Zd
dZdd
Z	ddZ
ddZddZdddZ
dS)	Traceback_framescCstj|||_dS)N)rrr:)rframesrrrrs
zTraceback.__init__cCs
t|jS)N)lenr:)rrrr__len__szTraceback.__len__cCs4t|tr"tdd|j|DSt|j|SdS)Ncss|]}t|VqdS)N)r1).0tracerrr	<genexpr>sz(Traceback.__getitem__.<locals>.<genexpr>)
isinstanceslicetupler:r1)rindexrrr__getitem__s
zTraceback.__getitem__cCs|j|jkS)N)r2r:)rr3rrr__contains__szTraceback.__contains__cCs
t|jS)N)rr:)rrrrrszTraceback.__hash__cCs|j|jkS)N)r:)rrrrrrszTraceback.__eq__cCs|j|jkS)N)r:)rrrrrr7szTraceback.__lt__cCst|dS)Nr)str)rrrrrszTraceback.__str__cCsdt|fS)Nz<Traceback %r>)rC)rrrrr szTraceback.__repr__NcCsng}|dk	r|dkr|SxP|d|D]@}|jd|j|jftj|j|jj}|r&|jd|q&W|S)Nrz  File "%s", line %sz    %s)r+r4r6	linecachegetlinestrip)rlimitlinesr3linerrrformatszTraceback.format)r:)N)r"r#r$r%rr=rErFrrr7rr rNrrrrr9sr9cCs t|}|dk	rt|SdSdS)N)rr9)objr;rrrget_object_tracebacksrPc@s\eZdZdZddZeddZeddZedd	Zd
dZ	dd
Z
ddZddZdS)Trace_tracecCs
||_dS)N)rR)rr?rrrrszTrace.__init__cCs
|jdS)Nr)rR)rrrrdomainszTrace.domaincCs
|jdS)Nr5)rR)rrrrrsz
Trace.sizecCst|jdS)N)r9rR)rrrrrszTrace.tracebackcCs|j|jkS)N)rR)rrrrrrszTrace.__eq__cCs
t|jS)N)rrR)rrrrr
szTrace.__hash__cCsd|jt|jdfS)Nz%s: %sF)rrr)rrrrr
sz
Trace.__str__cCsd|jt|jd|jfS)Nz'<Trace domain=%s size=%s, traceback=%r>F)rSrrr)rrrrr szTrace.__repr__N)rR)
r"r#r$r%rr8rSrrrrrr rrrrrQsrQc@s<eZdZddZddZddZddZd	d
ZddZd
S)_TracescCstj|||_dS)N)rr_traces)rtracesrrrrs
z_Traces.__init__cCs
t|jS)N)r<rV)rrrrr=sz_Traces.__len__cCs4t|tr"tdd|j|DSt|j|SdS)Ncss|]}t|VqdS)N)rQ)r>r?rrrr@ sz&_Traces.__getitem__.<locals>.<genexpr>)rArBrCrVrQ)rrDrrrrEs
z_Traces.__getitem__cCs|j|jkS)N)rRrV)rr?rrrrF$sz_Traces.__contains__cCs|j|jkS)N)rV)rrrrrr'sz_Traces.__eq__cCsdt|S)Nz<Traces len=%s>)r<)rrrrr *sz_Traces.__repr__N)	r"r#r$rr=rErFrr rrrrrUsrUcCs&tjj|}|jdr"|dd}|S)Nz.pycr5)ospathnormcaseendswith)r4rrr_normalize_filename.s
r]c@seZdZddZddZdS)
BaseFiltercCs
||_dS)N)	inclusive)rr_rrrr6szBaseFilter.__init__cCstdS)N)NotImplementedError)rr?rrr_match9szBaseFilter._matchN)r"r#r$rrarrrrr^5sr^csJeZdZdfdd	ZeddZddZd	d
ZddZd
dZ	Z
S)FilterNFcs2tj|||_t||_||_||_||_dS)N)superrr_r]_filename_patternr6
all_framesrS)rr_filename_patternr6rerS)	__class__rrr>s
zFilter.__init__cCs|jS)N)rd)rrrrrfGszFilter.filename_patterncCs6t|}tj||jsdS|jdkr(dS||jkSdS)NFT)r]fnmatchrdr6)rr4r6rrr_match_frame_implKs
zFilter._match_frame_implcCs|j|||jAS)N)rir_)rr4r6rrr_match_frameTszFilter._match_framecsHjr,tfdd|Dr"jSjSn|d\}}j||SdS)Nc3s|]\}}j||VqdS)N)ri)r>r4r6)rrrr@Ysz*Filter._match_traceback.<locals>.<genexpr>r)reanyr_rj)rrr4r6r)rr_match_tracebackWs

zFilter._match_tracebackcCsD|\}}}|j|}|jdk	r@|jr2|o0||jkS|p>||jkS|S)N)rlrSr_)rr?rSrrresrrrrabs


z
Filter._match)NFN)r"r#r$rr8rfrirjrlra
__classcell__rr)rgrrb=s	rbcs0eZdZfddZeddZddZZS)DomainFiltercstj|||_dS)N)rcr_domain)rr_rS)rgrrrnszDomainFilter.__init__cCs|jS)N)rp)rrrrrSrszDomainFilter.domaincCs|\}}}||jk|jAS)N)rSr_)rr?rSrrrrrravs
zDomainFilter._match)r"r#r$rr8rSrarnrr)rgrromsroc@sTeZdZddZddZeddZddZd	d
ZddZ	dddZ
dddZdS)SnapshotcCst||_||_dS)N)rUrWtraceback_limit)rrWrrrrrrs
zSnapshot.__init__cCs*t|d}tj||tjWdQRXdS)Nwb)openpickledumpZHIGHEST_PROTOCOL)rr4fprrrrvsz
Snapshot.dumpc	Cs t|d}tj|SQRXdS)Nrb)rtruload)r4rwrrrrysz
Snapshot.loadcs@|rtfdd|DsdS|r<tfdd|Dr<dSdS)Nc3s|]}|jVqdS)N)ra)r>trace_filter)r?rrr@sz)Snapshot._filter_trace.<locals>.<genexpr>Fc3s|]}|jVqdS)N)ra)r>rz)r?rrr@sT)rk)rinclude_filtersexclude_filtersr?r)r?r
_filter_traces

zSnapshot._filter_tracecst|tstdt|j|rnggx(|D] }|jrDj|q.j|q.WfddjjD}njjj	}t
|jS)Nz)filters must be a list of filters, not %scsg|]}j|r|qSr)r})r>r?)r|r{rrr
<listcomp>sz*Snapshot.filter_traces.<locals>.<listcomp>)rAr	TypeErrortyper"r_r+rWrVcopyrqrr)rfiltersrzZ
new_tracesr)r|r{rr
filter_tracess

zSnapshot.filter_tracesc
Cs|dkrtd|f|r.|d	kr.td|i}i}|sx|jjD]}|\}}}y||}	WnZtk
r|dkr~|}
n(|dkr|dd}
n|dddff}
t|
}	|	||<YnXy(||	}|j|7_|jd7_WqFtk
r
t|	|d||	<YqFXqFWnx|jjD]}|\}}}x|D]}y||}	WnFtk
r|dkrd|f}
n|ddff}
t|
}	|	||<YnXy(||	}|j|7_|jd7_Wn&tk
rt|	|d||	<YnXq0WqW|S)
Nrr4r6zunknown key_type: %rz/cumulative mode cannot by used with key type %rr5r)rr4r6)r6r4)
ValueErrorrWrVKeyErrorr9rrr)
rkey_type
cumulativeZstatsZ
tracebacksr?rSrZtrace_tracebackrr;r/r3rrr	_group_bysX



"zSnapshot._group_byFcCs,|j||}t|j}|jdtjd|S)NT)reversekey)rlistvaluessortrr!)rrrZgroupedr.rrrr.szSnapshot.statisticscCs6|j||}|j||}t||}|jdtjd|S)NT)rr)rr0rr&r!)rZold_snapshotrrr-r,r.rrr
compare_tos

zSnapshot.compare_toN)F)F)r"r#r$rrvstaticmethodryr}rrr.rrrrrrq{s3

rqcCs$tstdt}t}t||S)NzLthe tracemalloc module must be tracing memory allocations to take a snapshot)Z
is_tracingRuntimeErrorrZget_traceback_limitrq)rWrrrrr
take_snapshots
r)collectionsrr	functoolsrrhrHZos.pathrYruZ_tracemallocrrrrr&r0r1r9rPrQrUr]r^rbrorqrrrrr<module>s0&0#5%0	

OHA YOOOO