bg/LGddZGddeZGddeZGddeZGdd Zd Zed ad S) ceZdZdZdZdS)Horizonc ||_|j|_|jj|_|j|_|jjjj|_|jj|_t||dgdi|j |dz |jj |j |j |j|j|_dS)N)mod _hiding_tag_retsethv_rootsysexc_infoisostr__dict__heapentergccollectheapycr hv_horizon)selfrs G/opt/cloudlinux/venv/lib64/python3.11/site-packages/guppy/heapy/View.py__init__zHorizon.__init__s,ho &*3 8< DKKBB >> ? ? HHRLL        *,,TW55c||j|j|jj}|SN)r rnewsrrr r)rrs rrz Horizon.newss: KK,,TX^^DGL-I-IJJ K KrN)__name__ __module__ __qualname__rrrrrrrs2 6 6 6rrceZdZdZdZdZdS) ClearCallbackcallbackc||_dSrr$)rr%s rrzClearCallback.__init__s   rc`|j||dStddS)Nz No callback)r%print)rwrs r__call__zClearCallback.__call__s6 = $ MM"      - rN)rr r! __slots__rr*rrrr#r#s7I!!!!!!!!rr#ceZdZdZdZdS) Gchook_type)x __weakref__cbc||_dSr)r.)gs rrzGchook_type.__init__&s rNrr r!r+rrrrr-r-#s((Irr-ceZdZdZdZdS)ObservationList)rcJt||||_dSr)listrr)riterable hiding_tags rrzObservationList.__init__-s$ dH%%%&rNr3rrrr5r5*s(I'''''rr5cJeZdZdZdZdZdZdZdZgZ dZ dZ dZ d Z d Zd Zd Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#d Z$d!Z%d"Z&d#Z'd6d$Z(d6d%Z)d&Z*d'Z+d(Z,d)Z- d7d+Z.d8d,Z/d-Z0d.Z1d9d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d*S): _GLUECLAMP_) z_parent.ImpSet:immnodesetz_parent.ImpSet:immnodeset_unionz_parent.ImpSet:mutnodesetz_parent.ImpSet:NodeSetz_parent.UniSet:nodeset_adaptz_parent.UniSet:retsetz_parent.Use:idsetz_parent.Use:isoz_parent.Use:Typez _root:ctypesz_root:gcz _root:types)is_rg_update_allreferrers_lock_is_clear_drg_enabledroot)rtargetis_hiding_calling_interpreterFr)imdom referrers_gcc*|Sr mutnodesetrs r_get__clear_hookz_GLUECLAMP_._get__clear_hookWs   rc|j} t|d}|g}|d|dS|jj|ddkr8t d||d|dj_ dSdS#t$r|YdSwxYw)Nz-GC hook object was referred to from somebody!) _clear_hookr7 clear_setupr r getrefcountr(clear_callbackr0r% IndexError)rchr)cs r clear_checkz_GLUECLAMP_.clear_checkZs   (b!B At|  """""++AaD11A55EFFF##B'''#'!   65             sB**C  C c|j|jD] }| |dSr)rLclear clear_methodsrM)rr)ms rrOz_GLUECLAMP_.clear_callbackksN    #  A ACCCC rc |j}||}||j}||_||jj ||dSr) rLrU gchook_typer#rOr0addr weakrefref)rrQrRr0s rrMz_GLUECLAMP_.clear_setupqsr            3 4 4 tz!%%a,,-----rcgSrrrGs r_get_clear_methodsz_GLUECLAMP_._get_clear_methodsys rcb|j||dSr)rVappendrS)rrWs rclear_register_methodz!_GLUECLAMP_.clear_register_method|s1 !!!$$$ rchfd}|S)NcPjrjrdSdSr) is_sortedr>rU)drgrsr clear_drgz2_GLUECLAMP_._get_dict_ownership..clear_drgs-} !;  r) nodegraphra)rrfres` @r_get_dict_ownershipz_GLUECLAMP_._get_dict_ownershipsLnn       ""9--- rctSr)r-rGs r_get_gchook_typez_GLUECLAMP_._get_gchook_typesrct|j|jjj|jjjSr)ctypescast pythonapiPyCapsule_Type py_objectvaluerGs r_get_capsule_typez_GLUECLAMP_._get_capsule_types4{ K ! 0$+2GIIIN Orcp|jt|jjjSr)rr7r@r modulesitemsrGs r_get_heapdef_modulesz _GLUECLAMP_._get_heapdef_moduless, DKO+1133444rcg}|jD]T\}} t|d}n#t$rY#wxYw|rt||js?||Ut |S)N _NyHeapDefs_)heapdef_modulesgetattrAttributeError isinstance capsule_typer`tuple)rheapdefsnrWhds r _get_heapdefsz_GLUECLAMP_._get_heapdefss(  DAq Q//!     ZD,=>>  OOB    Xs ! ..c|jjSr)_parentrrGs r _get_heapycz_GLUECLAMP_._get_heapycs $,"55rcH||j|j}|S)N)rrA)new_hvrrA)rr s r_get_hvz_GLUECLAMP_._get_hvs, [[d&77;7Y[[ rc*|SrrErGs r _get_noreferz_GLUECLAMP_._get_norefers4??#4#44rcgSrrrGs r_get_referrers_targetsz"_GLUECLAMP_._get_referrers_targetssRircb|}||j|Sr)rgra _clear_rgrrgs r_get_rgz_GLUECLAMP_._get_rgs, ^^   ""4>222 rc|jrdS|j}|jr/||jdSdSr)r=rrdrUnoreferrs rrz_GLUECLAMP_._clear_rgsO    F W <  HHJJJ L   DrcdSNrJrrGs r_get_referrers_lockz_GLUECLAMP_._get_referrers_locks!!rc|jjSr)r RootStaterGs r _get_rootz_GLUECLAMP_._get_roots  55rcJ|jj|jSr)rTargetrrGs r _get_targetz_GLUECLAMP_._get_targets$,"5"<" 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.rJ) dominos_tuplerrs rdominosz_GLUECLAMP_.dominoss !!1$''**rcfd|D}jjjg}||t fd|DS)zcV.dominos_tuple(X) -> tuple of idsets Return a tuple of dominos for the tuple of sets of objects X.c:g|]}|Sr) nodeset_adapt.0r.rs r z-_GLUECLAMP_.dominos_tuple..s7  ##rc ng|]1}||zz 2Sr)r )rDiDTWrs rrz-_GLUECLAMP_.dominos_tuple..sBHHHrdkk!!B((QQq!b&\\"9::HHHr)r reachable immnodesetr?immnodeset_unionr~)rrD_Srrrs` @@@rrz_GLUECLAMP_.dominos_tuples G  OOTYK ( (  ! !" % % AaGGHHHHHHHRHHHIIIrc:||fdS)zdomisize(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.rJ)domisize_tuplers rdomisizez_GLUECLAMP_.domisizes ""A4((++rc`tfd|DS)zk"V.domisize_tuple(X) -> tuple of ints Return a tuple of dominated sizes for the tuple of sets of objects X.c:g|]}|Sr)indisize)r dominos_irs rrz._GLUECLAMP_.domisize_tuple..s5>>>#mmI..>>>r)r~rrs` rrz_GLUECLAMP_.domisize_tuplesK>>>>'+'9'9!'<'<>>>?? ?rc|jjr d|j_nB|jj |Sddl}|jj|j_ |}d|j_n#d|j_wxYw|Sr)r rA limitframeinspect currentframef_back)rfuncrretvals rrz_GLUECLAMP_.enters 7 0 F!%DG   W  +466M NNN!(!5!5!7!7!>!EDG  &TVVF!%DG  DG  % % % % s  A44Bc}fdjj|gS)Nc}jj|dSr)rUrYrZr r[r\)r)rRr0rhors rr0z_GLUECLAMP_.gchook..cb sY DFFF HHJJJ  ""A FF4:%))!R00 1 1 1 1 1r)rYrFrZr r[r\)rrrRr0rs`` @@rgchookz_GLUECLAMP_.gchooks      __   2 2 2 2 2 2 2 2 tz!%%a,,---t$$$rc|j|j|j}|j}|||jd}||td}|||jj j d}|||jj j d}| |}~~|r|||j|jj|j||jjg|z }|S)Nz!=)rr get_objectsr cli_typeselectrYr#r types FrameTyper[ ReferenceTyper idsetrHeapViewrr reachable_xrobservation_containers)rrmaobjsclirs rheapgz_GLUECLAMP_.heapgsL  w""$$g  zz$ 0$77zz$ t44zz$ 0 :DAAzz$ 2 @$GG KK     TZZ 4 4 % !!k!6 788++--Arc |j|j|j}||j|t z}|r|||j|jj |j  | |jj g| |gz}| ||z }|j|z }||ks||z}|j|z }||k~~|j}|Sr)rrrTyperYr#rrrrrrrr referentsbytype)rrrexcluder\s rheapuz_GLUECLAMP_.heapu7s=   G   ! !99T-..99]++,   tzz$+"6"6 % ##k!6 788$$ G KKNNW $kG#(( HA-')C((  Hrctsj}gdddddig}|_ t|t|djt|dj|_n #|_wxYw~~daj fdS)zAV.heap() -> idset Return the set of objects in the visible heap. argGz?brJTc\jSr)rr rrGsrz"_GLUECLAMP_.heap..ns!**TW\\^^44r) heap_one_time_initializedr?reprrrshpathsrprrr)rold_rootrs` rrz_GLUECLAMP_.heapTs) -yHQsCj$7DDI %TZZ%%&&&TXXd1g&&.///TXXd1g&&)***$ H $$$$(, % zz555566 6s A 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.)r referrersr rrr?r )rrpredvisits rrBz_GLUECLAMP_.imdomts` !!$.."3"344##DOOTYK$@$@$GG{{4%<(((rc\|j||S)zindisize(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.)r indisize_sumrrs rrz_GLUECLAMP_.indisize}s( w##D$6$6q$9$9:::rNc||j}||j}||j}|j||}||_||_||||j j j ||j j j ||j j j |Sr)rr?rYrrrrAregister_hidden_exact_typeregister__hiding_tag__typerUniSetKindIdentitySetMultiIdentitySetSingleton)rrrArr?rYr s rrz_GLUECLAMP_.new_hvs  }H <9D  *K [ ! !$ 1 1&+H( %%k222 %%dl&9&>??? %%dl&9&JKKK %%dl&9&NOOO rcT|j||}|j|_|Sr)r NodeGraphr)rr8 is_mappingngs rrgz_GLUECLAMP_.nodegraphs( [ " "8Z 8 8+ rc ||jj|S#t$rYnwxYw ||j|S#t$rYnwxYw ||j|S#t$r t dt|zwxYw)NzNo object found at address %s) rr static_typesobj_at ValueErrorrrrhex)raddrs rrz_GLUECLAMP_.obj_ats ??47#788??EE E    D  ??47#6#6#8#899@@FF F    D  J??47<<>>2299$?? ? J J JB BB>C*C>crj}j}||jd||t dz||jjj dz} fd|D}~~|S)Nz<=cDg|]}t|ddju|S)rN)rzrrs rrz6_GLUECLAMP_.observation_containers..sH;;;1 ~t1%1%(,(91:1:Q1:1:1:r) rrr rrNodeSetr5rrrr)rrrrs` rrz"_GLUECLAMP_.observation_containerss w""$$g   4t44 4$778 $,-BDJJJ OO;;;;;;; < < rrc,t||jSr)r5r)rr8s robservation_listz_GLUECLAMP_.observation_listsx):;;;rc||j||S)zsV.referents(X) -> idset Return the set of objects that are directly referred to by any of the objects in the set X.)r r relimgrrs rrz_GLUECLAMP_.referentss2{{47>>$*<* idset Return the set of objects that directly refer to any of the objects in the set X.rJNzupdate_referrers failedzY - domain of rg:)rr<r?rrr domain_coversrrUrrr update_referrers_completely get_domainrFreferrers_targetssetnodesr get_ranger(rr rr )rrraddnorefYwtts rrz_GLUECLAMP_.referrerss   q ! !   TY$+2G%G%GG))!,, )G))!dl*:;; )   33DG<<<tw11333 ( ""A  A7((++ 0))BA}QU[(TW''))) ((!444 ""$$$ Q):):)<)>??? GNN1   OOA  $ ' KKNNrct||}||jj|||z S)zV.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. )r~rrr get_referrersrrs rrCz_GLUECLAMP_.referrers_gcsM $$$Q'' ( (zz/$'/344txx{{BBrcfd}jj||}j|dS)Nc<j|dSr)rremove)r)rs rrz0_GLUECLAMP_.referrers_add_target..removes  " ) )" - - - - -r)r r[r\rr`)rrrr)s` rreferrers_add_targetz _GLUECLAMP_.referrers_add_targetsS . . . . . Z  # #Av . . %%b)))))rc0||dS)aV.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)rrs rrz_GLUECLAMP_.update_referrerss qr)r)NFNNN)NF)r)8rr r! _imports_ _chgable_ _setable_rAr<r>r_uniset_exportsrHrSrOrMr^rarhrjrrrvrrrrrrrrrrrrrrrrrrrrrrrrBrrrgrrrrrrCrrrrrr;r;2s IILI$)!LO!!!(((" ...   OOO555   655 544/// ,++555OOO%%%+++ J J J,,,???    % % %####J:666:""")));;;GL59& J J J"<<<<BBB (((T C C C*** rr;c ddl}ddl}ddl}ddl ddl}ddl}ddl}t|j D]c}|t|ddt|j D]&}t|trt|'dttgttdfD]}t| ddl}ddl}ddl} n#t&$rYnwxYwd|jvrQ fd} | } | rB t)| } | dkr|ddSdS#t,$rYdSwxYwdSdS)NrJrr pythoncomc ddl}|djS#t$rYnwxYw ddl}|jd}tj |d5}| cdddS#1swxYwYn#t$rYnwxYwdS)NrJpywin32r) plat_specificzpywin32.version.txt) pkg_resourcesget_distributionversion Exceptiondistutils.sysconfig sysconfigget_python_libopenpathjoinreadstrip)r' distutilssite_pkgross rget_pywin32_verz,prime_builtin_types..get_pywin32_ver3s, $$$$$55i@@HH     ****$.==A=NN"',,x1FGGHH,A6688>>++,,,,,,,,,,,,,,,,,    4sB! ..AB89&B, B8,B00B83B04B88 CCi,zpythoncom in pywin32 < 300 may cause crashes. See https://github.com/zhuyifei1999/guppy3/issues/25. You may want to upgrade to the newest version of pywin32 by running "pip install pywin32 --upgrade")rguppy.heapy.heapycguppy.sets.setscr5r warningsr[r7rtvaluesrzrr|typediriterapport.fileutilsre traceback ImportErrorintwarnr) rguppyr r9r[rrapportr?r@r6 pywin32_verr5s @rprime_builtin_typesrG s%LLL IIIJJJOOONNNCK&&(()) ;'#z488@ cl))++,,  A!T"" A 488nnd488nn A         ck!!     &&o''  N N!+.. $$MMMNNNNN%$    3"!, N Ns$3D D  D +E E'&E'FN) robjectr#r-r7r5r;rGrrrrrIs* ! ! ! ! !F ! ! !&'''''d'''WWWWWWWWtGNGNGNT"r