bg DddlmZddlmZGddeZGddeZGddeZGd d eZGd d eZ Gd deZ GddeZ GddZ Gdde Z Gdde ZGdde ZGdde ZGdde ZGdde ZGdd e ZGd!d"eZGd#d$e ZGd%d&Zd'fd(Zd)fd*ZGd+d,Zd-S).)reduce) property_expc>eZdZdZdZdZdZdZeZdZ dZ dZ d Z d Z d Zd Zd ZdZdZdZdZdZdZdZeZdZdZdZdZdZeZeddZ dZ!edZ"dZ#d Z$d!Z%d"Z&d#Z'd$Z(ed%d&Z)ed'd(Z*d)S)*UniSet) _hiding_tag_fam_origin_z#heapy_UniSet.html#heapykinds.UniSetznodes: ImmNodeSet The actual objects contained in x. These are called nodes because they are treated with equality based on address, and not on the generalized equality that is used by ordinary builtin sets or dicts.c:|jd||S)z, Return the intersection of self and other. andrc_binopselfothers I/opt/cloudlinux/venv/lib64/python3.11/site-packages/guppy/heapy/UniSet.py__and__zUniSet.__and__sxtU333c:|j|||SN)rc_callrargskwdss r__call__zUniSet.__call__sdhoodD$.O.O'Orc8|j||S)z< Return True if other is a member of self, False otherwise. )r c_containsrs r __contains__zUniSet.__contains__sx""4///rc||ko||kS)zJ Return True if self contains the same elements as other, False otherwise.rs r__eq__z UniSet.__eq__!su}..rc6|j|S)zh Return an hash based on the kind of the set of self and the addresses of its elements, if any. )rc_hashrs r__hash__zUniSet.__hash__'s xt$$$rc8|jd|S)z Return the complement of self. invert)rc_unopr$s r __invert__zUniSet.__invert__.sxx...rc||urdSt|ts|j|}|j||S)zT Return True if self is a superset of (and may be equal to) other, False otherwise. T) isinstancerrc_unisetc_gers r__ge__z UniSet.__ge__4O 5==4%(( -H%%e,,Ex}}T5)))rc||ko||k S)z[ Return True if self is a strict (may not be equal to) superset of other. False otherwise. r rs r__gt__z UniSet.__gt__? u}2TU]!22rcVjjjfdS)z Get family-specific attribute. c:jSr)r c_getattr)rrsrz$UniSet.__getattr__..Jstx/A/A$/N/Nr)rmodViewenterrs``r __getattr__zUniSet.__getattr__Fs.x| &&'N'N'N'N'NOOOrc||urdSt|ts|j|}|j||S)zR Return True if self is a subset of (and may be equal to) other, False otherwise. T)r+rrr,c_lers r__le__z UniSet.__le__Lr/rc8|j||S)a <>> Return a 'mapping' set, which may be used for specification and test purposes. It implements the syntax: return_spec << argument_spec The elements of the set returned are the callable objects that return values in return_spec, when called with arguments according to argument_spec. The return_spec may be any kind of sets that can test for element containment. The argument_spec may be a set or a tuple. If it is a set, it should be able to generate some examples, to allow the mapping to be tested. When argument_spec is a set, the mapping will have a single argument. Any number of arguments may be specified using an argument_spec which is a tuple. The arguments are then specified with sets, that should be able to generate examples. Special features of the mapping such as optional arguments may be specified in the same way as when using the 'mapping' function in the Spec.py module. )rc_lshift) return_spec argument_specs r __lshift__zUniSet.__lshift__Ws0'' ]CCCrc||ko||k S)zY Return True if self is a strict (may not be equal to) subset of other, False otherwise. r rs r__lt__z UniSet.__lt__qr2rct|ts|j|}|j||S)ac Return the cartesian product of self and other, which is the set of pairs where the first element is a member of self and the second element is a member of other. NOTE: Unlike what one might expect from the way the cartesian product may be defined mathematically, the operation as implemented here is nonassociative, i.e. a*b*c == (a*b)*c != a*(b*c) In the mathematical case, a*b*c would be a set of triples, but here it becomes a set of pairs with the first element in (a*b) and the second element in c. To create sets of triples etc. the cprod() factory function in Spec.py could be used directly. )r+rrr,c_mulrs r__mul__zUniSet.__mul__xsA(%(( -H%%e,,Ex~~dE***rc||k S)zN Return True if self does not equal other, False otherwise. See also: __eq__. r rs r__ne__z UniSet.__ne__s 5=  rc6|j|S)z= Return True if self contains some element, False otherwise. )r c_nonzeror$s r__bool__zUniSet.__bool__s x!!$'''rc:|jd||S)z% Return the union of self and other. orr rs r__or__z UniSet.__or__sxdE222rc6|j|S)zW Return a string representing self. This is usually the same string as from __str__. )rc_reprr$s r__repr__zUniSet.__repr__s xt$$$rc6|j|S)z Return a string representing self. The string is usually the same as the .brief attribute, but a major exception is the IdentitySet class. rc_strr$s r__str__zUniSet.__str__s x~~d###rct|ts|j|}|j||S)zq Return the assymetrical set difference. That is, the set of elements in self, except those that are in others. r+rrr,c_subrs r__sub__zUniSet.__sub__A %(( -H%%e,,Ex~~dE***rct|ts|j|}|j||S)z Return the assymetrical set difference. That is, the set of elements in other, except those that are in self. This is like __sub__ except it handles the case when the left argument is not a UniSet (but convertible to a UniSet). rXrs r__rsub__zUniSet.__rsub__sA%(( -H%%e,,Eyud+++rct|ts|j|}|j||S)zy Return the symmetrical set difference. That is, the set of elements that are in one of self or other, but not in both. )r+rrr,c_xorrs r__xor__zUniSet.__xor__r[rc6|j|Sr)r c_get_briefr$s rr6zUniSet.dh&:&:4&@&@raA string representation of self, which is brief relative to the representation returned by __str__ and __repr__. (In many cases it is the same - both are then brief - but for IdentitySet objects the brief representation is typically much shorter than the non-brief one.)docc^|jjjjj|Sr)rr7_rootguppyre help_instancer$s r _get_helpzUniSet._get_helps#x|!'+99$???rch|jjjjjj|Sr)rr7rgrhetcHelpdirr$s rr6zUniSet.s$DHL$6$<$@$E$I$I$$O$Orc6|j|Sr)r c_get_ckcr$s rget_ckczUniSet.get_ckcsx!!$'''rc8|j||S)z Return information about the 'origin' of the set. This was intended to be used for specification purposes - is experimental, noncomplete, temporary. )rc_derive_origin)rres r_derive_origin_zUniSet._derive_origin_s x''c222rc8|j||S)z Return True if self and other are disjoint sets, False otherwise. This is equivalent to calculating (self & other) == Nothing but may be implemented more efficiently in some cases. )r c_disjointrs rdisjointzUniSet.disjointsx""4///rc8|j||S)aV Return an iterable object or an iterator, which provides someexamples of the elements of self. (A minimum of 2 examples should normally be provided, but it may depend on some test configuration options.) This is used for automatic test generation from specifications. The env argument is according to specification of TestEnv in Spec.py, )rc_get_examples)renvs r get_exampleszUniSet.get_examplessx&&tS111rc6|j|S)a Return a function that may be used to render the representation of the elements of self. This is mainly intended for internal representation support. The function returned depends on the kind of elements self contains. The rendering function is choosen so that it will be appropriate, and can be used safely, for all objects of that kind. For the most general kind of objects, the rendering function will only return an address representation. For more specialized kinds, the function may provide more information, and can be equivalent to the builtin repr() when the kind is narrow enough that it would work for all elements of that kind without exception. )r c_get_renderr$s r get_renderzUniSet.get_renders x$$T***rc:|j|||S)ae Test if self contains the element object. This is used mainly for internal use for automatic (experimental) testing of specifications. The env argument is according to specification of TestEnv in Spec.py. It provides support for things that depends on the specific test situation, such as a test reporting protocol. If test_contains did find the element to be contained in self, the method will return (usually True). But if the element was not contained in self, the method should call env.failed(message), and return whatever may be returned; though typically env.failed() would raise an exception. )rc_test_contains)relementrzs r test_containszUniSet.test_containssx''gs;;;rc6|j|Sr)r c_get_biperr$s rr6zUniSet.%rcrzA bipartitioning equivalence relation based on x. This may be used to partition or classify sets into two equivalence classes: x.biper(0) == x The set of elements that are in x. x.biper(1) == ~x The set of elements that are not in x. c6|j|Sr)r c_get_dictofr$s rr6zUniSet.0stx'<'d?Z'ed@dAZ(edBdCZ)edDdEZ*edFdGZ+ee dHZ,ee dIZ-ee dJZ-ee dKZ.edLdMZ/edNdOZ0edPdQZ1dS)T IdentitySet)_er _partition_morez(heapy_UniSet.html#heapykinds.IdentitySetc:||_|j|_d|_dSr)rrr )rrs rrzIdentitySet.__init__Ks, rc8|j||Srr c_getitemridxs r __getitem__zIdentitySet.__getitem__Pstx'9'9$'D'D Drc6|j|Sr)rc_lenr$s r__len__zIdentitySet.__len__QsdhnnT222rc6|j|Sr)rc_iterr$s r__iter__zIdentitySet.__iter__Rstxt444rc6|j|S)z{ Return a string representating self. This differs from the .brief attribute in that it is a tabular representation. ... rTr$s rrVzIdentitySet.__str__Tsx~~d###rNrFc P|jj||||||||| S)a x.get_rp(depth=None, er=None, imdom=0, bf=0, src=None, stopkind=None, nocyc=False, ref=None) Return an object representing the pattern of references to the objects in X. The returned object is of kind ReferencePattern. Arguments depth The depth to which the pattern will be generated. The default is taken from depth of this module. er The equivalence relation to partition the referrers. The default is Clodo. imdom If true, the immediate dominators will be used instead of the referrers. This will take longer time to calculate, but may be useful to reduce the complexity of the reference pattern. bf If true, the pattern will be printed in breadth-first order instead of depth-first. (Experimental.) src If specified, an alternative reference source instead of the default root. stopkind The referrers of objects of kind stopkind will not be followed. nocyc When True, certain cycles will not be followed. ref See also rp (a shorthand for common cases) )rRefPatrp) rdeptherimdombfsrcstopkindnocycrefs rget_rpzIdentitySet.get_rp_s4Dx!!$r5"c8"'.. .rr cF|jj||||S)a?x.get_shpaths(draw:[src, avoid_nodes, avoid_edges]) -> Paths Return an object containing the shortest paths to objects in x. The optional arguments are: src:IdentitySet An alternative source set of objects avoid_nodes:IdentitySet Nodes to avoid avoid_edges:NodeGraph Edges to avoid )rPathshpaths)rr avoid_nodes avoid_edgess r get_shpathszIdentitySet.get_shpathss"x}$$T3 [IIIrc8|j||S)z< x.by(er) -> A copy of x, but using er for equiv. relation. )rget_by)rrs rbyzIdentitySet.bysxtR(((rcP|j||jjz Sr)statrrrs rdiffzIdentitySet.diffs y588DG,,111rc*|jj|i|dS)zD Dump statistical data to a file Shorthand for .stat.dump N)rdumprs rrzIdentitySet.dumps#  %%%%%%rc,|dS)NClodorr$s rr6zIdentitySet.(8(8rz=A copy of self, but with 'Clodo' as the equivalence relation.rdc,|dS)NIdsetrr$s rr6zIdentitySet.rrzA copy of self, but with 'Idset' as the equivalence relation. Note This is mainly for special purpose internal use. The Id equivalence relation is more efficient when partitioning large sets.c,|dS)NIdrr$s rr6zIdentitySet.sTWWT]]rz:A copy of self, but with 'Id' as the equivalence relation.c,|dS)NModulerr$s rr6zIdentitySet.s):):rz>A copy of self, but with 'Module' as the equivalence relation.c,|dS)NProdrr$s rr6zIdentitySet.twwvrzdggennrz;A copy of self, but with 'Rcs' as the equivalence relation.c,|dS)NSizerr$s rr6zIdentitySet.rrzrrzrrz=A copy of self, but with 'Unity' as the equivalence relation.c,|dS)NViarr$s rr6zIdentitySet.rrz< A copy of self, but with 'Via' as the equivalence relation.c6|j|Sr)rget_err$s rr6zIdentitySet.s48??4#8#8rzUThe equivalence relation used for partitioning when representing / printing this set.c*t|jSr)lennodesr$s rr6zIdentitySet.sc$*oorz,The number of individual objects in the set.c@|jj|Sr)rr8dominosr$s rr6zIdentitySet.s (=(=d(C(CrzThe set 'dominated' by a set of objects. This is the objects that will become deallocated, directly or indirectly, when the objects in the set are deallocated. See also: domisize.c@|jj|Sr)rr8domisizer$s rr6zIdentitySet.s)?)?)E)ErzThe dominated size of a set of objects. This is the total size of memory that will become deallocated, directly or indirectly, when the objects in the set are deallocated. See also: dominos, size. c@|jj|Sr)rr8rr$s rr6zIdentitySet.sdhm&9&9$&?&?rzThe immediate dominators of a set of objects. The immediate dominators is a subset of the referrers. It includes only those referrers that are reachable directly, avoiding any other referrer.c@|jj|Sr)rr8indisizer$s rr6zIdentitySet.s 0F0Ft0L0LrzThe total 'individual' size of the set of objects. 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.c|j|Srrr$s rr6zIdentitySet.s TWT]rzThe kind of objects in the set. The kind is the union of the element-wise classifications as determined by the equivalence relation in use by the set.c t|Sr) MappingProxyr$s rr6zIdentitySet.s|D'9'9raAn object that can be used to map operations to the objects in self, forming a new set of the result. The returned object is an instance of MappingProxy. This works currently as follows: o Getting an attribute of the MappingProxy object will get the attribute from each of the objects in the set and form a set of the results. If there was an exception when getting some attribute, it would be ignored. o Indexing the MappingProxy object will index into each of the objects in the set and return a set of the results. Exceptions will be ignored. Example: >>> hp.iso({'a':'b'}, {'a':1}).maprox['a'].byid Set of 2 objects. Total size = 40 bytes. Index Size % Cumulative % Kind: Name/Value/Address 0 28 70.0 28 70.0 str: 'b' 1 12 30.0 40 100.0 int: 1 >>> c6|j|Sr)rget_morer$s rr6zIdentitySet.TX%6%6t%<%<rzAn object that can be used to show more lines of the string representation of self. The object returned, a MorePrinter instance, has a string representation that continues after the end of the representation of self.c6|j|Sr)rget_allr$s rr6zIdentitySet. sDH$4$4T$:$:rzRAn object that can be used to show all lines of the string representation of self.c6|j|Sr)r get_ownersr$s rr6zIdentitySet.tx':':4'@'@rzThe set of objects that 'own' objects in self. The owner is defined for an object of type dict, as the object (if any) that refers to the object via its special __dict__ attribute.c6|j|Sr)r get_partitionr$s rr6zIdentitySet.s$(*@*@*F*FraA partition of the set of objects in self. The set is partitioned into subsets by equal kind, as given by a equivalence relation. Unless otherwise specified, the equivalence relation used is 'byclodo', which means it classifies 'by type or dict owner'. Different equivalence relations are specified for sets created by the 'by_...' attributes of any IdentitySet object. The value is an instance of guppy.heapy.Part.Partition.c6|j|Sr)r get_partsr$s rr6zIdentitySet.sdh&8&8&>&>rzAn iterable object, that can be used to iterate over the 'parts' of self. The iteration order is determined by the sorting order the set has, in the table printed when partitioned.c6||jSr)r referrersr$s rr6zIdentitySet."s(8(8(H(Hrz;The paths from the direct referrers of the objects in self.c6|j|Sr) referentsrr$s rr6zIdentitySet.%s)C)CD)I)Irz2The paths to the referents of the objects in self.c@|jj|Sr)rr8rr$s rr6zIdentitySet.($(-*A*A$*G*GrzOThe set of objects that are directly referred to by any of the objects in self.c@|jj|Sr)rr8rr$s rr6zIdentitySet.,rrzEThe set of objects that directly refer to any of the objects in self.zprp: ReferencePattern An object representing the pattern of references to the objects in X. See also get_rpzsx.shpaths: Paths An object containing the shortest paths to objects in x. Synonym sp See also get_shpathsznx.sp: Paths An object containing the shortest paths to objects in x. Synonym sp See also get_shpathszsx.sp: Paths An object containing the shortest paths to objects in x. Synonym shpaths See also get_shpathsc4|jSr) partitionget_statr$s rr6zIdentitySet.RsT^%<%<%>%>rzx.stat: Stat An object summarizing the statistics of the partitioning of x. This is useful when only the statistics is required, not the objects themselves. The statistics can be dumped to a file, unlike the set of objects itself.c6|j|Sr)r get_theoner$s rr6zIdentitySet.Zrrztheone: Anything The one object in a singleton set. In case the set does not contain exactly one object, the exception ValueError will be raised. c6|j|Sr)rget_prodr$s rr6zIdentitySet.arrz[theone: MorePrinter The traceback for the producer for the one object in a singleton set. )NNrrNNFN)NNr )2rrrrrrrrrrVrrrrrrbyclodobyidsetbyidbymodulebyprodbyrcsbysizebytypebyunitybyviarcountrrrrsizekindmaproxmoreallownersrpartspathsinpathsoutrrrrsprtheoneprodr rrrrGs,I;J EDD222444 $ $ $>B/3#.#.#.#.J J J J J)))222&&& l88?ABBBGl88?    G <229> ? ? ?D|::ABCCCH\66=@AAAF L44;? @ @ @E\66=@AAAF\66=@AAAFl88?ABBBG L44;? @ @ @E 88?   B L55<0 1 1 1ElCCJG|EELH L??F8 9 9 9E #l#L#LS Ht <229   D \99@ABBBF8 <<<C   D ,::A   C\@@G.///F  FFM;<<>E/ 0 0 0E lHHO?@@@G|IIP6777H GGN    I GGNIJJJI f#   Bl;-Gl;-G k(   B <>>E   D\@@GF <<<C   DDDrrc"eZdZdZfdZxZS)IdentitySetMultircXt|||_dSr)superrr)rrr __class__s rrzIdentitySetMulti.__init__ks&  r)rrrrr __classcell__r)s@rr%r%hs=Irr%c^eZdZdZdZfdZeddZdZeeZ xZ S)IdentitySetSingleton_nodez1heapy_UniSet.html#heapykinds.IdentitySetSingletoncXt|||_dSr)r(rr/)rrnoder)s rrzIdentitySetSingleton.__init__ts&  rcB|j|jfSr)r immnodesetr/r$s rr6zIdentitySetSingleton.ysdh&9&94:-&H&Hrzx.nodes: ImmNodeSet The actual objects contained in x. These are called nodes because they are treated with equality based on address, and not on the generalized equality that is used by ordinary builtin sets or dicts.rdc|jSrr.r$s r _get_theonez IdentitySetSingleton._get_theones zr) rrrrrrrrr5r"r*r+s@rr-r-pszIDJ LHHO< = = =E\+ & &FFFFFrr-cfeZdZdZdZdZd dZdZdZe eZ dZ e e Z d Z d S) EquivalenceRelationaAn equivalence relation is a binary relation between two elements of a set which groups them together as being "equivalent" in some way. An equivalence relation is reflexive, symmetric, and transitive. In other words, the following must hold for "~" to be an equivalence relation on X: * Reflexivity: a ~ a * Symmetry: if a ~ b then b ~ a * Transitivity: if a ~ b and b ~ c then a ~ c. An equivalence relation partitions a set into several disjoint subsets, called equivalence classes. All the elements in a given equivalence class are equivalent among themselves, and no element is equivalent with any element from a different class. ) classifiererargsz0heapy_UniSet.html#heapykinds.EquivalenceRelationr cV||_|j|_||_||_d|_dSr)rrr8r9r )rrr8r9s rrzEquivalenceRelation.__init__s-,$  rc8|j||Srrrs rrzEquivalenceRelation.__getitem__sx!!$,,,rc@|jj|Sr)r Classifiers mker_dictofr$s r _get_dictofzEquivalenceRelation._get_dictofx#//555rc@|jj|Sr)rr= mker_refdbyr$s r _get_refdbyzEquivalenceRelation._get_refdbyr@rc.|jj|g|Ri|Sr)r8 get_sokindrs rsokindzEquivalenceRelation.sokinds')t)$>>>>>>>rN)r )rrr__doc__rrrrr?rrrCrefdbyrFr rrr7r7s$'ICJ---666 \+ & &F666 \+ & &F?????rr7c$eZdZdZdZdZdZdS)r_set_c||_dSrrJrsets rrzMappingProxy.__init__s  rc|dkrt||S|jj|j|S)NrK)object__getattribute__rKrmaprox_getattrrnames rrQzMappingProxy.__getattribute__s= 7??**466 6z~,,TZ>>>rcL|jj|j|Sr)rKrmaprox_getitemrSs rrzMappingProxy.__getitem__sz~,,TZ>>>rN)rrrrrrQrr rrrrsFI??? ?????rrceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdifdZdZdZdZdZdZdZdZdZ d 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-dS)-FamilyNc||_|jj|_|j|_|j|_||_|jj|_||g|_t|_ dSr) r7_parentDocrtypesr3 disjoints export_dictsupersrSetrr7s rrzFamily.__init__sf;?,Y ))8/nndV,, rc.|||Sr)r`rrs rrzFamily.__call__sxxc"""rc8|j||Srr[ add_origin)rorigins rrtzFamily._derive_origin_sx""4000rc|||}|j||jj|g|R}|Srr`r[rfcallfunc)rtuprs rspecotupzFamily.specotupI HHT3   H  #448#4T#@C#@#@#@ A Arc|||}|j||j||}|Srri)rrrls rspecoargzFamily.specoargsC HHT3   H  48#4#4T3#?#? @ @rc|||}|j||jj|g|R}|Srri)rrrkrls r specoargtupzFamily.specoargtuprnrc|j|jjur#|jj|_||jvr!|j||urtd|z||j|<dS)Nz Duplicate: %s)r^r7copy ValueError)rrTvalues r add_exportzFamily.add_exportst  tx3 3 3#x388::D  4# # #(8(>e(K(K_t344 4!&rc&td|z)Nz!No alternative set for family %s.ru)rars rrz Family.c_altst|d|z|}|Sr|)r~)rrrzrls rr(z Family.c_unops$ "GD$r' " "1 % %rc8|j||Srrerrzrs rrszFamily.c_derive_originsx""1a(((rc td)NzNot callable setryrrzrrs rrz Family.c_calls+,,,rcN|j}|||z|juSr)r7isoNothing)rrzrr7s rrzFamily.c_containss$hCGGAJJs{22rc@|jj|Sr)r7r=rrrzs rrzFamily.c_get_bipersx#))!,,,rc@|jj|Sr)r7r=rrs rrzFamily.c_get_dictofsx#**1---rc$||z|jjuSrr7rrs rrvzFamily.c_disjoint sA$(***rcPt|d|jj||S)N_factordisjoint_)r~ropnamers rc_factordisjointzFamily.c_factordisjoint s,EwttQU\\CDDQJJJrc:d|d||dS)N[ ]rb)rrzrs rc_get_brief_altzFamily.c_get_brief_alts'CC!1!1!!4!4!4!455rc6|j|Sr)r7uniset_from_setcastablerXs rr,zFamily.c_unisetsx//222rcgSrr )rrzrzs rryzFamily.c_get_exampless rr ch|j}||vr|||g|Ri|S|||Sr)r^ c_getattr2)rrzrrrds rr5zFamily.c_getattrsK   661Q4)D)))D)) )q!$$$rc t|r)AttributeErrorrs rrzFamily.c_getattr2"sQrc$|jjjSr)r7 summary_str str_addressrs rr}zFamily.c_get_render%sx#//rc|jSrrrs r c_get_str_forzFamily.c_get_str_for(s wrcz|}t|d|}t|dd}|sd}|S)Nim_func_idpart_headerValue)r~r~rrzrenderhs rc_get_idpart_headerzFamily.c_get_idpart_header.sD FIv . . A' . . Arc d|zS)Nz<%s>r rs rc_get_idpart_labelzFamily.c_get_idpart_label6s zrc,||Sr)r}rs rc_get_idpart_renderzFamily.c_get_idpart_render9s  ###rc||}|turdSt|d|}t|d|}|S)NIDENTITYr_idpart_sortrender)rreprr~rs rc_get_idpart_sortrenderzFamily.c_get_idpart_sortrender<sK))!,, T>>: FIv . .0&99 rc*t|jSr)hashrrs rr#z Family.c_hashDsAE{{rc tdNziteration over non-sequence TypeErrorrs rrz Family.c_iterGs5666rc td)Nzlen() of unsized objectrrs rrz Family.c_lenJs1222rcdSNTr rs rrKzFamily.c_nonzeroMtrcL|jjj||Sr)r7rZSpeccprodrs rrFz Family.c_mulPs x$**1a000rc|j||||jd||S)Nlshift)r[rfc_mapbinoprs rr?zFamily.c_lshiftSs;x""4::a#3#3TX^^HaQR5S5STTTrct|trt|}t|ts|f}|d|fz}|jjjj|S)Nz->)r+listtupler7rZrmapping)rrzrts rrz Family.c_mapVs] a   aA!U## A q M,tx$,a00rc,||Sr)rUrs rrQz Family.c_repr^szz!}}rc,||Srrrs rrUz Family.c_stra"""rc||zSrr rs rrYz Family.c_subds A2v rc |||sH||jd||d||SdS)N: z does not contain T)rfailedr)rTrrzrrzs rrzFamily.c_test_containsgs_q!$$ i::dnnnchhWXkkkk[^[c[cde[f[f[fghh htrc||z ||z zSrr rs rr_z Family.c_xorlsA!a%  rc8|j||Sr)r_or_TERMrs r_or_ORz Family._or_ORou~~a###rc.|||Sr) _and_ATOMrs r _rand_ATOMzFamily._rand_ATOMrs~~a###r).rrrsuperclrrrtrmrprrrwrrr(rsrrrrrvrrr,ryr5rr}rrrrrr#rrrKrFr?rrQrUrYrr_rrr rrrXrXsG###111   '''EEE )))---333---...+++KKK 666333$&B%%%%    000 $$$777333111UUU111### !!!$$$$$$$$rrXceZdZdZdZdZdZdZdZdZ dZ dZ d Z d Z d ZexZxZZd Zd ZexZZdZdZdZexZZdZdZdZdZdZdS) AtomFamilyTATOMc^t|||xj|gzc_dSr)rXrr]ras rrzAtomFamily.__init__{s,c""" 4& rc8|j||Srrrrs rc_andzAtomFamily.c_anduq!$$$rc8|j||Srr7fam_Andrs rrzAtomFamily._and_ATOMx1%%%rc8|j||Srrrs r_and_ANDzAtomFamily._and_ANDrrc8|j||Srrrs r _and_FACTORzAtomFamily._and_FACTORrrc8|j||Srrrs r _and_INVERTzAtomFamily._and_INVERTrrcf|jj|jjzp|jj|jjzSr)rr]r_rs r_factordisjoint_ATOMzAtomFamily._factordisjoint_ATOMs,!%,./!%,. 0rc8|j||Sr)rrrs r_factordisjoint_INVERTz!AtomFamily._factordisjoint_INVERTsu))!Q///rc8|j||Sr)r_ge_ATOMrs rr<zAtomFamily.c_lerrc*|jduo |j|kSrrrs r_le_ATOMzAtomFamily._le_ATOMs|4'=DLA,==rc8|j||Sr)rrrs rr-zAtomFamily.c_gerrc>|jjduo|jj|kSr)rrrs rrzAtomFamily._ge_ATOMsu}D(?QU]a-??rc8|j||Sr)r_or_ATOMrs rc_orzAtomFamily.c_orrrc8|j||Sr)r7fam_Orrs rrzAtomFamily._or_ATOMsxq!$$$rc6|j|Sr)r7 fam_Invertrs rc_invertzAtomFamily.c_invertsx""1%%%rcH||_|xj|jjzc_dSr)rr_rrcs r defrefiningzAtomFamily.defrefinings!  sw~% rcp|xj|zc_|j}||xj|jjzc_dSdSr)r]rr)rrscs r defdisjointzAtomFamily.defdisjoints@ $ \ > NNbf. .NNNN >rcd||||jdSr)rr rrcs r defrefidiszAtomFamily.defrefidiss2  !!!!!rc|jSrrr$s r fam_unionzAtomFamily.fam_unions |rN)rrrisatomisfactorrrrrrrrrrr<_le_AND _le_INVERTrr- _ge_INVERT_ge_ANDrrr_or_AND _or_INVERTrrr r r r rrrrvsl FH F!!!%%%&&&%%%&&&%%%000000$$$&*)G)j7>>>$$$ J@@@$$$%%% Gj&&&&&& / / /"""rrc&eZdZdZdZdZdZdS) ArgAtomFamilycb||\}}}||||Sr)rp select_ids)rrzrclakrs r_and_IDzArgAtomFamily._and_IDs/nnQ'' Q~~aC(((rcp||jur|j|jkS|jjduo|jj|kSrrrrrs rrzArgAtomFamily._ge_ATOMs8 15==5AE> !u}D(?QU]a-??rc\||jur|j|jkS|jduo |j|kSrrrs rrzArgAtomFamily._le_ATOMs4 15==5AE> !|4'=DLA,==rc |j|jdfS)N==)r8rrs rrpzArgAtomFamily.c_get_ckcst++rN)rrrrrrrpr rrrrsS)))@@@ >>> ,,,,,rrceZdZdZdZdZdZdZdZdZ dZ dZ e xZ Z d Zd Zd ZexZxZZd Zd ZexZxZZdZdZdZexZZdZdZdZ dZ!dZ"dZ#dZ$dZ%dS) AndFamilyANDFc||kr|S||kr|S|j||r |jjS|||fSr)rrr7r_consrs rrzAndFamily.__call__sY 66H 66H 5 ! !!Q ' ' $8# #zz1a&!!!rct|dkr#||t|St|dkr|dS|jjSNr)rr`rr7rrcs rr&zAndFamily._conssP s88a<<88D%**-- - XX]]q6M8# #rcg}|jD]u} ||}t|D]=}|jD]}||ur|||sn||>f#t $rYrwxYw|Sr)rr{rcontainsappend CoverageError)rrzrzexaieeiajs rryzAndFamily.c_get_exampless % & &B &$$R((q''&&Be&&R<<#&<<B#7#7& % " &!     sA00 A=<A=c8|j||Sr)rrrs rrzAndFamily.c_and rrc$|jD]}||z}|Srrrs rrzAndFamily._and_AND s#  A FAArc g}|jD]Q}||kr|cS||kr|j||r|jjcS||R||||Sr)rrrr7rr,r&)rrzrxsr/s rrzAndFamily._and_FACTORs %  BQwwb((Q// x'''' "  ! zz"~~rct|jd|z}|jddD]}||jjurn||z}|SNrr))rr7rrs rrzAndFamily._and_ID"sO E!HqLqrr  ADH$$$AAArc8|j||Sr)rrrs rr<zAndFamily.c_le*u}}Q"""rc||z}|j|us*t|jt|jkrdS|jD]}|jD] }||krn dSdSNFTrrr)rrzrxys r_le_TERMzAndFamily._le_TERM-s E 5  AE c!%jj 8 85  AU  66Euutrc8|j||Sr)rrrs rr-zAndFamily.c_ge;r:rc,|jD] }||ksdS dSr<rrs r_ge_TERMzAndFamily._ge_TERM>-  A66uutrc8|j||Sr)rrrs rrzAndFamily.c_orFr:rc|jj}t|jD]\}}t|jD]\}}||z|krv||jd||j|dzdz}||jd||j|dzdz} || kr|ccS|j||S)Nr))r7r enumeraterr&r) rrzrOmegair/jbjaabbs rrzAndFamily._or_ANDIs!!qu%% " "EAr"15)) " "27e##AE"1"Iacdd $;<s rrzAndFamily._or_TERMVs 66H 66H %  Bq&Cw  #!!A  QHxq!$$$rc>|jj}|jD]}||z} |Srr7rrrrzrlr/s rrzAndFamily.c_invertms/ H %  B "HAArc(|jD] }||vrdS dSr<rrrzrr>s rrzAndFamily.c_containsts-  Azzuutrcv|jD]0}|||ds|dcS1dS)Nr FailedT)rrr)rrzrrzr>s rrzAndFamily.c_test_containszsO , ,A$$Q511 ,zz(+++++ ,trc$||z|jjuSrrrs r c_disjoint3zAndFamily.c_disjoint3sA$(***rcT|jD]}|}|r|cSd}|S)Nc:tt|Srhexidos rrlz!AndFamily.c_get_render..rsr!uu:: rrr~)rcrrls rr}zAndFamily.c_get_rendersLE  D!!A     rcZd|jD}dd|zdzS)Ncg|] }|j Sr r.0rs r z)AndFamily.c_get_brief........r(%s) & )rjoinrranamess rrbzAndFamily.c_get_briefs3..... 5)))C//rc|jjd|jDjdt |jzdfS)Ncg|] }|j Sr )rrer>s rrfz'AndFamily.c_get_ckc..s*B*B*Bq17*B*B*Br)rr!)r7r=mker_andrr8rrs rrpzAndFamily.c_get_ckcsH H ) )*B*BAE*B*B*B C C N QUO   rcTd|jD}dd|zS)Nc,g|]}t|Sr rrers rrfz$AndFamily.c_repr..(((Qa(((rrhrirkrrzreprss rrQzAndFamily.c_reprs.((!%((( 5))))rN)&rrrrrrrr&ryrrrrrrr<r@rrrr-rCrrrrrrrrrrrrXr}rbrprQr rrr#r#s F FH""" $ $ $"$$$   *)I ###   '/.H.zG### '/.H.zG### % % %%%%*%$Hz  +++000    *****rr#ceZdZdZdZdZdZdZdZdZ dZ dZ d Z d Z e xZxZZd Zd Zd ZexZxZZdZdZexZxZZdZdZexZxZZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dS)OrFamilyORFcP||kr|S||kr|S|||fSrr&rs rrzOrFamily.__call__s4 66H 66Hzz1a&!!!rc |D]*}|jjst|jtsJ+t |dkr(t |t|St |dkr|dS|jj Sr() rrr+r#rrXrrr7r)rrrzs rr&zOrFamily._conss B BA5> AZy%A%A A AA s88a<<??4s44 4 XX]]q6M8# #rc(|jD] }||vrdS dSNTFrrTs rrzOrFamily.c_containss-  AAvvtturch|jjj|jjt |jdfS)N<)r7Usefindexrr8rrs rrpzOrFamily.c_get_ckcs*"tx|"AE*5s15zz3FFrc#Kfd|jD} d}t|D]4\}}|- t|V|dz }#t$rd||<Y0wxYw5|sdSK)NcTg|]$}t|%Sr )iterr{)rer>rzs rrfz+OrFamily.c_get_examples..s/888QtC$$Q''((888rr)r)rrGnext StopIteration)rrzrzexanrIr0s ` rryzOrFamily.c_get_exampless8888!%888 A!#  1="1gg Q)&&&!%A&!  sAAAcF|jfddS)Nc2|dS)NzSome x)r)r>rrzs rr6z*OrFamily.c_test_contains..sC,=,=aH,M,MrrN)forsomerrs ``rrzOrFamily.c_test_containss){{15"M"M"M"M"MtTTTrcl||jur|||S|||Sr)r_and_OR _and_TERMrs rrzOrFamily.c_ands5 15==<<1%% %>>!Q'' 'rcB|jj}|jD] }|||zz} |SrrQ)rrzrrls rrzOrFamily._and_TERMs1 H   A QJAArcV|jj}|jD]}|jD] }|||zz} |SrrQ)rrzrrlbis rrzOrFamily._and_ORsG H   Ae  QV  rc|jd}|j||}|jddD] }||j||z}!|Sr8)rrr)rrzrr/rls rrzOrFamily._and_IDs\ U1X FNN2q ! !%) ' 'B A&& &AArc||z}|j|ur<|j|jus*t|jt|jkrdSJ||kSNFr=rs rrCzOrFamily._ge_TERMsR E 5D==uAE!!SZZ3qu::%=%=u 16Mrcl|j|ur|||S|||Sr)rr<rCrs rr-z OrFamily.c_ges3 5D==99Q?? "==A&& &rc,|jD] }||ksdS dSr<rrTs rr<z OrFamily.c_lerDrc8|j||Sr)rrrs rrz OrFamily.c_orsu||Aq!!!rcg}d}|jD]%}||ks||||krd}&|s||||Sr<)rr,r&)rrzrr6lts rrzOrFamily._or_TERM sk    A66 ! 66B  IIaLLLzz"~~rcdt|j|jz}||Sr)maximalsrr&)rrzrr6s rrzOrFamily._or_ORs' aeaem $ $zz"~~rcR|jd}|jddD]}||z} |Sr8rrRs rrzOrFamily.c_inverts: U1XI%)  B "HAArc|jd|jD}t|dkrt |dSd}d|_d|_|S)Nc6g|]}|Sr )r~rds rrfz)OrFamily.c_get_render..&s"&K&K&KTt'8'8&K&K&Krr)rc:tt|Srr[r^s rrlz OrFamily.c_get_render..r*s2a55zz!rAddressc t|Sr)r]r>s rr6z'OrFamily.c_get_render..-s RUUr)r7 mutnodesetrrrrr)rrarendersrls rr}zOrFamily.c_get_render%sp(%%&K&KQU&K&K&KLL w<<1  ==# # " " "(A #2?A Hrcd|jD}|dd|zdzS)Ncg|] }|j Sr rrds rrfz(OrFamily.c_get_brief..1rgr( | rjrsortrlrms rrbzOrFamily.c_get_brief0s@..... UZZ&&&,,rcdS)NBriefr rs rrzOrFamily.c_get_idpart_header5swrcdS)Nzr rs rrzOrFamily.c_get_idpart_label8syrc\|jjj}|jjifd}|S)Nc|}|}|L|}|j}|}||f}||<|\}}|d||S)Nr)classifygetget_kindrr~ r>rbrrrrlbrmemorclis rrz,OrFamily.c_get_idpart_render..renderBs QAABz||ALLOO)OO%%Vq DAq qq!!A$$$' 'rr7rrr8rrrzrrrrrs @@@rrzOrFamily.c_get_idpart_render;sN X\ mg ( ( ( ( ( ( ( rc\|jjj}|jjifd}|S)Nc6|}|}|S|}|j}|j|}||f}||<n|\}}|dkr ||}||fS)Nr)rrrrrrrs rrz0OrFamily.c_get_idpart_sortrender..renderYs QAABz||ALLOO)H44T::Vq 1JAaDDq6Mrrrs @@@rrz OrFamily.c_get_idpart_sortrenderRsN X\ mg        rc|d|jD}|dd|zS)Nc,g|]}t|Sr rurvs rrfz#OrFamily.c_repr..jrwrrhrrrxs rrQzOrFamily.c_repris;((!%(((  5))))rN)*rrrrrrrr&rrpryrrrrrrrrrCrrrr-r<rrrrrrrrrrr}rbrrrrrQr rrr{r{s F FH""" $ $ $ GGG   UUU((( *32I2 h'/.H.zG'''  '+*H*zG"""   '/.H.zG    --- ..*****rr{ceZdZdZdZdZdZdZdZdZ e Z dZ e xZ Z d Zd Zd Zd ZeZd ZdZdZexZxZZdZeZdZexZZdZdZdZ dZ!dZ"dS) InvertFamilyINVERTFTc|jjsJ||jjur |jjSt ||Sr)rrr7r NotNothingrXrrs rrzInvertFamily.__call__ts@u||  8& &??4++ +rc:||j|dS)Nr)test_contains_notrrs rrzInvertFamily.c_test_contains{s$$QUA~>>>rc||jvSrrrs rrzInvertFamily.c_contains~s:rc8|j||Sr)rrrs rrzInvertFamily.c_andsu  A&&&rcz|j|z}|jjr ||}|j||Sr)rrrr7rrTs rrzInvertFamily._and_FACTORs@ EAI 5< QAx1%%%rc|||jzz Srrrs rrzInvertFamily._and_IDsAIrc||jkSrrrs rrz!InvertFamily._factordisjoint_ATOMsAEzrcdSrr rs rrz#InvertFamily._factordisjoint_INVERTurc8|j||Sr)rrrs rr<zInvertFamily.c_leu1%%%rcdSrr rs rrzInvertFamily._le_ATOMrrc"|j|jkSrrrs rrzInvertFamily._le_INVERTsu~rc6|j|Sr)rrwrs rr-zInvertFamily.c_gesu~~a   rc8|j||Sr)rrrs rrzInvertFamily.c_orrrc|j|kr |jjS|j|z}||jjur|S|j||Sr)rr7rrrTs r _or_FACTORzInvertFamily._or_FACTORsQ 5A::H$$ $ EAI  Hxq!$$$rc|jSrrrs rrzInvertFamily.c_inverts u rc4|jSrr`rs rr}zInvertFamily.c_get_rendersu!!!rc|jj}|ds|ds d|vrd|z}d|zS)Nrrrrh~%s)rr startswith)rrzrs rrbzInvertFamily.c_get_briefsN EKc"" all3&7&7 q Aqyrc*|jjjddfS)Nrz!=)rrr8rs rrpzInvertFamily.c_get_ckcs EK "   rc0dt|jzS)Nr)rrrs rrQzInvertFamily.c_reprstAE{{""rN)#rrrrrrrrrrrrrrrrrr<rrrr-rrrrrrrrrr}rbrprQr rrrros~ F FH,,,???'''H&&&*)I &&&G!!!'+*H*zG&&&G%%%'&Hz"""   #####rrc eZdZdZdZdZdS) FamilyFamilycjt|||dddS)Nunionc4|jSr)rr rs rr6z'FamilyFamily.__init__..s15??+<+<r)rrrwras rrzFamilyFamily.__init__s6D#&&& !)rr)rras rrbzFamilyFamily.c_get_briefs//rN)rrrrrrbr rrrrsA>>>88800000rrceZdZdZdZd'dZdZdZdZdZ d Z d Z d Z d Z d ZdZdZexZxZZdZexZxZxZZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'd Z(d!Z)d'd"Z*d(d#Z+d$Z,d%Z-d&Z.dS))IdentitySetFamilyct||||j|j|_|j|_|j|_|j|_|j|_|j |_ dSr) rrrAnythingr3Partrrr8rras rrzIdentitySetFamily.__init__shD#&&& &&&.H H j H 7rc|j|fi|Srr~rs rrzIdentitySetFamily.__call__stz$''$'''rNc||}|s |jjSt|dkr$t |t |d}nt ||}|||_|Sr()r3r7rrr-rr%r)rrrrls rr&zIdentitySetFamily._consspooc"" ,8# # XX]]$T5::a=99AA s++A >AErc|j|ur"||j|jzS|j|jjur|||S|j||Sr)rr&rr7rrrrs rrzIdentitySetFamily.c_andsf 5D==::ag/00 0 Udh) ) )##Aq)) )5==A&& &rc|j|ur"||j|jzS|j||Sr)rr&rrrs rrzIdentitySetFamily._and_ATOM s> 5D==::ag/00 05==A&& &rc8|j||Sr)rrrs rrzIdentitySetFamily._and_ANDr:rcF||j|jzSr)r&rrs rrzIdentitySetFamily._and_IDszz!'AG+,,,rc|jj|ur'||j|jjz S||jjur|S|j||Sr)rrr&rr7rrrs rrzIdentitySetFamily._and_INVERTsY 59  ::ag 344 4 $(% % %H5==A&& &rc>|jjjj|jdfS)Nz<=)r7r=rr8rrs rrpzIdentitySetFamily.c_get_ckc sx#)4agtCCrc*t|jSr)rrrs rr#zIdentitySetFamily.c_hash#sAG}}rc tdrrrs rrzIdentitySetFamily.c_iter&s5666rc|jjSr)rnumrowsrs rrzIdentitySetFamily.c_len,s {""rc||jvSrr&rs rrzIdentitySetFamily.c_contains3sAG|rcj|j|ur|j||}|j|jkSr)rrrrs rr<zIdentitySetFamily.c_le6s1u}} a##Aw!'!!rc|j|ur"||j|jzS||j||z }|j||Sr)rr&rrrrs rrzIdentitySetFamily.c_or=sX 5D==::ag/00 0AEMM!Q'''A5>>!Q'' 'rc,||Sr)get_str_summaryrs rrbzIdentitySetFamily.c_get_briefFs##A&&&rc4|jSr)rr~rs rr}zIdentitySetFamily.c_get_renderIsv  """rc6|j|Sr)rget_setrrzrs rrzIdentitySetFamily.c_getitemLs{""3'''rc>|jjSr)r _oh_printerget_str_of_toprs rrUzIdentitySetFamily.c_strOsv!00222rc|j}|jD]8} t||}||)#t $rY5wxYw||j|Sr)r7rrr~addrr&r3)rrNrTnsr>vs rrRz IdentitySetFamily.maprox_getattrRs X " "  A At$$q "    zz$(--b11222sA  AAc |j}|jD]7} ||}||!#tt f$rY4wxYw||j|Sr)r7rrrKeyError IndexErrorr&r3)rrNrrr>rs rrVz IdentitySetFamily.maprox_getitem]s X " "  A cFq j)    zz$(--b11222sAAAcdS)NzKind: Name/Value/Addressr rs rrz%IdentitySetFamily.c_get_idpart_headerhs))rcdS)Nr r rs rrz$IdentitySetFamily.c_get_idpart_labelksrrcfd}|S)Ncj|}|jdd}|S)Nz<1 >)r7rrlstriprstrip)r>rlrs rrz5IdentitySetFamily.c_get_idpart_render..renderos: QAu%%,,S11AHrr )rrzrs` rrz%IdentitySetFamily.c_get_idpart_renderns#      rcg}t|tr||n |d}n#t$rt dwxYw|dgkrg}|D]|} |r|drd|z}t|j |}n #t$rtd|zwxYw||}|s |j j }n3|d}tdt|D] }|||z}|j|ur||j|}|S) N&z.by(): Equivalence relation or string expected.r er_z;by(): No such equivalence relation defined in heapy.Use: %rrr)r)r+r7r,split Exceptionristitlerr~rrrurrangerrr&r)rrzrerssssrIs rrzIdentitySetFamily.get_byus b- . .  JJrNNNN FXXc]] F F FDFFF FbTzz  [99;;$!,,u*=*=$!!G 1--BB%[[[$UXYY[[[[ 2 BBQB1c#hh''  c!f  4r>> 17r **AsAA0AB44Cch |j}n(#t$r|jjj}||_YnwxYw|Sr)rrr7rr)rrzrs rrzIdentitySetFamily.get_ersI BB   #BAEEE  s  "//c |j}n<#t$r/|jj||j}||_YnwxYw|Sr)rrr7OutputHandling more_printerr)rrzms rrzIdentitySetFamily.get_moresY AA   '44Q DDAAGGG s 6AAc|jjSr)rrrs rrzIdentitySetFamily.get_alls vzrcT|jjjj|Sr)r7rrr8rrs rrzIdentitySetFamily.get_ownerss x|!,33A666rc |j}nZ#t$rM|jj|jj||j}||_YnwxYw|Sr)rrrr8 clear_checkrrr)rrzps rrzIdentitySetFamily.get_partitionsn  AA    EJ " " $ $ $ $$Q--AALLL s AA! A!c<|j||}|Sr)rr)rrNrrs rget_str_idpartz IdentitySetFamily.get_str_idparts  G ! !#s + +rc g}|d|jz||j|||d|||||t d|z d|}t ||kr|d|dz dz}|S)Nz%d rr ...)r,rrrget_str_renderedrrl)rrNr max_lengthstrsrs rget_str_refpatz IdentitySetFamily.get_str_refpats ECI%&&& CG))#s33444 D D)) jRWWT]]!3!3355 6 6 6 GGDMM q66J  /:>/"5(Arcd|d}g}d}|}|jD]d}||}|r+|t|zdz|kr|dxxdz cc<n+|t|dzz }||e|d|S)N2rr)z, )r~rrr,rrl) rrNrr+r,lensrr$rss rr*z"IdentitySetFamily.get_str_rendereds  J!!  AB s2ww*j88RE! CGGaK D KKOOOO yyrc| |jj}||j}|j}|j|}d|D}t d|}dt||j ||fz}|dz }t|} g} |D]q\}}| |||| z } t|dkr d|j || fz} | | | t| dzz } | |krnrt| dkr| d |d | d zz }t||kr|d|d z d z}|S)Ncg|]\}}|Sr r )rerrs rrfz5IdentitySetFamily.get_str_summary..s$$$da$$$rc ||zSrr r>r?s rr6z3IdentitySetFamily.get_str_summary..s !a%rz<%d %srr)z <%d %s: %s>r(c<||ddS)Nr)indexrs rr6z3IdentitySetFamily.get_str_summary..sQqwws||}}%5r)keyrrz...>)r7max_summary_lengthrrr8rrrrrr*rr,rrl) rrar+rrNitemskeysrrbslenbstrscsss rrz!IdentitySetFamily.get_str_summarys  4J :Bg '',,$$e$$$''.. C#'"7"7Q"?"?@ @ T A  HC''S*U2BCCC5zzA~~#sy#s&;; LL    SXX\ !Ez!!" u::>> JJ55J 6 6 6 UZZ   $$ q66J  -:a<- 'ArcHd|jDS)Ncg|]}|Sr r rqs rrfz/IdentitySetFamily.get_parts..s222a222r)rget_setsrs rrzIdentitySetFamily.get_partss$221;//112222rct|jdkrt|jdStd)Nr)rztheone requires a singleton set)rrrrurMs rr zIdentitySetFamily.get_theones7 sy>>Q   ??1% %:;;;rc||}|jj|jj|}|dS |dn$#t$r|YnwxYwGfdd}|}|j|_|jj ||S)NT)most_recent_firstceZdZfdZdS)+IdentitySetFamily.get_prod..Printerc3$KdVEd{VdS)Nz#Traceback (most recent call first):r )rframess r_oh_get_line_iterz=IdentitySetFamily.get_prod..Printer._oh_get_line_iter s1;;;;!!!!!!!!!!rN)rrrrL)rKsrPrinterrI s. " " " " " " "rrM) r r7r_check_tracemalloc tracemallocget_object_tracebackformatrrsetup_printing)rrNobjtbrMprinterrKs @rr zIdentitySetFamily.get_prodsooc""  ''))) X ! 6 6s ; ; : F !YYY66FF ! ! !YY[[FFF !  " " " " " " " " " " '))h  ..w777sA00BBr)NN)/rrrrrr&rrrrrrpr#rrrr<rrrrrrrrrbr}rrUrRrVrrrrrrrrrr&r-r*rrr r r rrrrsy   (((    '''''' ###---'''DDD777 ###""" '+*H*zG(((043H3z3Gf'''###(((333 3 3 3 3 3 3***@777    >333<<< rrceZdZdZdZexZxZxZxZZ dZ dZ e xZ xZ ZdZdZdZdZexZxZZd Zd Zd ZexZxZxZZd Zd ZdZdS) EmptyFamilyc<t||dSr)rrras rrzEmptyFamily.__init__s""4-----rc|Srr rs rrzEmptyFamily.c_and"rcdSrr rs rrzEmptyFamily.c_contains'urc||urdSdSrr rs rr-zEmptyFamily.c_ge*s 664urcdS)Nz r rs rrbzEmptyFamily.c_get_brief1s{rc,|jjjdS)Nr)r7rreprefixrs rrQzEmptyFamily.c_repr4s.. ::rc tdS)Nr )rrs rrzEmptyFamily.c_iter7s BxxrcdSrr rs rr<zEmptyFamily.c_le:rrcdS)Nrr rs rrzEmptyFamily.c_len?sqrcdSrr rs rrKzEmptyFamily.c_nonzeroBr\rc|Srr rs rrzEmptyFamily.c_orErZrc,||Srrrs rrUzEmptyFamily.c_strJrrc|Srr rs rrYzEmptyFamily.c_subMrZrc|Srr rs rr_zEmptyFamily.c_xorPrZrN) rrrrrrrrrrrr-rrrrbrQrr<rrrrrKrrrrrrUrYr_r rrrWrWs:...>CBIB BhB7 '+*H*zG;;;'+*H*zG043H3z3Gf###rrWcPeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d S) EquivalenceRelationFamilyct||t|_|j|_|j|_dSr)rrr7r`rr=ras rrz"EquivalenceRelationFamily.__init__Us8D#&&&&7?rcP||i|}|||}||_|Sr)r`r)r constructorrrclrs rrz"EquivalenceRelationFamily.__call__[s7[$ '$ ' ' XXdB   rc t||dkS#t$rG |}|dj|ko |ddkcYS#t $rYYdSwxYwwxYw)Nr)rr0r!F)rrrrqrr)rrzrckcs rrz$EquivalenceRelationFamily.c_containscs 9qttAww<<1$ $ 9 9 9 9iikk1vyA~8#a&D.888   uuu  9s,%( A9A&A9& A50A94A55A9c|j} t|d}n#t$rt|wxYw||S)Nget_attr_for_er)r8r~r)rrzrTr8gs rr5z#EquivalenceRelationFamily.c_getattrosV\  ' $566AA ' ' ' && & 'qwws4c|j|urt|||Sg}||fD]9}|jr||j$||:t |}t|dkr|dS|j |}t||_|Sr() rrrr9extendr,minimalsrr=rrr)rrzrrr>rs rrzEquivalenceRelationFamily.c_andws 5  ##D!Q// /Q  Ax  18$$$$ 1 smm s88q==q6M   & &s + +#JJ  rc>|j|ur|j|jjvSdSrrr8super_classifiersrs rrz"EquivalenceRelationFamily._ge_ATOM$ 5D==<1<#AA Aurc>|j|ur|j|jjvSdSrrxrs rrz"EquivalenceRelationFamily._le_ATOMrzrc&|jj|i|Sr)r8 get_userkindrs rrz EquivalenceRelationFamily.c_calls(q|($7$777rcd|jzS)NzEquiv. relation %s)r8rs rrbz%EquivalenceRelationFamily.c_get_briefs#al22rcf|j|j|Sr)r8relimgr7 nodeset_adaptrs rrz#EquivalenceRelationFamily.c_getitems(|""48#9#9##>#>???rc4|jSr)r8 get_reprnamers rrQz EquivalenceRelationFamily.c_reprs|((***rN)rrrrrrr5rrrrrbrrQr rrrjrjTs+++  9 9 9   888333@@@+++++rrjcXeZdZdZddZdZdZde_ee_ dZ de _ee _ d Z d e _d Z d e _d Z de _dZd e_dZde_dZde_dZd e_dZde_de_ eZdZde_ddZd e_dZde_dS) Summary_strc||_|jj}i|_t |jD]'\}}t|tr d|z|j|<(t |j D]$\}}t|tr ||j|<%i|_ dD]1}t|| dz}||j |<2i|j |jt|j|j|j|j|jt*|jt,|jt.|j|j|j|j|jt8|jt:|jtd|j|j|j|j |j!|j"|j#tH|j%tL|j%tN|jt|j(i|_)dS)Nztypes.%s)modulefunctionr)*r7r\_moduleinvtypessorted__dict__r=r+type __builtins__shorter_invtypesr~ capitalizeNodeSetstr_address_lenboolstr_reprBuiltinFunctionTypestr_builtin_functionCodeTypestr_codecomplexdictfloat FrameType str_frame FunctionType str_functionintr MethodType str_method ModuleType str_module TracebackType str_tracebackbytes str_limreprstrrstr_typetable)rr7r\rrrTrs rrzSummary_str.__init__s+ ! 5>//1122 2 2DAq!T"" 2#-> a 5-335566 % %DAq!T"" %#$ a !#* , ,Dt00788A'+D !! $ $ K- $-   %t'@  NDM  T]  $&   4=  OT^    1    $&  JJ    do   do   !3 4#! " !# $ 4' $-'   rFc|j|$t|tr|jn|jrdjjjvrfdSS)Nlongerc|S)N)rr )rrr>s rr6z&Summary_str.__call__..sQQq000r) rr issubclassrrr__func____code__ co_varnames)rr:rr>s `@rrzSummary_str.__call__sp JNN3   9#t$$ %M$  h!*"5"AAA00000 0Hrc||j|<dSr)r)rrfuncs r set_functionzSummary_str.set_functions 4rc:tt|Srr[rr>s rrzSummary_str.str_addresss2a55zzrrcX||||zSr)rstr_lenrs rrzSummary_str.str_address_lens%""4<<??22rzAddress*Lengthc<|j}|j}|dkr|d|}|S)Nbuiltins.)rr)rr>rrs rrz Summary_str.str_builtin_functions. J L ??11aa ArNamec~d|jjjj|j|j|jfzS)Nz%s:%d:%s)r7rgospathbasename co_filenameco_firstlinenoco_namers rrzSummary_str.str_codes;TX^.3<cnr func_names rrzSummary_str.str_methods ]]1:/ 0 0 : ! !!#T%5%5aj%A%A%A%ABBz & II & & & III &""ii((sAA,+A,zType/ . methodc|jSr)rrs rrzSummary_str.str_modules zrcJ|jjj|Sr)r7rgreprlibrrs rrzSummary_str.str_limrepr sx~%**1---rzRepresentation (limited)rcjd||jd||dS)Nz .r)rrhasattrrr)rr>rs rrzSummary_str.str_typesw % % %f %(+ +   =# #q,'' 43qz33 3,-----rcP||jvr |j|S|jd|jSr)rrrrs rstr_type_longerzSummary_str.str_type_longers1   =# #,,, 33rctSr)rrs rr6zSummary_str.#srNF)rrrrrrrrr]rrrrrrrrrrrrrrr_longer_methodr rrrrs' ' ' R       !*K%'K"333%5O")+O& +1'(((/HFFF0I444"(L%G ) ) )!BJ &J...!;K%/K"HYYY#5M ....%H44410Hrrc||kSrr r7s rr6r6& Qrcg}|D]I}|D]}|||r|||sn)|D]}|||rn||J|S)z< Find the maximal element(s) of a partially ordered sequencer,Alerlr>rzs rrr& A     Ar!Qxx 1a   2a88E Hrc||kSrr r7s rr6r66rrcg}|D]I}|D]}|||r|||sn)|D]}|||rn||J|S)zH Find the minimal element(s) of a sequence of partially ordered elementsrrs rrvrv6rrceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZddZdZdZdZdZddZdZdS) _GLUECLAMP_PTF)rr8rr)r<out_reach_module_namesauto_convert_typeauto_convert_iteroutput)z_parent:Classifiersz_parent:ImpSetz_parent.ImpSet:emptynodesetz_parent.ImpSet:immnodesetz_parent.ImpSet:mutnodesetz_parent.ImpSet:NodeSetz _parent:Partz _parent:Pathz_parent:RefPatz_parent:OutputHandlingz _parent:Viewz_parent.View:_hiding_tag_z_parent.View:hvz _parent:Usez_root:tracemallocz _root:typescJ|jjjdSr)rrr8rr$s r _get_Anythingz_GLUECLAMP_._get_AnythinghsDHN$=$F$Ft$L$LLrcFtt||jSr)r%rW emptynodesetr$s r _get_Nothingz_GLUECLAMP_._get_Nothingis$#3D4,$.$..rcLt|j|jSr)rXrrrr$s r_get_NotNothingz_GLUECLAMP_._get_NotNothingks foo '''' 'rci}t|jD]S\}}t|dd}|D]:}t||}||vr|||urt d|d||||<;T|S)N_uniset_exportsr zDuplicate export: z defined in: )rout_reach_dictr=r~ RuntimeError)rrrrrr>s r_get_export_dictz_GLUECLAMP_._get_export_dictns ,224455  DAq-r22B  ArNN77quA~~&,ACQQGIII"   rcNi}|jD]}t|j|||<|Sr)rr~rZ)rrrTs r_get_out_reach_dictz_GLUECLAMP_._get_out_reach_dictzs5 / 2 2DdlD11AdGGrc,||Sr)rr$s r_get_summary_strz_GLUECLAMP_._get_summary_strst'7'7'='= =rc,||Sr)r#r$s r _get_fam_Andz_GLUECLAMP_._get_fam_Ands4>>$#7#77rc t|Sr)rjr$s r_get_fam_EquivalenceRelationz(_GLUECLAMP_._get_fam_EquivalenceRelations/555rc,||Sr)r{r$s r _get_fam_Orz_GLUECLAMP_._get_fam_Ors$--"5"55rc,||Sr)rr$s r_get_fam_IdentitySetz _GLUECLAMP_._get_fam_IdentitySets4+A+A$+G+G$Grc,||Sr)rr$s r_get_fam_Invertz_GLUECLAMP_._get_fam_Invertd&7&7&=&==rc,||Sr)rr$s r_get_fam_Familyz_GLUECLAMP_._get_fam_Familyrrcifd}|S)Nc}|.Gfddj}jx|_|_|<|g|Ri|S)NceZdZfdZdS)8_GLUECLAMP_._get_fam_mixin_argatom..f..Ccb|j||j||g|Ri|dSr)rr)rr7rrMixins rrzA_GLUECLAMP_._get_fam_mixin_argatom..f..C.__init__sF)224===&tS@4@@@4@@@@@rN)rrrr)rsrCr s5AAAAAAArr)rrrr)rrrrmemors` rfz-_GLUECLAMP_._get_fam_mixin_argatom..fsAyAAAAAAAt1AAA /4n<U 1T)D)))D)) )rr )rrrs` @r_get_fam_mixin_argatomz"_GLUECLAMP_._get_fam_mixin_argatoms. * * * * * *rct||jr|}nJt||jr||}nt dt |z|j|jurtd|SNz(IdentitySet or NodeSet expected, got %r.zPThe argument has wrong _hiding_tag_, you may convert it by Use.idset or Use.iso.)r+rridsetrrrru)rridss r idset_adaptz_GLUECLAMP_.idset_adapts a) * * FCC 4< ( ( F**Q--CC:T!WWDFF F >!2 2 2bdd d rNc`|j|||S)Nr)fam_IdentitySetr&r3)riterablers rrz_GLUECLAMP_.idsets*#))$//(*C*C)KKKrc|jSr)rr$s r_get_isoz_GLUECLAMP_._get_isos ##rc,t||jSr)r+r)rrSs risunisetz_GLUECLAMP_.isunisets#t{+++rct||jr|}n!2 2 2bdd d rcZt||js||}|Sr)r+rrrs rretsetz_GLUECLAMP_.retsets+!T-..  1 ArcL|s|jS|d}|ddD]}||z}|Sr8)rrrr&)rr maximizedrzrs rrz_GLUECLAMP_.unionsB <  Gabb  A FAArct|tr|j|jur|S|j}t|tr!|jr|j|St||jr#|j|jur| |S|j r5 t|}| |S#t$rYnwxYwtd)NzPArgument is not automatically convertible to a UniSet with correct _hiding_tag_.) r+rrr\rrrrrrrrr)rrr\its rrz#_GLUECLAMP_.uniset_from_setcastables a  Q^t7H%H%HH  a   &4#9 &8==## # 4< ( ( &Q^t?P-P-P::a==  # & &!WWzz"~~%     ^`` `s#C CCrr)rrrr<rrr _chgable_ _imports_rrrrrrrrrrrr rrrrrrr"rrr rrrrFsfAEII*MLL...'''    >==777666655GGG======   LLLL$$$,,,    ' ' ' '`````rrN) functoolsrguppy.etc.DescriptorrrPrrrr%r-r7rrXrrr#r{rrrrWrjrrrvrr rrr+s------qqqqqVqqqh ) ) ) ) )6 ) ) )^^^^^&^^^B {''''';''',)?)?)?)?)?&)?)?)?X ? ? ? ? ?6 ? ? ?r$r$r$r$r$r$r$r$jQQQQQQQQh,,,,,J,,,*|*|*|*|*|*|*|*|*~N*N*N*N*N*vN*N*N*bi#i#i#i#i#6i#i#i#X 0 0 0 0 0: 0 0 0mmmmm mmm` :::::#:::zG+G+G+G+G+ G+G+G+TE1E1E1E1E1E1E1E1P'&     '&     ^`^`^`^`^`^`^`^`^`^`r