/opt/cloudlinux/venv/lib/python3.11/site-packages/guppy/heapy/__pycache__
NameSizeModeActions
Classifiers.cpython-311.pyc908740644editdlrm
Console.cpython-311.pyc18400644editdlrm
Doc.cpython-311.pyc224170644editdlrm
ImpSet.cpython-311.pyc17640644editdlrm
Monitor.cpython-311.pyc248620644editdlrm
OutputHandling.cpython-311.pyc194640644editdlrm
Part.cpython-311.pyc391010644editdlrm
Path.cpython-311.pyc308570644editdlrm
pbhelp.cpython-311.pyc117450644editdlrm
Prof.cpython-311.pyc1503840644editdlrm
RefPat.cpython-311.pyc319370644editdlrm
Remote.cpython-311.pyc232580644editdlrm
RemoteConstants.cpython-311.pyc3700644editdlrm
RM.cpython-311.pyc2970644editdlrm
Spec.cpython-311.pyc997940644editdlrm
Target.cpython-311.pyc8530644editdlrm
UniSet.cpython-311.pyc1223430644editdlrm
Use.cpython-311.pyc266960644editdlrm
View.cpython-311.pyc334320644editdlrm
__init__.cpython-311.pyc7450644editdlrm
Edit: /opt/cloudlinux/venv/lib/python3.11/site-packages/guppy/heapy/__pycache__/Use.cpython-311.pyc (26696B)
§ ²ddèZ^ãóH—ddlZGd„dejjj¦«ZdS)éNcóü—eZdZdZdZdZdZdZd„Zd„Z d„Z d „Z d „Z d „Z d „Zd2d„Zd„Zd„Zd3d„Zd4d„Zd„Zd5d„Zd„Zd„Zd„Zd6d„Zd7d„Zd7d„Zd8d„Zd9d „Zd!Zd"Zd#Z d$Z!d%Z"d&Z#d'Z$d(Z%d)Z&d*Z'd+Z(d,Z)d-Z*d.Z+d/Z,d0Z-d1Z.dS):Ú _GLUECLAMP_)Ú _hiding_tag_)ÚreprefixÚdefault_reprefixÚgcobjsÚrelheapÚrelheapgÚrelheapuÚ__doc__)ÚAnythingÚClodoÚIdÚIdsetÚModuleÚNothingÚProdÚRcsÚRootÚSizeÚTypeÚUnityÚViaÚdocÚfindexÚheapÚheapuÚidsetÚisoÚloadÚmonitorÚpbÚsetrefÚtest)ÚViewrÚ _load_statÚ_check_tracemallocÚctimerÚdumphrÚheapgÚloadcr r r rÚ setrelheapÚ setrelheapgÚ setrelheapuÚtc_adaptÚtc_reprÚunionÚuniset_from_setcsatableÚwarningsÚStatzhpy().có—|jS©N©r©Úselfs úc/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib64/python3.11/site-packages/guppy/heapy/Use.pyÚ _get_gcobjsz_GLUECLAMP_._get_gcobjsó €ØŒ|Ðócó—|jSr6r7r8s r:Ú _get_relheapz_GLUECLAMP_._get_relheapr<r=có—|jSr6r7r8s r:Ú _get_relheapgz_GLUECLAMP_._get_relheapgr<r=có—|jSr6r7r8s r:Ú _get_relheapuz_GLUECLAMP_._get_relheapu"r<r=cóØ—ddl}t|j ¦«¦«D]9\}}t ||j¦«rt |dd¦«|jurd|zcSŒ:|jS)NrÚ_sharez%s.) Ú__main__ÚlistÚ__dict__ÚitemsÚ isinstanceÚ __class__ÚgetattrrEr)r9rFÚkÚvs r:Ú _get_reprefixz_GLUECLAMP_._get_reprefix%s~€ð ˆˆˆÝ˜Ô*×0Ò0Ñ2Ô2Ñ3Ô3ð !ð !‰DˆAˆqݘ1˜dœnÑ-Ô-ð !ݘA˜x¨Ñ.Ô.°$´+Ð=Ð=ؘq‘yÐ Ð Ð øØÔ$Ð$r=có$—|jjjS)a[Root: RootStateType This attribute is a symbolic root containing attributes from which all reachable objects in the heap can be reached. It is the only value (a singleton) of its kind; see [1] for a description of its attributes. References [0] heapy_Use.html#heapykinds.Use.Root [1] heapy_RootState.html#heapykinds.RootStateType)r%ÚheapycÚ RootStater8s r:Ú _get_Rootz_GLUECLAMP_._get_Root1s€ðŒyÔÔ)Ð)r=có8—d|j›d|jdd…›d�S)Nz&Top level interface to Heapy. Use eg: zdoc for more info on éÿÿÿÿú.)rr8s r:Ú__repr__z_GLUECLAMP_.__repr__>s,€€ð ŒMˆMˆM˜4œ=¨¨"¨Ô-Ð-Ð-ð/ð /r=ÚcóZ—|}|jjjj ||¦«S)aL #OBSOLETE $HP.dir(opts: str+])-> GuppyDir $HP.dir(opts: str+]). -> GuppyDoc A replacement for the builtin function dir(), providing a listing of public attributes for Heapy objects. It also has an attribute for each item in the listing, for example: >>> $HP.dir().heap returns a GuppyDoc object providing documentation for the heap method. The method also takes a string argument specifying further options. Currently the following are provided: 'l' Generate a listing of the synopsis lines. 'L' Generate a listing of the entire doc strings.)Ú_rootÚguppyÚetcÚHelpÚdir)r9ÚoptsÚobjs r:ÚDdirz_GLUECLAMP_.DdirDs*€ð&ˆØŒzÔÔ#Ô(×,Ò,¨S°$Ñ7Ô7Ð7r=cój—|jjjj |dd|jz¬¦«S)a²Overview documentation for top level Heapy object. Provides a listing of the available attributes. Accessing the attribute name on the doc objects gives further info, eg: >>> hp.doc.heap gives doc for the heap method when hp is the top level Heapy object. References may be embedded in the documentations. To access a reference, opening up a web browser with the doc for it one can do eg: >>> hp.doc.heap[1] The reference number 0 is special. If it is provided, it is the reference to the html doc for the described object itself. So to see in the web browser the doc for the heap method one can do: >>> hp.doc.heap[0] References [0] heapy_Use.html#heapykinds.Use.docz3Top level interface to Heapy. Available attributes:z2Use eg: %sdoc. for info on .)ÚheaderÚfooter)rZr[r\r]r^rr8s r:Ú_get_docz_GLUECLAMP_._get_docZsF€ð.ŒzÔÔ#Ô(×,Ò,¨Tð57ð56Ø8<¼ ñ5Fð-ñGôGð Gr=cóª—|jjdkr|j d¦«|j ¦«st d¦«‚dS)N)éézoPython 3.7 and below tracemalloc may not record accurate producer trace. See https://bugs.python.org/issue35053zqTracemalloc is not tracing. No producer profile available. See https://docs.python.org/3/library/tracemalloc.html)ÚsysÚ version_infor3ÚwarnÚ tracemallocÚ is_tracingÚ RuntimeErrorr8s r:r'z_GLUECLAMP_._check_tracemallocwsv€Ø Œ8Ô  6Ò )Ð )Ø ŒM× Ò ðIñ Jô Jð JðÔ×*Ò*Ñ,Ô,ð JÝðIñJôJð Jð Jð Jr=écó‚—|j d¦«|j |¦«}||jz}|S)z DEPRECATED zIMethod Use.heapg is depreciated, it doesn't work well. Use heapu instead.)r3rkr%r*r )r9ÚrmaÚhs r:r*z_GLUECLAMP_.heapg�sF€à Œ ×ÒØ Wñ Yô Yð Yà ŒI�OŠO˜CÑ Ô ˆØ ˆTŒ]ш؈r=rcó¾—|j |¦«}d}|s5|jr.t|jt |¦«¦«r ||jz}d}|r‡|j}|s5|jr.t|jt |¦«¦«r ||jz}d}d|_|r0|xjd| |jj¦«zz c_|xjdz c_|S)aheapu() -> Stat Finds the objects in the heap that remain after garbage collection but are _not_ reachable from the root. This can be used to find objects in extension modules that remain in memory even though they are gc-collectable and not reachable. Returns an object containing a statistical summary of the objects found - not the objects themselves. This is to avoid making the objects reachable. See also: setref[1] References [0] heapy_Use.html#heapykinds.Use.heapu [1] heapy_Use.html#heapykinds.Use.setrefrrozData from unreachable objectsz relative to: %sz. ) r%rr rJÚtypeÚstatÚ firstheaderr(Útimemade)r9rqÚabsrurrÚrels r:rz_GLUECLAMP_.heapu‰sô€ð$ ŒI�OŠO˜CÑ Ô ˆØˆØð �t”}ð ­°D´MÅ4ÈÁ7Ä7Ñ)KÔ)Kð Ø �”Ñ ˆA؈CØ ð #Ø”ˆAØð ˜4œ=ð ­Z¸¼ ÅtÈAÁwÄwÑ-OÔ-Oð Ø�T”]Ñ"�Ø�à;ˆAŒMàð DØ� ” Ð!3Ø!%§¢¨D¬MÔ,BÑ!CÔ!Cñ"DñD� ” à ˆMŒM˜UÑ "ˆMŒMàˆr=có`—|j ¦«}||jz}||jz}|S)aheap() -> IdentitySet[1] Traverse the heap from a root to find all reachable and visible objects. The objects that belong to a heapy instance are normally not included. Return an IdentitySet with the objects found, which is presented as a table partitioned according to a default equivalence relation (Clodo [3]). See also: setref[2] References [0] heapy_Use.html#heapykinds.Use.heap [1] heapy_UniSet.html#heapykinds.IdentitySet [2] heapy_Use.html#heapykinds.Use.setref [3] heapy_Use.html#heapykinds.Use.Clodo)r%rrr )r9rrs r:rz_GLUECLAMP_.heap¯s2€ð" ŒI�NŠNÑ Ô ˆØ ˆTŒ[ÑˆØ ˆTŒ\ш؈r=cót‡‡ ‡ —t‰t¦«rt‰¦«Š ˆ fd„}nÎt‰d¦«rt‰d¦«sˆfd„}n¨t‰d¦«r‰|r‰j}n‰j}gŠ |¦«}|st ‚d|z} |r(‰  |¦«||krn|¦«}|°(t ‚n%#t $r‰  |¦«YnwxYwˆ fd„}ntd¦«‚tt|¦«¦«¦«}|  d¦«std ‰z¦«‚||  d ¦«d zd … ¦«} t||¦«}n$#t $rtd ‰›d|›d�¦«‚wxYw||¦«S)a˜load(alt:[fn: loadablefilenamestring+ or fn: loadableiterableofstrings+] [use_readline = boolean+]) -> Stat Load heapy-related data from a serialized form. Currently it handles data generated by Stat.dump. Arguments fn: loadablefilenamestring+ A string argument is treated as a file name. fn: loadableiterableofstrings+ An open file or an iterator will be iterated over enough to read one package of data, and another call to load will read the next package. use_readline = boolean+ If true, the method will use .readline() instead of iteration, which may be necessary in case the input comes from a pipe since otherwise the Python runtime would try to read ahead a big block before returning the first package of data. Returns one package of statistical data. References [0] heapy_Use.html#heapykinds.Use.loadc3óš•K—d} ‰ |¦«‰ ¦«}|sdS‰ ¦«}|V—ŒF)Nr)ÚseekÚreadlineÚtell)ÚposÚlineÚfs €r:Ú get_trowsz#_GLUECLAMP_.load..get_trowsìsUøèè€Ø�ðØ—F’F˜3‘K”K�KØŸ:š:™<œ<�DØðؘ؟&š&™(œ(�CØ�J�J�Jð r=Ú__iter__Ú__next__có•—‰Sr6©)Úfns€r:rƒz#_GLUECLAMP_.load..get_trows÷sø€Ø� r=z.end: %scó•—‰Sr6r‡)Útrowss€r:rƒz#_GLUECLAMP_.load..get_trowssø€Ø� r=zBArgument should be a string, file or an iterable yielding strings.z.loader:z1Format error in %r: no initial .loader directive.ú:roNzFormat error in z: no such loader: rV)rJÚstrÚopenÚhasattrr~r…Ú StopIterationÚappendÚ TypeErrorÚnextÚiterÚ startswithÚ ValueErrorÚindexÚstriprLÚAttributeError) r9rˆÚ use_readlinerƒÚget_liner�ÚendlineÚaÚloaderr‚rŠs ` @@r:r z_GLUECLAMP_.loadÅsøøø€õ8 �b�#Ñ Ô ð; Võ�R‘”ˆAð ð ð ð ð ð õ�R˜Ñ $Ô $ð' V­W°R¸Ñ-DÔ-Dð' Vð ð ð ð ð ð å �R˜Ñ $Ô $ð# Vðð 'Øœ;��àœ;�àˆEØ�8‘:”:ˆDØð $Ý#Ð#Ø  4Ñ'ˆGð &Øð(Ø—L’L Ñ&Ô&Ð&ؘw’�ØØ#˜8™:œ:�Dð ð(õ (Ð'ðøõ!ð &ð &ð &Ø— ’ ˜WÑ%Ô%Ð%Ð%Ð%ð &øøøð ð ð ð ð ð õØTñVôVð Võ •�i�i‘k”kÑ"Ô"Ñ #Ô #ˆØ�|Š|˜JÑ'Ô'ð JÝØCÀbÑHñJôJð Jà�1—7’7˜3‘<”< ‘>�?�?Ô#×)Ò)Ñ+Ô+ˆð JݘT 6Ñ*Ô*ˆFˆFøÝð Jð Jð JÝ�*Ø=?¸R¸RÀÀÀÐHñJôJð Jð Jøøøðˆv�iÑ Ô Ð sÂ1CÃC$Ã#C$Å:F Æ !F,c#ó€K—t|t¦«rt|¦«} | |¦«V—Œ)z< Generates all objects from an open file f or a file named f)rJrŒr�r )r9r‚s r:Úloadallz_GLUECLAMP_.loadall*sCèè€å �a�Ñ Ô ð Ý�Q‘”ˆAð Ø—)’)˜A‘,”,Ð Ð Ð ð r=cóp—t|dd¦«} t| |d¬¦«¦«Œ%)NÚrro)r™)r�Úprintr )r9rˆr‚s r:r+z_GLUECLAMP_.loadc1s;€Ý ��S˜!Ñ Ô ˆð 0Ý �$—)’)˜A¨A�)Ñ.Ô.Ñ /Ô /Ð /ð 0r=có—t|d¦«}ddl} | ¦«}|j |¦«| ¦«t t| ¦«¦«¦«Œq)NÚwr) r�ÚgcrruÚdumpÚflushr¢ÚlenÚ get_objects)r9rˆr‚r¥Úxs r:r)z_GLUECLAMP_.dumph6sm€Ý ��S‰MŒMˆØˆ ˆ ˆ ð )Ø— ’ ‘ ” ˆAØ ŒF�KŠK˜‰NŒNˆNØ �GŠG‰IŒIˆIÝ •#�b—n’nÑ&Ô&Ñ'Ô'Ñ (Ô (Ð (ð  )r=Ncó—|€,|€*| ¦«| ¦«dS|�| |¦«|�| |¦«dSdS)aúsetref() Set a reference point for heap usage measurement. This applies to both the heap[1] and heapu[2] methods. The heap() method will only show the objects allocated after the time setref was called. The heapu() method, since it deals with summary data and not actual objects, will show the difference of sizes and counts compared to when setref was called. References [0] heapy_Use.html#heapykinds.Use.setref [1] heapy_Use.html#heapykinds.Use.heap [2] heapy_Use.html#heapykinds.Use.heapuN)r,r.)r9Ú reachableÚ unreachables r:r#z_GLUECLAMP_.setref?sw€ð Ð  Ð!4Ø �OŠOÑ Ô Ð Ø × Ò Ñ Ô Ð Ð Ð àÐ$Ø—’  Ñ*Ô*Ð*ØÐ&Ø× Ò  Ñ-Ô-Ð-Ð-Ð-ð'Ð&r=cóJ—|€|j ¦«}||_dSr6)r%rr ©r9Ú references r:r,z_GLUECLAMP_.setrelheapWs$€Ø Ð Øœ ŸšÑ(Ô(ˆIØ ˆŒ ˆ ˆ r=cóŒ—|j d¦«|€ d|_|j ¦«}||_dS)Nz:Method Use.setrelheapg is depreciated, use setref instead.)r3rkr r%r*r¯s r:r-z_GLUECLAMP_.setrelheapg\sK€Ø Œ ×ÒØ Hñ Jô Jð Jà Ð Ø ˆDŒMØœ ŸšÑ)Ô)ˆIØ!ˆŒ ˆ ˆ r=có�—|€d|_| d|¬¦«}|rt||j¦«s|j}||_dS)NT)rxru)r rrJr4ru)r9r°rus r:r.z_GLUECLAMP_.setrelheapudsQ€Ø Ð Ø ˆDŒMØŸ š  t°$˜ Ñ7Ô7ˆIØ ð '�  9¨d¬iÑ8Ô8ð 'Ø!œˆIØ!ˆŒ ˆ ˆ r=FcóN—|jjj |¦«dS)zÔtest([debug: bool+ = False]) Run the Heapy test suite. Argument debug If True, the tests will be run in debug mode so the stack frame can be examined with pdb.pm() after the first exception.N)Ú_parentr$Útest_allÚ test_main)r9Údebugs r:r$z_GLUECLAMP_.testls&€ð Œ ÔÔ"×,Ò,¨UÑ3Ô3Ð3Ð3Ð3r=)z_parent.Classifiers:Clodoz_parent.Classifiers:Idz_parent.Classifiers:Idsetz_parent.Classifiers:Modulez_parent.Classifiers:Prodz_parent.Classifiers:Rcsz_parent.Classifiers:Sizez_parent.Classifiers:Typez_parent.Classifiers:Unityz_parent.Classifiers:Viaz_parent.Classifiers:findexz_parent.Classifiers:sonokindz_parent.Classifiers:tc_adaptz_parent.Classifiers:tc_reprz_parent.Monitor:monitorz_parent.Part:_load_statz_parent.Part:Statz_parent.Prof:pbz_parent.UniSet:Anythingz_parent.UniSet:idsetz_parent.UniSet:isoz_parent.UniSet:Nothingz_parent.UniSet:unionz&_parent.UniSet:uniset_from_setcastablez _parent:Viewz_parent.View:_hiding_tag_z _root:sysz_root:tracemallocz_root.time:ctimez_root:warningsz†Anything: Kind A symbolic set that represents all possible Python objects. References [0] heapy_Use.html#heapykinds.Use.AnythingadClodo:EquivalenceRelation Clodo(alt:[tc: typeexceptdict+ or dictof = typeoremptytuple+]) -> Kind Equivalence relation by class or dict owner. It distinguishes between objects based on their type just like the Type relation, and in addition distinguishes between dicts depending on what class they are 'owned' by, i.e. occur in __dict__ attribute of. When called it returns the equivalence class defined by the argument, EITHER: tc: A positional argument, a type but not a dict, to create the corresponding equivalence class. OR: dictof: A named argument, to create an equivalence class consisting of all dicts that are owned by objects of the type specified in the argument; or dicts with no owner if an empty tuple is given. XXX express this simpler&better... References [0] heapy_Use.html#heapykinds.Use.ClodoaYId:EquivalenceRelation Id(address: objectaddress+) -> Kind) This equivalence relation defines objects to be equivalent only if they are identical, i.e. have the same address. When called it returns the equivalence class defined by the argument: address: The memory address of an object. References [0] heapy_Use.html#heapykinds.Use.IdaºId:EquivalenceRelation Idset(node: Anything+) -> IdentitySet This equivalence relation defines objects to be equivalent only if they are identical, i.e. have the same address. When called it returns the equivalence class defined by the argument: node: Anything+ Any object is a valid argument. Note This is mainly for special purpose internal use. The Id equivalence relation is more efficient when partitioning large sets.a§Module:EquivalenceRelation x.Module( draw:[name = modulename+ , at = moduleaddress+]) -> Kind This equivalence relation defines objects to be equivalent if they are the same module, or if none of them is a module. Partitioning a set of objects using this equivalence relation will therefore result in one singleton set for each module and one set containing all other objects. Calling the Module equivalence relation creates a Kind containing the module given in the keyword argument(s). Either the name, address or both may be specified. If no argument is specified the equivalence class is that of non-module objects. References [0] heapy_Use.html#heapykinds.Use.Modulez^Nothing: IdentitySet The empty set. References [0] heapy_Use.html#heapykinds.Use.NothingaÅProd: EquivalenceRelation Prod() -> KindOfProdFamily[1] Prod(path_prefix: string+) -> Kind Prod(scope: Anything+) -> Kind Prod(seq: [filename: string+, alt: positive+]) -> KindOfProdFamily[1] In this equivalence relation, objects are classified by the producer, the line in which the object was allocated. In zero-argument form, the equivalence relation creates a Kind matching objects whose producer is unknown. In one-argument form, the equivalence relation constructor creates an alternative equivalence relation and has two possible types of arguments: path_prefix: string+ A path prefix filter on the file name scope: Anything+ Anything that can be used by inspect.getsourcelines() In the two-argument form, the equivalence relation creates a Kind matching objects whose producer matches exactly the given arguments: filename: string+ File name of the producer lineno: positive+ Line number of producer With None arguments, the default equivalence relation will never match, but alternate equivalence relations may, as described in KindOfProdFamily[1]. References [0] heapy_Use.html#heapykinds.Use.Prod [1] heapy_UniSet.html#heapykinds.KindOfProdFamilyaRcs: EquivalenceRelation Rcs ( 0..*: alt:[kind: Kind+ or sok: SetOfKind+]) -> KindOfRetClaSetFamily (Referrer classification set.) In this equivalence relation, objects are classified by classifying their referrers, using the Clodo equivalence relation. These classifications are collected in a set, representing the classification of the object. Calling Rcs creates an equivalence class from specified set of referrer classifications. The arguments specify a set of Kind objects, each of which representing an equivalence class of Clodo. kind: Kind+ This adds a single Kind to the set of Kinds of referrers. sok: SetOfKind+ This adds each Kind in the sok argument to the total set of Kinds of referrers. References [0] heapy_Use.html#heapykinds.Use.Rcsa?Size: EquivalenceRelation Size(size: notnegative+) -> KindOfSizeFamily[1]) In this equivalence relation, objects are classified by memory size, so each equivalence class represents a particular size of object. References [0] heapy_Use.html#heapykinds.Use.Size [1] heapy_UniSet.html#heapykinds.KindOfSizeFamilyaÅType: EquivalenceRelation Type(type: type+) -> KindOfTypeFamily[1] In this equivalence relation, objects are classified by type so each equivalence class represents objects of a particular type. Calling it creates a Kind representing the type specified in the argument: type: type+ A Python type object or a representation of it. References [0] heapy_Use.html#heapykinds.Use.Type [1] heapy_UniSet.html#heapykinds.KindOfTypeFamilya?Unity: EquivalenceRelation Unity() -> Kind[1] In this equivalence relation, all objects are considered equivalent. There is only one equivalence class, that is, Anything[2]. References [0] heapy_Use.html#heapykinds.Use.Unity [1] heapy_UniSet.html#heapykinds.Kind [2] heapy_Use.html#heapykinds.Use.Anythinga•Via: EquivalenceRelation Via( 0..*:rel: relationname+) -> KindOfInViaFamily[1] In this equivalence relation, objects are classified by how they are referred from their referrers, so each equivalence class represents objects that have a particular set of relations to their referrers. Calling it creates a Kind representing the set of referrers specified by the argument: rel: relationname+ Each argument specifies one referrer relation. The arguments should be strings and can be of any of the following forms. [expression] Indexing of a dict, list, tuple (etc). The expression must be a Python expression that can be evaluated in a local environment. The environment will contain the builtins and a name 'hp' that is bound to the current Use instance. .attribute Getting an attribute from a builtin type or a slot of a slotted type. (I.E. not an attribute that is in a dict of an object.) .f_locals["name"] A local variable of a frame. .f_locals ["name"] A variable in a CELL of a frame. Note the space between f_locals and [. This is to distinguish it from ordinary locals, and still use a syntax that could be used to access those variables directly from Python. .keys()[integer] A key in a dictionary, at the indicated place in its keys(). References [0] heapy_Use.html#heapykinds.Use.Via [1] heapy_UniSet.html#heapykinds.KindOfInViaFamilya~ findex( 0..*:kind: Kind+) -> ( Subkind of: EquivalenceRelation[1] callable: (index: notnegative+) Calling the returned equivalence relation creates an equivalence class. Argument index: notnegative+ The position of the matching kind in the sequence of kinds. The first one has index 0. Specifying the length of the sequence means that the equivalence class returned is the one where none of the kinds in the sequence matched. ) Create an equivalence relation based on a sequence of kinds. The name is a combination of find and index. The classification of each objects is done as follows: For each kind in the sequence, check whether the object is an element of that kind. If it is, the classification is the index of that kind in the sequence. If the end of the sequence is reached, the classification is the length of the sequence. Argument kind: Kind+ Each argument specifies the kind in that position in the sequence. Bugs Though the Kind objects representing the equivalence classes work with set operations such as intersection and union, the tests such as subset and equality do not generally give the expected result. References [0] heapy_Use.html#heapykinds.Use.findex [1] heapy_UniSet.html#heapykinds.EquivalenceRelationaqidset(nodes: iterable+) -> IdentitySet[1] Create a set of objects based on identity. Argument nodes: iterable+ The argument must be an iterable and may yield any kind of objects. Note This method is the same as iso except for the argument. References [0] heapy_Use.html#heapykinds.Use.idset [1] heapy_UniSet.html#heapykinds.IdentitySetauiso( 0..*:node: Any+) -> IdentitySet[1] Create a set of objects based on identity. Argument node: Any+ Any kind of objects are valid arguments. Note This method is the same as idset[2] except for the argument. References [0] heapy_Use.html#heapykinds.Use.iso [1] heapy_UniSet.html#heapykinds.IdentitySet [2] heapy_Use.html#heapykinds.Use.idsetú )rX)ro)rorro)r)NNr6)Nro)F)/Ú__name__Ú __module__Ú __qualname__Ú _preload_Ú _chgable_Ú_dir_Ú _private_rr;r?rArCrOrSrWrarer'r*rrr rŸr+r)r#r,r-r.r$Ú _imports_Ú _doc_AnythingÚ _doc_ClodoÚ_doc_IdÚ _doc_IdsetÚ _doc_ModuleÚ _doc_NothingÚ _doc_ProdÚ_doc_RcsÚ _doc_SizeÚ _doc_TypeÚ _doc_UnityÚ_doc_ViaÚ _doc_findexÚ _doc_idsetÚ_doc_isoÚ _doc_sokindr‡r=r:rrs.€€€€€Ø€Ið?€Ið €Eð€Ið Ðððððððððððððð %ð %ð %ð *ð *ð *ð/ð/ð/ð 8ð8ð8ð8ð,GðGðGð:JðJðJððððð$ð$ð$ð$ðLððð,c!ðc!ðc!ðc!ðJððð0ð0ð0ð )ð)ð)ð.ð.ð.ð.ð0!ð!ð!ð!ð "ð"ð"ð"ð"ð"ð"ð"ð 4ð 4ð 4ð 4ð€IðB2€Mð/€Jð0 ,€Gð  €Jð0€Kð"1€Lð"9€IðH-€Hð, 9€Ið 9€Ið 2€Jð%:€HðN#<€KðJ 4€Jð /€Hð€K€K€Kr=r)Úguppy.etc.Gluer[r\ÚGlueÚ Interfacerr‡r=r:úrÔsVðØÐÐÐðn ðn ðn ðn ðn �%”)”.Ô*ñn ôn ðn ðn ðn r=