ó ;œPc@s‚dfd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdfd „ƒYZd „Zeƒd ad S( tHorizoncBseZd„Zd„ZRS(cCsÆ||_|j|_|jj|_|j|_|jjjj|_|jj|_t|j|jdgdi|j ƒƒ|jdƒƒ|jj |j |j j ƒ|jj|jƒ|_dS(Ni(((tmodt _hiding_tag_tretsetthvt_roottsystexc_infotisotstrt__dict__theaptentertgctcollecttheapycRt hv_horizon(tselfR((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyt__init__s   '  cCs1|j|jj|jj|jjƒƒƒ}|S(N(RRtnewsRR RR (Rtr((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyRs-(t__name__t __module__RR(((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyRs t ClearCallbackcBs eZdZd„Zd„ZRS(tcallbackcCs ||_dS(N(R(RR((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyRscCs(|jdk r|j|ƒndGHdS(Ns No callback(RtNone(Rtwr((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyt__call__s(R(RRt __slots__RR(((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyRs t Gchook_typecBseZdZd„ZRS(txt __weakref__tcbcCs ||_dS(N(R(tg((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyR#s(RRR (RRRR(((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyR!stObservationListcBseZdZd„ZRS(RcCstj||ƒ||_dS(N(tlistRR(Rtiterablet hiding_tag((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyR(s(R(RRRR(((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyR"&st _GLUECLAMP_c BsâeZd@ZdAZdBZeZeZdZgZ dCZ d„Z d„Z d„Z d„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd „Zd!„Zd"„Zd#„Zd$„Zd%„Zd&„Zd'„Zd(„Zd)„Z d*„Z!d+„Z"d,„Z#d-„Z$d.„Z%d/„Z&dd0„Z'dd1„Z(d2„Z)d3„Z*d4„Z+d5„Z,dDedDdDdDd6„Z.dDed7„Z/d8„Z0d9„Z1dEd:„Z2d;„Z3d<„Z4d=„Z5d>„Z6d?„Z7RS(Fs_parent.ImpSet:immnodesets_parent.ImpSet:immnodeset_unions_parent.ImpSet:mutnodesets_parent.ImpSet:NodeSets_parent.UniSet:nodeset_adapts_parent.UniSet:retsets_parent.Use:idsets_parent.Use:isos_parent.Use:Types_root:gcs _root:typestis_rg_update_alltreferrers_lockt_is_clear_drg_enabledRttargettis_hiding_calling_interpreteritimdomt referrers_gccCs |jƒS(N(t mutnodeset(R((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyt_get__clear_hookSscCs|j}yt|ƒd}Wntk r:|jƒn_X|ƒ}|dkr]|jƒn<|jjj|ƒdkr™dGH|j|ƒd|j _ ndS(Niis-GC hook object was referred to from somebody!( t _clear_hookR#t IndexErrort clear_setupRRRt getrefcounttclear_callbackR R(RtchRtc((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyt clear_checkVs      cCs6|jjƒx|jD] }|ƒqW|jƒdS(N(R0tcleart clear_methodsR2(RRtm((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyR4es  cCs]|j}|jƒ|jƒ}|j|jƒ}||_|j|jjj ||ƒƒdS(N( R0R8t gchook_typeRR4R taddRtweakreftref(RR5R6R ((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyR2ls     cCsgS(N((R((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyt_get_clear_methodstscCs|jj|ƒ|jƒdS(N(R9tappendR7(RR:((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pytclear_register_methodwscs/ˆjƒ‰‡‡fd†}ˆj|ƒˆS(Ncs#ˆjrˆjrˆjƒndS(N(t is_sortedR)R8((tdrgR(sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyt clear_drg~s (t nodegraphRA(RRD((RCRsC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyt_get_dict_ownership|s  cCstS(N(R(R((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyt_get_gchook_type‰scCs|j|jjjjƒS(N(RR*Rtmodulestitems(R((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyt_get_heapdef_modulesŒscCsWg}xD|jD]9\}}yt|dƒ}Wn qnX|j|ƒqWt|ƒS(Nt _NyHeapDefs_(theapdef_modulestgetattrR@ttuple(RtheapdefstnR:thd((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyt _get_heapdefs’scCs |jjS(N(t_parentR(R((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyt _get_heapycœscCs"|jd|jd|jƒ}|S(NRR+(tnew_hvRR+(RR((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyt_get_hvžs cCs |jƒS(N(R.(R((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyt _get_norefer£scCsgS(N((R((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyt_get_referrers_targets¥scCs |jƒ}|j|jƒ|S(N(RERAt _clear_rg(Rtrg((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyt_get_rg§s cCs=|jr dS|j}|jr9|jƒ|jjƒndS(N(R(RZRBR8tnorefer(RRZ((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyRY¬s    cCsdS(Ni((R((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyt_get_referrers_lock¸scCs |jjS(N(Rt RootState(R((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyt _get_rootºscCs|jjjƒS(N(RStTarget(R((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyt _get_target»scCs|jƒ||j_dS(N(tclear_retainersRtroot(RRc((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyt _set_root½s cCsA|jd7_z|j|ƒ||ƒSWd|jd8_XdS(Ni(R(tupdate_referrers(RtXtf((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pytcall_with_referrersÁs  cCs|jjƒ|jjƒdS(s3G.clear_retainers() Clear the retainer graph V.rg. N(RZR8R\(R((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyRbÉs cCs|j|fƒdS(sïdominos(X) -> idset Return the dominos of a set of objects X. The dominos of X is the set of objects that are dominated by X, which is the objects that will become deallocated, directly or indirectly, when the objects in X are deallocated.i(t dominos_tuple(RRf((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pytdominosÐsc Cs¡g|D]}|j|ƒ^q}|jj}|j|jgƒ}|j|ƒ}|||ƒ}tg|D]/}|j|||ƒ||||Bƒƒ^qkƒS(scV.dominos_tuple(X) -> tuple of idsets Return a tuple of dominos for the tuple of sets of objects X.(t nodeset_adaptRt reachablet immnodesetRctimmnodeset_unionRNR( RRfRtD_tTtStDtWtDi((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyRi×s " cCs|j|fƒdS(sèdomisize(X) -> int Return the dominated size of a set of objects X. The dominated size of X is the total size of memory that will become deallocated, directly or indirectly, when the objects in X are deallocated. See also: indisize.i(tdomisize_tuple(RRf((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pytdomisizeáscCs/tg|j|ƒD]}|j|ƒ^qƒS(sk"V.domisize_tuple(X) -> tuple of ints Return a tuple of dominated sizes for the tuple of sets of objects X.(RNRitindisize(RRft dominos_i((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyRuéscCsÃ|jjrd|j_n‡|jjdk r4|ƒSddl}y ddWn+|jƒ\}}}|jjj}nXd|_|j ƒ~~~||j_z |ƒ}Wdd|j_X|S(Niÿÿÿÿii( RR+Rt limitframeRRttb_frametf_backtlast_tracebackt exc_clear(RtfuncRttypetvaluet tracebackRytretval((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyR ïs$         cs_ˆjƒ}ˆjƒ‰‡‡‡‡fd†‰ˆjˆjjj|ˆƒƒˆjˆgƒS(Ncs@ˆƒˆjƒˆjƒ}ˆjˆjjj|ˆƒƒdS(N(R8R;R<RR=R>(RR6(R R~thoR(sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyR s  (R;R.R<RR=R>(RR~R6((R R~RƒRsC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pytgchooks   cCs|jjƒ|jjƒ|jjƒ}|jjƒ}|j||jdƒ}|j|tdƒ}|j||jj j dƒ}|j||jj j dƒ}|j |ƒ}~~|r||j|jj|jj|jƒj|j|jjgƒ|jƒƒƒ}n|S(Ns!=(R Rt get_objectsRtcli_typetselectR;RRttypest FrameTypeR=t ReferenceTypeRtidsetRtHeapViewR^ROt reachable_xRmtobservation_containers(RtrmatobjstcliR((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pytheapgs"    cCs|jjƒ|jjƒ|jjƒ}|j|jƒ|jtƒB}|r¦||j|jj|jj |j ƒj |j |jj gƒ|j |gƒƒƒO}n|j |ƒ|}|j|}x'||ksï||O}|j|}qÉW~~|j}|S(N(R RR…tTypeR;RR‹RRŒR^RORRmRt referentstbyclass(RRRtexcludeR>((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pytheapu8s&       cs€ts]datˆjˆjjƒƒƒg}tˆj|ƒjƒtˆj|ƒjƒnˆjj ƒˆj ‡fd†ƒS(sAV.heap() -> idset Return the set of objects in the visible heap. icsˆjˆjjƒƒS(N(R‹RR ((R(sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pytis( theap_one_time_initializedtreprR‹RR RtshpathstrpR RR (RR((RsC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyR Xs cCs |j|ƒS(N(R(R((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pythorizonlscCsM|j|j|ƒƒ}|jj|j|jgƒ|ƒ}|j||@ƒS(sÚimdom(X) -> idset Return the immediate dominators of a set of objects X. The immediate dominators is a subset of the referrers. It includes only those referrers that are reachable directly, avoiding any other referrer.(Rkt referrersRRRmRcR(RRftpredtvisit((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyR,os$cCs|jj|j|ƒƒS(sùindisize(X) -> int Return the sum of the individual sizes of the set of objects X. The individual size of an object is the size of memory that is allocated directly in the object, not including any externally visible subobjects. See also: domisize.(Rt indisize_sumRk(RRf((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyRwxscCsÂ|dkr|j}n|dkr0|j}n|dkrH|j}n|jj||ƒ}||_||_|j|ƒ|j |j j j ƒ|j |j j j ƒ|j |j j jƒ|S(N(RRORcR;RRŒRR+tregister_hidden_exact_typetregister__hiding_tag__typeRStUniSettKindtIdentitySetMultitIdentitySetSingleton(RRR+RORcR;R((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyRU€s         cCs%|jj||ƒ}|j|_|S(N(Rt NodeGraphR(RR$t is_mappingtng((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyRE“s cCs¹y |j|jjƒj|ƒSWntk r3nXy#|j|jjƒƒj|ƒSWntk rjnXy#|j|jjƒƒj|ƒSWn$tk r´tdt|ƒ‚nXdS(NsNo object found at address %s( RmRt static_typestobj_att ValueErrorR R…R thex(Rtaddr((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyR¬˜s  # # cCs¯|jjƒ}|jjƒ}|j||jdƒ|j|tdƒ|j||jjj dƒ}|j g|D]'}t |ddƒ|j krr|^qrƒ}~~~|S(Ns<=R(R R…RR†R‡tNodeSetR"RSR¤R§RmRMRR(RRR‘RR((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyRަs(= cCst||jƒS(N(R"R(RR$((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pytobservation_list·scCs"|j|jj|j|ƒƒƒS(ssV.referents(X) -> idset Return the set of objects that are directly referred to by any of the objects in the set X.(RRtrelimgRk(RRf((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyR”»sc CsL|j|ƒ}|jr¶|j|jjkr¶|jj|ƒpU|jj||jƒs|jjƒddl }|j ƒ|j j |jƒ||jj ƒ}|j|O_qn[|j|ƒ}||j8}|jj|ƒsx9|jD].}|ƒ}|dk rî||jjO}qîqîW||jj ƒO}|jjƒ|j j|j|ƒ|jjƒ|j||B|jjƒBO_|j|jj ƒ8_|j|ƒ|j}|jj|ƒsdGHdGH|j||jj ƒƒGHddlm}m}|ƒnd}n|jj|ƒ}|j|ƒdg}|j|ƒ}|S(siV.referrers(X) -> idset Return the set of objects that directly refer to any of the objects in the set X.iÿÿÿÿNsupdate_referrers failedsY - domain of rg:(tpmt set_trace(RkR'RcRR^RZt domain_coversR\R8R RRtupdate_referrers_completelyt get_domainR.treferrers_targetsRtsettnodesRet get_rangeR‹tpdbR³R´R²RmR( RRfR taddnoreftYtwtttR³R´((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyRžÁsF           cCs;t|j|ƒƒ}|j|jj|Œƒ|j|ƒS(sôV.referrers_gc(X) -> idset Return the set of objects that directly refer to any of the objects in the set X. This differs from referrers in that it uses the gc module's view of the referrers. This is more or less valid depending on viewpoint. (RNRkR‹R t get_referrersR(RRf((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyR-ös cs;‡fd†}ˆjjj||ƒ}ˆjj|ƒdS(Ncsˆjj|ƒdS(N(R¸tremove(R(R(sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyRÂs(RR=R>R¸R@(RRÀRÂR((RsC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pytreferrers_add_targetscCs|j|ƒdS(sV.update_referrers(X) Update the view V from the set X. X must be adaptable to NodeSet. V.rg is updated so that in addition to its previos mapping, it will also contain mappings for the elements of X to their referrers, from them to their referrers and so on. N(Rž(RRf((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyRes( s_parent.ImpSet:immnodesets_parent.ImpSet:immnodeset_unions_parent.ImpSet:mutnodesets_parent.ImpSet:NodeSets_parent.UniSet:nodeset_adapts_parent.UniSet:retsets_parent.Use:idsets_parent.Use:isos_parent.Use:Types_root:gcs _root:types(R'R(R)(RR*R+(R,R-N((8RRt _imports_t _chgable_t _setable_tFalseR+R'R)Rt_uniset_exportsR/R7R4R2R?RARFRGRJRRRTRVRWRXR[RYR]R_RaRdRhRbRjRiRvRuR R„R’R—R RR,RwRRURER¬RŽR±R”RžR-RÃRe(((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyR&,s€                        &        5 cCsÛddl}ddl}ddl}ddl}ddl}x_|jjƒD]N}|dkrdqLnx3|jjƒD]"}t |t ƒrtt |ƒqtqtWqLWx6t t gƒƒt t dƒƒgD]}t |ƒqÃWdS(Niÿÿÿÿ(( Rˆtguppy.heapy.heapyctguppy.sets.setscRR=RHtvaluesRR t isinstanceRtdirtiter(RˆtguppyRR=RRÀ((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pytprime_builtin_typess      +iN( RtobjectRRR#R"R&RÐR™(((sC/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/View.pyts ÿæ