ok

Mini Shell

Direktori : /opt/cloudlinux/venv/lib64/python3.11/site-packages/guppy/heapy/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib64/python3.11/site-packages/guppy/heapy/__pycache__/UniSet.cpython-311.pyc

�

�܋f
��D�ddlmZddlmZGd�de��ZGd�de��ZGd�de��ZGd	�d
e��ZGd�de��Z	Gd
�de��Z
Gd�de��ZGd�d��ZGd�de��Z
Gd�de
��ZGd�de��ZGd�de��ZGd�de��ZGd�de
��ZGd�d e
��ZGd!�d"e��ZGd#�d$e
��ZGd%�d&��Zd'�fd(�Zd)�fd*�ZGd+�d,��Zd-S).�)�reduce)�property_expc�>�eZdZdZdZdZdZd�ZeZd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZeZd�Zd�Zd�Zd�Zd�ZeZed�d���Z d�Z!ed���Z"d�Z#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.UniSet�z�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.c�:�|j�d||��S)z,
Return the intersection of self and other.
�and�r�c_binop��self�others  �I/opt/cloudlinux/venv/lib64/python3.11/site-packages/guppy/heapy/UniSet.py�__and__zUniSet.__and__s���x����t�U�3�3�3�c�:�|j�|||��S�N)r�c_call�r�args�kwdss   r�__call__zUniSet.__call__s��d�h�o�o�d�D�$�.O�.O�'Orc�8�|j�||��S)z<
Return True if other is a member of self, False otherwise.
)r�
c_containsrs  r�__contains__zUniSet.__contains__s���x�"�"�4��/�/�/rc��||ko||kS)zJ
Return True if self contains the same elements as other,
False otherwise.�rs  r�__eq__z
UniSet.__eq__!s���u�}�.����.rc�6�|j�|��S)zh
Return an hash based on the kind of the set of self and
the addresses of its elements, if any.
        )r�c_hash�rs r�__hash__zUniSet.__hash__'s��
�x���t�$�$�$rc�8�|j�d|��S)z 
Return the complement of self.
�invert)r�c_unopr$s r�
__invert__zUniSet.__invert__.s���x���x��.�.�.rc��||urdSt|t��s|j�|��}|j�||��S)zT
Return True if self is a superset of (and may be equal to) other,
False otherwise.
T)�
isinstancerr�c_uniset�c_gers  r�__ge__z
UniSet.__ge__4�O��
�5�=�=��4��%��(�(�	-��H�%�%�e�,�,�E��x�}�}�T�5�)�)�)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�}�2�T�U�]�!2�2rc�V����jjj���fd���S)z 
Get family-specific attribute.
c�:���j�����Sr)r�	c_getattr)rrs��r�<lambda>z$UniSet.__getattr__.<locals>.<lambda>Js���t�x�/A�/A�$��/N�/N�r)r�mod�View�enterrs``r�__getattr__zUniSet.__getattr__Fs.�����x�|� �&�&�'N�'N�'N�'N�'N�O�O�Orc��||urdSt|t��s|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/rc�8�|j�||��S)a�
<<This is about to change, does not work as one may expected.
Nov 19 2005. >>>

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.


)r�c_lshift)�return_spec�
argument_specs  r�
__lshift__zUniSet.__lshift__Ws��0��'�'��]�C�C�Crc��||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__qr2rc��t|t��s|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�,�,�E��x�~�~�d�E�*�*�*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�=� � rc�6�|j�|��S)z=
Return True if self contains some element,
False otherwise.
)r�	c_nonzeror$s r�__bool__zUniSet.__bool__�s��
�x�!�!�$�'�'�'rc�:�|j�d||��S)z%
Return the union of self and other.
�orr
rs  r�__or__z
UniSet.__or__�s���x����d�E�2�2�2rc�6�|j�|��S)zW
Return a string representing self.  This is usually the same string
as from __str__.

)r�c_reprr$s r�__repr__zUniSet.__repr__�s���x���t�$�$�$rc�6�|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.

�r�c_strr$s r�__str__zUniSet.__str__�s���x�~�~�d�#�#�#rc��t|t��s|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�,�,�E��x�~�~�d�E�*�*�*rc��t|t��s|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�,�,�E��y���u�d�+�+�+rc��t|t��s|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[rc�6�|j�|��Sr)r�c_get_briefr$s rr6zUniSet.<lambda>����d�h�&:�&:�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�_root�guppyre�
help_instancer$s r�	_get_helpzUniSet._get_help�s#���x�|�!�'�+�9�9�$�?�?�?rc�h�|jjjjjj�|��Sr)rr7rgrh�etc�Help�dirr$s rr6zUniSet.<lambda>�s$��D�H�L�$6�$<�$@�$E�$I�$I�$�$O�$O�rc�6�|j�|��Sr)r�	c_get_ckcr$s r�get_ckczUniSet.get_ckc�s���x�!�!�$�'�'�'rc�8�|j�||��S)z�
Return information about the 'origin' of the set. This was intended to be
used for specification purposes - is experimental, noncomplete, temporary.
)r�c_derive_origin)rres  r�_derive_origin_zUniSet._derive_origin_�s��
�x�'�'��c�2�2�2rc�8�|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  r�disjointzUniSet.disjoint�s���x�"�"�4��/�/�/rc�8�|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,
)r�c_get_examples)r�envs  r�get_exampleszUniSet.get_examples�s���x�&�&�t�S�1�1�1rc�6�|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.
         )r�c_test_contains)r�elementrzs   r�
test_containszUniSet.test_containss���x�'�'��g�s�;�;�;rc�6�|j�|��Sr)r�c_get_biperr$s rr6zUniSet.<lambda>%rcrz�A 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.
        c�6�|j�|��Sr)r�c_get_dictofr$s rr6zUniSet.<lambda>0s��t�x�'<�'<�T�'B�'B�ra4dictof: UniSet

If x represents a kind of objects with a builtin __dict__ attribute,
x.dictof is the kind representing the set of all those dict
objects. In effect, x.dictof maps lambda e:getattr(e, '__dict__') for
all objects e in x. But it is symbolically evaluated to generate a new
symbolic set (a Kind).N)+�__name__�
__module__�__qualname__�	__slots__�
_help_url_�_instahelp_�
_doc_nodesr�__rand__rrr!r%r)r.r1r:r=rBrDrGrIrLrO�__ror__rRrVrZr]r`�__rxor__r�briefrjrerqrtrwr{r~r��biper�dictofr rrrrs^������2�I�6�J��K�H�J�4�4�4��H�O�O�O�0�0�0�/�/�/�%�%�%�/�/�/�	*�	*�	*�3�3�3�P�P�P�	*�	*�	*�D�D�D�43�3�3�+�+�+�0!�!�!�(�(�(�3�3�3��G�%�%�%�$�$�$�+�+�+�
,�
,�
,�+�+�+��H��L�@�@�E�
�
�
�E�@�@�@��,�O�O�
P�
P�C�(�(�(�
3�3�3�	0�	0�	0�	2�	2�	2�+�+�+�$
<�
<�
<�
�L�@�@��	

�	

�	

�E��\�B�B�����F�F�Frrc��eZdZdZd�Zd�ZdS)�Kind��argc�H�||_|j|_||_d|_dSr)rrr�r	)rrr�s   r�__init__z
Kind.__init__=s&������,��������
�
�
rc�8�|j�||��Sr)r�c_alt)r�cmps  r�altzKind.altCs���x�~�~�d�C�(�(�(rN)r�r�r�r�r�r�r rrr�r�:s7�������I����)�)�)�)�)rr�c��eZdZdZdZd�Zd�Zd�Zd�Zd�Z			dRd�Z
dSd
�Zd�Zd�Z
d�Zed�d���Zed�d���Zed�d���Zed�d���Zed�d���Zed�d���Zed�d���Zed �d!���Zed"�d#���Zed$�d%���Zed&�d'���Zed(�d)���Zed*�d+���Zed,�d-���Zed.�d/���Zed0�d1���xZZ ed2�d3���Z!ed4�d5���Z"ed6�d7���Z#ed8�d9���Z$ed:�d;���Z%ed<�d=���Z&ed>�d?���Z'ed@�dA���Z(edB�dC���Z)edD�dE���Z*edF�dG���Z+ee
dH���Z,eedI���Z-eedJ���Z-eedK���Z.edL�dM���Z/edN�dO���Z0edP�dQ���Z1dS)T�IdentitySet)�_er�
_partition�_morez(heapy_UniSet.html#heapykinds.IdentitySetc�:�||_|j|_d|_dSr)rrr	)rrs  rr�zIdentitySet.__init__Ks������,�����
�
�
rc�8�|j�||��Sr�r�	c_getitem�r�idxs  r�__getitem__zIdentitySet.__getitem__Ps��t�x�'9�'9�$��'D�'D� Drc�6�|j�|��Sr)r�c_lenr$s r�__len__zIdentitySet.__len__Qs��d�h�n�n�T�2�2�2rc�6�|j�|��Sr)r�c_iterr$s r�__iter__zIdentitySet.__iter__Rs��t�x���t�4�4�4rc�6�|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__Ts���x�~�~�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)

)r�RefPat�rp)	r�depth�er�imdom�bf�src�stopkind�nocyc�refs	         r�get_rpzIdentitySet.get_rp_s4��D�x��!�!�$��r�5�"�c�8�"'��.�.�	.rr c�F�|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

)r�Path�shpaths)rr��avoid_nodes�avoid_edgess    r�get_shpathszIdentitySet.get_shpaths�s"���x�}�$�$�T�3��[�I�I�Irc�8�|j�||��S)z< x.by(er) -> A copy of x, but using er for equiv. relation. )r�get_by)rr�s  r�byzIdentitySet.by�s���x���t�R�(�(�(rc�P�|j|�|j��jz
Sr)�statr�r�rs  r�diffzIdentitySet.diff�s ���y�5�8�8�D�G�,�,�1�1�1rc�*�|jj|i|��dS)zD Dump statistical data to a file
          Shorthand for .stat.dump N)r��dumprs   rr�zIdentitySet.dump�s#��	��	���%��%�%�%�%�%rc�,�|�d��S)N�Clodo�r�r$s rr6zIdentitySet.<lambda>��������(8�(8�rz=A copy of self, but with 'Clodo' as the equivalence relation.rdc�,�|�d��S)N�Idsetr�r$s rr6zIdentitySet.<lambda>�r�rz�A 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�,�|�d��S)N�Idr�r$s rr6zIdentitySet.<lambda>�s��T�W�W�T�]�]�rz:A copy of self, but with 'Id' as the equivalence relation.c�,�|�d��S)N�Moduler�r$s rr6zIdentitySet.<lambda>�s������):�):�rz>A copy of self, but with 'Module' as the equivalence relation.c�,�|�d��S)N�Prodr�r$s rr6zIdentitySet.<lambda>����t�w�w�v���rz<A copy of self, but with 'Prod' as the equivalence relation.c�,�|�d��S)N�Rcsr�r$s rr6zIdentitySet.<lambda>����d�g�g�e�n�n�rz;A copy of self, but with 'Rcs' as the equivalence relation.c�,�|�d��S)N�Sizer�r$s rr6zIdentitySet.<lambda>�r�rz<A copy of self, but with 'Size' as the equivalence relation.c�,�|�d��S)N�Typer�r$s rr6zIdentitySet.<lambda>�r�rz<A copy of self, but with 'Type' as the equivalence relation.c�,�|�d��S)N�Unityr�r$s rr6zIdentitySet.<lambda>�r�rz=A copy of self, but with 'Unity' as the equivalence relation.c�,�|�d��S)N�Viar�r$s rr6zIdentitySet.<lambda>�r�rz<
A copy of self, but with 'Via' as the equivalence relation.c�6�|j�|��Sr)r�get_err$s rr6zIdentitySet.<lambda>�s��4�8�?�?�4�#8�#8�rzUThe equivalence relation used for partitioning when representing /
printing this set.c�*�t|j��Sr)�len�nodesr$s rr6zIdentitySet.<lambda>�s��c�$�*�o�o�rz,The number of individual objects in the set.c�@�|jj�|��Sr)rr8�dominosr$s rr6zIdentitySet.<lambda>�s����
�(=�(=�d�(C�(C�rz�The 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)rr8�domisizer$s rr6zIdentitySet.<lambda>�s�����)?�)?��)E�)E�rz�The 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)rr8r�r$s rr6zIdentitySet.<lambda>�s��d�h�m�&9�&9�$�&?�&?�rz�The 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)rr8�indisizer$s rr6zIdentitySet.<lambda>�s����
�0F�0F�t�0L�0L�rz�The 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|Sr�r�r$s rr6zIdentitySet.<lambda>�s��T�W�T�]�rz�The 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.<lambda>�s��|�D�'9�'9�ra�An 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
>>>

<This is an experimental feature, so the name is intentionally made
mystically-sounding, and is a shorthand for 'mapping proxy'.>c�6�|j�|��Sr)r�get_morer$s rr6zIdentitySet.<lambda>���T�X�%6�%6�t�%<�%<�rz�An 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.c�6�|j�|��Sr)r�get_allr$s rr6zIdentitySet.<lambda>
s��D�H�$4�$4�T�$:�$:�rzRAn object that can be used to show all lines of the string
representation of self.c�6�|j�|��Sr)r�
get_ownersr$s rr6zIdentitySet.<lambda>���t�x�':�':�4�'@�'@�rz�The 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.c�6�|j�|��Sr)r�
get_partitionr$s rr6zIdentitySet.<lambda>s��$�(�*@�*@��*F�*F�ra�A 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.c�6�|j�|��Sr)r�	get_partsr$s rr6zIdentitySet.<lambda>s��d�h�&8�&8��&>�&>�rz�An 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.c�6�|�|j��Sr)r��	referrersr$s rr6zIdentitySet.<lambda>"s���(8�(8���(H�(H�rz;The paths from the direct referrers of the objects in self.c�6�|j�|��Sr)�	referentsr�r$s rr6zIdentitySet.<lambda>%s����)C�)C�D�)I�)I�rz2The paths to the referents of the objects in self.c�@�|jj�|��Sr)rr8rr$s rr6zIdentitySet.<lambda>(���$�(�-�*A�*A�$�*G�*G�rzOThe set of objects that are directly referred to by any of the objects
in self.c�@�|jj�|��Sr)rr8rr$s rr6zIdentitySet.<lambda>,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_shpathsc�4�|j���Sr)�	partition�get_statr$s rr6zIdentitySet.<lambda>Rs��T�^�%<�%<�%>�%>�rz�x.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.c�6�|j�|��Sr)r�
get_theoner$s rr6zIdentitySet.<lambda>Zr�rz�theone: Anything

The one object in a singleton set. In case the set does not contain
exactly one object, the exception ValueError will be raised.
c�6�|j�|��Sr)r�get_prodr$s rr6zIdentitySet.<lambda>ar�rz[theone: MorePrinter

The traceback for the producer for the one object in a singleton set.
)NNrrNNFN)NNr )2r�r�r�r�r�r�r�r�r�rVr�r�r�r�r�r�byclodo�byidset�byid�bymodule�byprod�byrcs�bysize�bytype�byunity�byviar��countr�r�r�r��size�kind�maprox�more�all�ownersr�parts�pathsin�pathsoutrrr�r��spr��theone�prodr rrr�r�Gs�������,�I�;�J����
E�D�D�2�2�2�4�4�4�	$�	$�	$�>B�/3�#.�#.�#.�#.�JJ�J�J�J�)�)�)�2�2�2�&�&�&�
�l�8�8�?A�B�B�B�G��l�8�8�?	�
�
�
�G��<�2�2�9>�?�?�?�D��|�:�:�AB�C�C�C�H��\�6�6�=@�A�A�A�F�
�L�4�4�;?�
@�
@�
@�E��\�6�6�=@�A�A�A�F��\�6�6�=@�A�A�A�F��l�8�8�?A�B�B�B�G�
�L�4�4�;?�
@�
@�
@�E�
��8�8�?�
�
�
�B�
�L�5�5�<0�
1�
1�
1�E��l�C�C�J����G��|�E�E�L����H�
�L�?�?�F8�
9�
9�
9�E�
#�l�#L�#L�S
�����H�t��<�2�2�9����D�
�\�9�9�@A�B�B�B�F�8�<�<�<�C����D��,�:�:�A����C��\�@�@�G.�/�/�/�F�
��F�F�M;�<�<�<�I�
�L�>�>�E/�
0�
0�
0�E�
�l�H�H�O?�@�@�@�G��|�I�I�P6�7�7�7�H���G�G�N�
�
�
�I���G�G�NI�J�J�J�I�
��f�#�
�
�
�B��l�;�-����G��l�;�-����G�
��k�(�
�
�
�B��<�>�>�E����D��\�@�@�G����F��<�<�<�C����D�D�Drr�c�"��eZdZdZ�fd�Z�xZS)�IdentitySetMulti�r�c�X��t���|��||_dSr)�superr�r�)rrr��	__class__s   �rr�zIdentitySetMulti.__init__ks&���
�����������
�
�
r)r�r�r�r�r��
__classcell__�r)s@rr%r%hs=��������I���������rr%c�^��eZdZdZdZ�fd�Zed�d���Zd�Zee��Z	�xZ
S)�IdentitySetSingleton��_nodez1heapy_UniSet.html#heapykinds.IdentitySetSingletonc�X��t���|��||_dSr)r(r�r/)rr�noder)s   �rr�zIdentitySetSingleton.__init__ts&���
�����������
�
�
rc�B�|j�|jf��Sr)r�
immnodesetr/r$s rr6zIdentitySetSingleton.<lambda>ys��d�h�&9�&9�4�:�-�&H�&H�rz�x.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_theone�s
���z�r)r�r�r�r�r�r�rr�r5r"r*r+s@rr-r-psz��������I�D�J������

�L�H�H�O<�
=�
=�
=�E�����\�+�
&�
&�F�F�F�F�Frr-c�f�eZdZdZdZdZdd�Zd�Zd�Ze	e��Z
d�Ze	e��Zd	�Z
d
S)�EquivalenceRelationa�An 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.
)�
classifier�erargsz0heapy_UniSet.html#heapykinds.EquivalenceRelationr c�V�||_|j|_||_||_d|_dSr)rrr8r9r	)rrr8r9s    rr�zEquivalenceRelation.__init__�s-������,���$��������
�
�
rc�8�|j�||��Srr�r�s  rr�zEquivalenceRelation.__getitem__�s���x�!�!�$��,�,�,rc�@�|jj�|��Sr)r�Classifiers�mker_dictofr$s r�_get_dictofzEquivalenceRelation._get_dictof�����x�#�/�/��5�5�5rc�@�|jj�|��Sr)rr=�mker_refdbyr$s r�_get_refdbyzEquivalenceRelation._get_refdby�r@rc�.�|jj|g|�Ri|��Sr)r8�
get_sokindrs   r�sokindzEquivalenceRelation.sokind�s'��)�t��)�$�>��>�>�>��>�>�>rN)r )r�r�r��__doc__r�r�r�r�r?rr�rC�refdbyrFr rrr7r7�s���������$'�I�C�J�����-�-�-�6�6�6�
�\�+�
&�
&�F�6�6�6�
�\�+�
&�
&�F�?�?�?�?�?rr7c�$�eZdZdZd�Zd�Zd�ZdS)r���_set_c��||_dSrrJ�r�sets  rr�zMappingProxy.__init__�s
����
�
�
rc��|dkrt�||��S|jj�|j|��S)NrK)�object�__getattribute__rKr�maprox_getattr�r�names  rrQzMappingProxy.__getattribute__�s=���7�?�?��*�*�4��6�6�6��z�~�,�,�T�Z��>�>�>rc�L�|jj�|j|��Sr)rKr�maprox_getitemrSs  rr�zMappingProxy.__getitem__�s���z�~�,�,�T�Z��>�>�>rN)r�r�r�r�r�rQr�r rrr�r��sF�������I����?�?�?�
?�?�?�?�?rr�c��eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zdifd�Zd�Zd�Zd�Zd�Zd�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,d,�Z-dS)-�FamilyNc��||_|jj|_|j|_|j|_|���|_|jj|_|�|g��|_t|_
dSr)r7�_parent�Docr�typesr3�	disjoints�export_dict�supersr��Set�rr7s  rr�zFamily.__init__�sf������;�?����,����Y��
����)�)����8�/����n�n�d�V�,�,�������rc�.�|�||��Sr)r`�rr�s  rrzFamily.__call__�s���x�x��c�"�"�"rc�8�|j�||��Sr�r[�
add_origin)r�origins  rrtzFamily._derive_origin_�s���x�"�"�4��0�0�0rc��|�||��}|j�||jj|g|�R���}|Sr�r`r[rf�callfunc)r�tup�rs   r�specotupzFamily.specotup��I���H�H�T�3�����H����#4�4�8�#4�T�#@�C�#@�#@�#@�A�A���rc��|�||��}|j�||j�||����}|Srri)rr�rls   r�specoargzFamily.specoarg�sC���H�H�T�3�����H����4�8�#4�#4�T�3�#?�#?�@�@���rc��|�||��}|j�||jj|g|�R���}|Srri)rr�rkrls    r�specoargtupzFamily.specoargtup�rnrc���|j|jjur#|jj���|_||jvr!|j||urtd|z���||j|<dS)Nz
Duplicate: %s)r^r7�copy�
ValueError)rrT�values   r�
add_exportzFamily.add_export�st����t�x�3�3�3�#�x�3�8�8�:�:�D���4�#�#�#��(8��(>�e�(K�(K��_�t�3�4�4�4�!&������rc�&�td|z���)Nz!No alternative set for family %s.�ru)r�ar�s   rr�zFamily.c_alt�s���<�t�C�D�D�Drc��t|t��s|�|��}t|d|z��||��}|S�N�c_)r+rr,�getattr)r�oprz�brls     rrzFamily.c_binop�sI���!�V�$�$�	!��
�
�a� � �A�"�G�D�$�r�'�"�"�1�a�(�(���rc�>�t|d|z��|��}|Sr|)r~)rrrzrls    rr(z
Family.c_unop�s$��"�G�D�$�r�'�"�"�1�%�%���rc�8�|j�||��Srre�rrzr�s   rrszFamily.c_derive_origin�s���x�"�"�1�a�(�(�(rc� �td���)NzNot callable setry�rrzrrs    rrz
Family.c_call�s���+�,�,�,rc�N�|j}||�|��z|juSr)r7�iso�Nothing)rrzr�r7s    rrzFamily.c_contains�s$���h���C�G�G�A�J�J��s�{�2�2rc�@�|jj�|��Sr)r7r=r��rrzs  rr�zFamily.c_get_bipers���x�#�)�)�!�,�,�,rc�@�|jj�|��Sr)r7r=r�r�s  rr�zFamily.c_get_dictofs���x�#�*�*�1�-�-�-rc�$�||z|jjuSr�r7r�r�s   rrvzFamily.c_disjoint	s���A��$�(�*�*�*rc�P�t|d|jj����||��S)N�_factordisjoint_)r~r�opnamer�s   r�c_factordisjointzFamily.c_factordisjoint
s,��E�w�t�t�Q�U�\�\�C�D�D�Q��J�J�Jrc�:�d|�d|�|���d�S)N�[� �]�rb)rrzr�s   r�c_get_brief_altzFamily.c_get_brief_alts'����C�C��!1�!1�!�!4�!4�!4�!4�5�5rc�6�|j�|��Sr)r7�uniset_from_setcastable�r�Xs  rr,zFamily.c_unisets���x�/�/��2�2�2rc��gSrr )rrzrzs   rryzFamily.c_get_exampless���	rr c�h�|j}||vr|||g|�Ri|��S|�||��Sr)r^�
c_getattr2)rrzr�rr�ds      rr5zFamily.c_getattrsK�������6�6��1�Q�4��)�D�)�)�)�D�)�)�)����q�!�$�$�$rc� �t|���r)�AttributeErrorr�s   rr�zFamily.c_getattr2"s���Q���rc�$�|jjjSr)r7�summary_str�str_addressr�s  rr}zFamily.c_get_render%s���x�#�/�/rc��|jSr�r�r�s   r�
c_get_str_forzFamily.c_get_str_for(s���w�rc�z�|���}t|d|��}t|dd��}|sd}|S)N�im_func�_idpart_header�Value)r~r~�rrz�render�hs    r�c_get_idpart_headerzFamily.c_get_idpart_header.sD���������F�I�v�.�.���A�'��.�.���	��A��rc��d|zS)Nz<%s>r r�s  r�c_get_idpart_labelzFamily.c_get_idpart_label6s����z�rc�,�|�|��Sr)r}r�s  r�c_get_idpart_renderzFamily.c_get_idpart_render9s��� � ��#�#�#rc��|�|��}|turdSt|d|��}t|d|��}|S)N�IDENTITYr��_idpart_sortrender)r��reprr~r�s    r�c_get_idpart_sortrenderzFamily.c_get_idpart_sortrender<sK���)�)�!�,�,���T�>�>��:��F�I�v�.�.����0�&�9�9���
rc�*�t|j��Sr)�hashr�r�s  rr#z
Family.c_hashDs���A�E�{�{�rc� �td����Nziteration over non-sequence��	TypeErrorr�s  rr�z
Family.c_iterGs���5�6�6�6rc� �td���)Nzlen() of unsized objectr�r�s  rr�zFamily.c_lenJs���1�2�2�2rc��dS�NTr r�s  rrKzFamily.c_nonzeroM����trc�L�|jjj�||��Sr)r7rZ�Spec�cprodr�s   rrFzFamily.c_mulPs ���x��$�*�*�1�a�0�0�0rc��|j�|�||��|j�d||����S)N�lshift)r[rf�c_map�binopr�s   rr?zFamily.c_lshiftSs;���x�"�"�4�:�:�a��#3�#3�T�X�^�^�H�a�QR�5S�5S�T�T�Trc��t|t��rt|��}t|t��s|f}|d|fz}|jjjj|�S)Nz->)r+�list�tupler7rZr��mapping)rrzr��ts    rr�zFamily.c_mapVs]���a����	��a���A��!�U�#�#�	���A�
��q�	�M��,�t�x��$�,�a�0�0rc�,�|�|��Sr)rUr�s  rrQz
Family.c_repr^s���z�z�!�}�}�rc�,�|�|��Srr�r�s  rrUzFamily.c_stra�������"�"�"rc��||zSrr r�s   rrYzFamily.c_subds
���A�2�v�
rc	���|�||��sH|�|j�d|�|���d|�|������SdS)N�: z does not contain T)r�failedr)rT�rrzr�rzs    rr�zFamily.c_test_containsgs_�����q�!�$�$�	i��:�:�d�n�n�n�c�h�h�WX�k�k�k�k�[^�[c�[c�de�[f�[f�[f�g�h�h�h��trc��||z
||z
zSrr r�s   rr_zFamily.c_xorls���A��!�a�%� � rc�8�|j�||��Sr)r�_or_TERMr�s   r�_or_ORz
Family._or_ORo����u�~�~�a��#�#�#rc�.�|�||��Sr)�	_and_ATOMr�s   r�
_rand_ATOMzFamily._rand_ATOMrs���~�~�a��#�#�#r).r�r�r��superclr�rrtrmrprrrwr�rr(rsrrr�r�rvr�r�r,ryr5r�r}r�r�r�r�r�r#r�r�rKrFr?r�rQrUrYr�r_r�r�r rrrXrX�s��������G����#�#�#�1�1�1����
���
���
'�'�'�E�E�E�������
)�)�)�-�-�-�3�3�3�-�-�-�.�.�.�+�+�+�K�K�K�6�6�6�3�3�3����$&�B�%�%�%�%� � � �0�0�0����������$�$�$�������7�7�7�3�3�3����1�1�1�U�U�U�1�1�1����#�#�#�������
!�!�!�$�$�$�$�$�$�$�$rrXc��eZdZdZdZdZd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�ZexZxZZd�Zd
�ZexZZd�Zd�Zd�ZexZZd�Zd�Zd�Zd�Zd�ZdS)�
AtomFamilyT�ATOMc�^�t�||��|xj|gzc_dSr)rXr�r]ras  rr�zAtomFamily.__init__{s,������c�"�"�"����4�&� ����rc�8�|j�||��Sr�rr�r�s   r�c_andzAtomFamily.c_and����u���q�!�$�$�$rc�8�|j�||��Sr�r7�fam_Andr�s   rr�zAtomFamily._and_ATOM�����x����1�%�%�%rc�8�|j�||��Srr�r�s   r�_and_ANDzAtomFamily._and_AND�r�rc�8�|j�||��Srr�r�s   r�_and_FACTORzAtomFamily._and_FACTOR�r�rc�8�|j�||��Srr�r�s   r�_and_INVERTzAtomFamily._and_INVERT�r�rc�f�|jj|jjzp|jj|jjzSr)rr]r_r�s   r�_factordisjoint_ATOMzAtomFamily._factordisjoint_ATOM�s,�����!�%�,�.�/����!�%�,�.�	0rc�8�|j�||��Sr)rr�r�s   r�_factordisjoint_INVERTz!AtomFamily._factordisjoint_INVERT�s���u�)�)�!�Q�/�/�/rc�8�|j�||��Sr)r�_ge_ATOMr�s   rr<zAtomFamily.c_le�r�rc�*�|jduo
|j|kSr�r�r�s   r�_le_ATOMzAtomFamily._le_ATOM�s���|�4�'�=�D�L�A�,=�=rc�8�|j�||��Sr)rr�r�s   rr-zAtomFamily.c_ge�r�rc�>�|jjduo|jj|kSr)rr�r�s   rr�zAtomFamily._ge_ATOM�s���u�}�D�(�?�Q�U�]�a�-?�?rc�8�|j�||��Sr)r�_or_ATOMr�s   r�c_orzAtomFamily.c_or�r�rc�8�|j�||��Sr)r7�fam_Orr�s   rr�zAtomFamily._or_ATOM�s���x���q�!�$�$�$rc�6�|j�|��Sr)r7�
fam_Invertr�s  r�c_invertzAtomFamily.c_invert�s���x�"�"�1�%�%�%rc�H�||_|xj|jjzc_dSr)r�r_rrcs  r�defrefiningzAtomFamily.defrefining�s!��������s�w�~�%����rc�p�|xj|zc_|j}|�|xj|jjzc_dSdSr)r]r�r)rr�scs   r�defdisjointzAtomFamily.defdisjoint�s@��	
���$����
�\��
�>��N�N�b�f�.�.�N�N�N�N��>rc�d�|�|��|�|j��dSr)rr	rrcs  r�
defrefidiszAtomFamily.defrefidis�s2��������������!�!�!�!�!rc��|jSrr�r$s r�	fam_unionzAtomFamily.fam_union�s
���|�rN)r�r�r��isatom�isfactorr�r�r�r�r�r�r�r�r�r<�_le_AND�
_le_INVERTr�r-�
_ge_INVERT�_ge_ANDr�r�r��_or_AND�
_or_INVERTrrr	rr
r rrr�r�vsl������
�F��H�
�F�!�!�!�%�%�%�&�&�&�%�%�%�&�&�&�%�%�%�0�0�0�0�0�0�$�$�$�&*�)�G�)�j�7�>�>�>�$�$�$� ��J��@�@�@�$�$�$�%�%�%� ��G�j�&�&�&�&�&�&�
/�
/�
/�"�"�"�����rr�c�&�eZdZd�Zd�Zd�Zd�ZdS)�
ArgAtomFamilyc�b�|�|��\}}}|�|||��Sr)rp�
select_ids)rrzr��cla�kr�s      r�_and_IDzArgAtomFamily._and_ID�s/���n�n�Q�'�'���Q���~�~�a��C�(�(�(rc�p�||jur|j|jkS|jjduo|jj|kSr�rr�r�r�s   rr�zArgAtomFamily._ge_ATOM�s8���1�5�=�=��5�A�E�>�!��u�}�D�(�?�Q�U�]�a�-?�?rc�\�||jur|j|jkS|jduo
|j|kSrrr�s   rr�zArgAtomFamily._le_ATOM�s4���1�5�=�=��5�A�E�>�!��|�4�'�=�D�L�A�,=�=rc� �|j|jdfS)N�==)r8r�r�s  rrpzArgAtomFamily.c_get_ckc�s������t�+�+rN)r�r�r�rr�r�rpr rrrr�sS������)�)�)�@�@�@�>�>�>�,�,�,�,�,rrc���eZdZdZdZdZd�Zd�Zd�Zd�Z	d�Z
d�ZexZZ
d	�Zd
�Zd�ZexZxZZd�Zd
�ZexZxZZd�Zd�Zd�ZexZZd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d�Z%dS)�	AndFamily�ANDFc��||kr|S||kr|S|j�||��r|jjS|�||f��Sr)rr�r7r��_consr�s   rrzAndFamily.__call__�sY����6�6��H���6�6��H��5�!�!�!�Q�'�'�	$��8�#�#��z�z�1�a�&�!�!�!rc��t|��dkr#|�|t|����St|��dkr|dS|jjS�N�r)r�r`r�r7r�rcs  rr&zAndFamily._cons�sP���s�8�8�a�<�<��8�8�D�%��*�*�-�-�-�
��X�X��]�]��q�6�M��8�#�#rc��g}|jD]u}	|�|��}t|��D]=}|jD]}||ur|�||��sn�|�|���>�f#t
$rY�rwxYw|Sr)r�r{r��contains�append�
CoverageError)rrzrz�ex�ai�e�ei�ajs        rryzAndFamily.c_get_examples�s���
���%�	&�	&�B�
&��$�$�R�(�(���q�'�'�&�&�B��e�&�&���R�<�<�#&�<�<��B�#7�#7�&� %����	�	�"�
�
�
��
&��!�
�
�
���
�����	s�A0�0
A=�<A=c�8�|j�||��Sr)rr�r�s   rr�zAndFamily.c_and	r�rc�$�|jD]}||z}�|Srr�r�s   rr�zAndFamily._and_ANDs#����	�	�A�
��F�A�A��rc��g}|jD]Q}||kr|cS||kr�|j�||��r|jjcS|�|���R|�|��|�|��Sr)r�rr�r7r�r,r&)rrzr��xsr/s     rr�zAndFamily._and_FACTORs���
���%�	�	�B��Q�w�w������b������(�(��Q�/�/�
��x�'�'�'�'��	�	�"�
�
�
�
�
�	�	�!�����z�z�"�~�~�rc�t�|jd|z}|jdd�D]}||jjurn||z}�|S�Nrr))r�r7r�r�s   rrzAndFamily._and_ID"sO��
�E�!�H�q�L����q�r�r��	�	�A��D�H�$�$�$����A��A�A��rc�8�|j�||��Sr)rrr�s   rr<zAndFamily.c_le*����u�}�}�Q��"�"�"rc��||z}|j|us*t|j��t|j��krdS|jD]}|jD]
}||krn�dS�dS�NFT�rr�r�)rrzr��x�ys     r�_le_TERMzAndFamily._le_TERM-s���
��E���5�����A�E�
�
�c�!�%�j�j� 8� 8��5���	�	�A��U�
�
����6�6��E���u�u���trc�8�|j�||��Sr)rrr�s   rr-zAndFamily.c_ge;r:rc�,�|jD]}||ksdS�dSr<r�r�s   r�_ge_TERMzAndFamily._ge_TERM>�-����	�	�A���6�6��u�u���trc�8�|j�||��Sr)rrr�s   rr�zAndFamily.c_orFr:rc��|jj}t|j��D]�\}}t|j��D]�\}}||z|krv|�|jd|�|j|dzd�z��}|�|jd|�|j|dzd�z��}	||	kr|ccS����|j�||��S)Nr))r7r��	enumerater�r&r)
rrzr��Omega�ir/�j�bj�aa�bbs
          rrzAndFamily._or_ANDIs�����!�!���q�u�%�%�	"�	"�E�A�r�"�1�5�)�)�
"�
"���2���7�e�#�#����A�E�"�1�"�I���a��c�d�d��$;�<�<�B����A�E�"�1�"�I���a��c�d�d��$;�<�<�B��R�x�x�!�	�	�	�	�	��
"��x���q�!�$�$�$rc���||kr|S||kr|Sg}|jD]*}||z}|jjr|�|���)n|jj}|D]}||z}�|S|j�||��Sr)r�rrr,r7r�r)rrzr�r6r/�aibrlr>s        rr�zAndFamily._or_TERMVs�����6�6��H���6�6��H�
���%�
	�
	�B��q�&�C��w��
��	�	�#���������!�!�A��
�
���Q�����H��x���q�!�$�$�$rc�>�|jj}|jD]}||z}�	|Sr�r7r�r��rrzrlr/s    rrzAndFamily.c_invertms/���H����%�	�	�B�
�"��H�A�A��rc�(�|jD]	}||vrdS�
dSr<r��rrzr�r>s    rrzAndFamily.c_containsts-����	�	�A���z�z��u�u���trc�v�|jD]0}|�||d��s|�d��cS�1dS)Nr�FailedT)r�r�r�)rrzr�rzr>s     rr�zAndFamily.c_test_containszsO����	,�	,�A��$�$�Q��5�1�1�
,��z�z�(�+�+�+�+�+�
,��trc�$�||z|jjuSrr�r�s   r�c_disjoint3zAndFamily.c_disjoint3�s���A��$�(�*�*�*rc�T�|jD]}|���}|r|cS�d�}|S)Nc�:�tt|����Sr��hex�id��os rrlz!AndFamily.c_get_render.<locals>.r�s���r�!�u�u�:�:�r�r�r~)r�crrls    rr}zAndFamily.c_get_render�sL���E�	�	�D����!�!�A��
�����
�	�	�	��rc�Z�d�|jD��}dd�|��zdzS)Nc��g|]	}|j��
Sr r���.0rs  r�
<listcomp>z)AndFamily.c_get_brief.<locals>.<listcomp>����.�.�.����.�.�.r�(%s)� & �)�r��join�rra�namess   rrbzAndFamily.c_get_brief�s3��.�.���.�.�.����
�
�5�)�)�)�C�/�/rc��|jj�d�|jD����jdt|j��zdfS)Nc��g|]	}|j��
Sr )r��rer>s  rrfz'AndFamily.c_get_ckc.<locals>.<listcomp>�s��*B�*B�*B�q�1�7�*B�*B�*Br)rr!)r7r=�mker_andr�r8r�r�s  rrpzAndFamily.c_get_ckc�sH���H� �)�)�*B�*B�A�E�*B�*B�*B�C�C�N���Q�U���O��
�	
rc�T�d�|jD��}dd�|��zS)Nc�,�g|]}t|����Sr �r��rers  rrfz$AndFamily.c_repr.<locals>.<listcomp>����(�(�(�Q��a���(�(�(rrhrirk�rrz�reprss   rrQzAndFamily.c_repr�s.��(�(�!�%�(�(�(����
�
�5�)�)�)�)rN)&r�r�r�r�rrrr&ryr�r�r�r�r�rr<r@r�rrr-rCr�rrr�rr�r�rrrr�rXr}rbrprQr rrr#r#�s�������
�F�
�F��H�"�"�"�	$�	$�	$����"$�$�$����

�
�
�*�)�I�����#�#�#�
�
�
�'/�.�H�.�z�G�#�#�#����'/�.�H�.�z�G�#�#�#�%�%�%�%�%�%�*%�$�H�z����������+�+�+����0�0�0�

�
�
�*�*�*�*�*rr#c���eZdZdZdZdZd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
e
xZxZZd�Zd�Zd
�ZexZxZZd�Zd�ZexZxZZd�Zd�ZexZxZZ d�Z!d�Z"d�Z#d�Z$d�Z%d�Z&d�Z'd�Z(d�Z)dS)�OrFamily�ORFc�P�||kr|S||kr|S|�||f��Sr�r&r�s   rrzOrFamily.__call__�s4����6�6��H���6�6��H��z�z�1�a�&�!�!�!rc� �|D]*}|jjst|jt��sJ��+t	|��dkr(t
�|t|����St	|��dkr|dS|jj	Sr()
rrr+r#r�rXrr�r7r�)rr�rzs   rr&zOrFamily._cons�s����	B�	B�A��5�>�A�Z���y�%A�%A�A�A�A���s�8�8�a�<�<��?�?�4��s���4�4�4�
��X�X��]�]��q�6�M��8�#�#rc�(�|jD]	}||vrdS�
dS�NTFr�rTs    rrzOrFamily.c_contains�s-����	�	�A��A�v�v��t�t���urc�h�|jjj|j�jt|j��dfS)N�<)r7�Use�findexr�r8r�r�s  rrpzOrFamily.c_get_ckc�s*��"�t�x�|�"�A�E�*�5�s�1�5�z�z�3�F�Frc#���K��fd�|jD��}	d}t|��D]4\}}|�-	t|��V�|dz
}�#t$rd||<Y�0wxYw�5|sdS�K)Nc�T��g|]$}t��|������%Sr )�iterr{)rer>rzs  �rrfz+OrFamily.c_get_examples.<locals>.<listcomp>�s/���8�8�8�Q�t�C�$�$�Q�'�'�(�(�8�8�8rr)r)r�rG�next�
StopIteration)rrzrz�exa�nrIr0s  `    rryzOrFamily.c_get_examples�s������8�8�8�8�!�%�8�8�8��	��A�!�#���
�
���1��=��"�1�g�g�
�
�
��Q�����)�&�&�&�!%��A����&����!��
���	s�A�A�Ac�F�����|j��fd�d��S)Nc�2����|�d��S)NzSome x)r�)r>r�rzs ��rr6z*OrFamily.c_test_contains.<locals>.<lambda>�s���C�,=�,=�a��H�,M�,M�rrN)�forsomer�r�s  ``rr�zOrFamily.c_test_contains�s)�����{�{�1�5�"M�"M�"M�"M�"M�t�T�T�Trc�l�||jur|�||��S|�||��Sr)r�_and_OR�	_and_TERMr�s   rr�zOrFamily.c_and�s5���1�5�=�=��<�<��1�%�%�%��>�>�!�Q�'�'�'rc�B�|jj}|jD]
}|||zz}�|SrrQ)rrzr�rls    rr�zOrFamily._and_TERM�s1���H�����	�	�A�
��Q��J�A�A��rc�V�|jj}|jD]}|jD]
}|||zz}��|SrrQ)rrzr�rl�bis     rr�zOrFamily._and_OR�sG���H�����	�	�A��e�
�
���Q��V����
��rc��|jd}|j�||��}|jdd�D] }||j�||��z}�!|Sr8)r�rr)rrzr�r/rls     rrzOrFamily._and_ID�s\��
�U�1�X���F�N�N�2�q�!�!���%����)�	'�	'�B�
������A�&�&�&�A�A��rc��||z}|j|ur<|j|jus*t|j��t|j��krdSJ�||kS�NFr=r�s   rrCzOrFamily._ge_TERM�sR��
��E���5�D�=�=��u�A�E�!�!�S���Z�Z�3�q�u�:�:�%=�%=��u��1���6�Mrc�l�|j|ur|�||��S|�||��Sr)rr<rCr�s   rr-z
OrFamily.c_ge�s3���5�D�=�=��9�9�Q��?�?�"��=�=��A�&�&�&rc�,�|jD]}||ksdS�dSr<r�rTs    rr<z
OrFamily.c_le�rDrc�8�|j�||��Sr)rr�r�s   rr�z
OrFamily.c_ors���u�|�|�A�q�!�!�!rc��g}d}|jD]%}||ks|�|��||krd}�&|s|�|��|�|��Sr<)r�r,r&)rrzr�r6�lts     rr�zOrFamily._or_TERM
sk��
��
����	�	�A���6�6��	�	�!������6�6��B���	��I�I�a�L�L�L��z�z�"�~�~�rc�d�t|j|jz��}|�|��Sr)�maximalsr�r&)rrzr�r6s    rr�zOrFamily._or_ORs'��
�a�e�a�e�m�
$�
$���z�z�"�~�~�rc�R�|jd}|jdd�D]}||z}�	|Sr8r�rRs    rrzOrFamily.c_inverts:��
�U�1�X�I���%����)�	�	�B�
�"��H�A�A��rc���|j�d�|jD����}t|��dkrt	|��dSd�}d|_d�|_|S)Nc�6�g|]}|�����Sr )r~rds  rrfz)OrFamily.c_get_render.<locals>.<listcomp>&s"��&K�&K�&K�T�t���'8�'8�&K�&K�&Krr)rc�:�tt|����Srr[r^s rrlz OrFamily.c_get_render.<locals>.r*s���2�a�5�5�z�z�!r�Addressc� �t|��Sr)r]�r>s rr6z'OrFamily.c_get_render.<locals>.<lambda>-s��R��U�U�r)r7�
mutnodesetr�r�r�r�r�)rra�rendersrls    rr}zOrFamily.c_get_render%sp���(�%�%�&K�&K�Q�U�&K�&K�&K�L�L���w�<�<�1�����=�=��#�#�
"�
"�
"�(�A��#2�?�A� ��Hrc��d�|jD��}|���dd�|��zdzS)Nc��g|]	}|j��
Sr r�rds  rrfz(OrFamily.c_get_brief.<locals>.<listcomp>1rgr�(� | rj�r��sortrlrms   rrbzOrFamily.c_get_brief0s@��.�.���.�.�.��
�
�
�����U�Z�Z��&�&�&��,�,rc��dS)N�Briefr r�s  rr�zOrFamily.c_get_idpart_header5s���wrc��dS)Nz<mixed>r r�s  rr�zOrFamily.c_get_idpart_label8s���yrc�\����|jjj}|j��j�i����fd�}|S)Nc�����|��}��|��}|�L��|��}��|��j}|���}||f}|�|<|\}}|�d||����S)Nr�)�classify�get�get_kindr�r~�	r>r�brrr�rl�brmemor�clis	      ���rr�z,OrFamily.c_get_idpart_render.<locals>.renderBs�������Q���A����A���B��z��|�|�A�����L�L��O�O�)���O�O�%�%����V����q�	��D�A�q� �q�q�!�!�A�$�$�$�'�'r�r7r�r�r8r��rrzr�r�r�rr�s    @@@rr�zOrFamily.c_get_idpart_render;sN�����
�X�\�
���m���g����	(�	(�	(�	(�	(�	(�	(��
rc�\����|jjj}|j��j�i����fd�}|S)Nc�6����|��}��|��}|�S��|��}��|��j}|j�|��}||f}|�|<n|\}}|dkr||��}||fS)Nr�)r�r�r�r�rr�r�s	      ���rr�z0OrFamily.c_get_idpart_sortrender.<locals>.renderYs�������Q���A����A���B��z��|�|�A�����L�L��O�O�)���H�4�4�T�:�:����V����q�	�	����1��J����A�a�D�D���q�6�Mrr�r�s    @@@rr�z OrFamily.c_get_idpart_sortrenderRsN�����
�X�\�
���m���g����
	�
	�
	�
	�
	�
	�
	��
rc�|�d�|jD��}|���dd�|��zS)Nc�,�g|]}t|����Sr rurvs  rrfz#OrFamily.c_repr.<locals>.<listcomp>jrwrrhr�r�rxs   rrQzOrFamily.c_repris;��(�(�!�%�(�(�(��
�
�
������
�
�5�)�)�)�)rN)*r�r�r�r�rrrr&rrpryr�r�r�r�r�r�r�rrCr�rrr-r<r�rrr�r�r�rrr�rr}rbr�r�r�r�rQr rrr{r{�s�������
�F�
�F��H�"�"�"�	$�	$�	$����G�G�G�
�
�
�U�U�U�(�(�(����*3�2�I�2��h����������'/�.�H�.�z�G�'�'�'����'+�*�H�*�z�G�"�"�"����'/�.�H�.�z�G����
���	�	�	�-�-�-�
���������.���.*�*�*�*�*rr{c��eZdZdZdZdZd�Zd�Zd�Zd�Z	e	Z
d�ZexZZ
d	�Zd
�Zd�Zd�ZeZd
�Zd�Zd�ZexZxZZd�ZeZd�ZexZZd�Zd�Zd�Z d�Z!d�Z"dS)�InvertFamily�INVERTFTc��|jjsJ�||jjur|jjSt
�||��Sr)rrr7r��
NotNothingrXrr�s  rrzInvertFamily.__call__ts@���u�|���|���� � � ��8�&�&��?�?�4��+�+�+rc�:�|�|j|d��S)Nr�)�test_contains_notr�r�s    rr�zInvertFamily.c_test_contains{s���$�$�Q�U�A�~�>�>�>rc��||jvSrr�r�s   rrzInvertFamily.c_contains~s�����:�rc�8�|j�||��Sr)rr�r�s   rr�zInvertFamily.c_and�s���u� � ��A�&�&�&rc�z�|j|z}|jjr||��}|j�||��Sr)r�rrr7r�rTs    rr�zInvertFamily._and_FACTOR�s@��
�E�A�I���5�<�	���Q���A��x����1�%�%�%rc��|||jzz
Srr�r�s   rrzInvertFamily._and_ID�s���A���I��rc��||jkSrr�r�s   rr�z!InvertFamily._factordisjoint_ATOM�s���A�E�z�rc��dSr�r r�s   rr�z#InvertFamily._factordisjoint_INVERT�����urc�8�|j�||��Sr)rrr�s   rr<zInvertFamily.c_le�����u����1�%�%�%rc��dSr�r r�s   rr�zInvertFamily._le_ATOM�r�rc�"�|j|jkSrr�r�s   rrzInvertFamily._le_INVERT�s���u���~�rc�6�|j�|��Sr)r�rwr�s   rr-zInvertFamily.c_ge�s���u�~�~�a� � � rc�8�|j�||��Sr)rrr�s   rr�zInvertFamily.c_or�r�rc��|j|kr
|jjS|j|z}||jjur|S|j�||��Sr)r�r7r�rrTs    r�
_or_FACTORzInvertFamily._or_FACTOR�sQ���5�A�:�:��H�$�$�$�
�E�A�I����� � � ��H��x���q�!�$�$�$rc��|jSrr�r�s  rrzInvertFamily.c_invert�s	���u�rc�4�|j���Srr`r�s  rr}zInvertFamily.c_get_render�s���u���!�!�!rc��|jj}|�d��s|�d��s	d|vrd|z}d|zS)Nr�r�r�rh�~%s)r�r��
startswith)rrzr�s   rrbzInvertFamily.c_get_brief�sN��
�E�K�����c�"�"�	�a�l�l�3�&7�&7�	��q�����
�A��q�y�rc�*�|jjjddfS)Nrz!=)r�r�r8r�s  rrpzInvertFamily.c_get_ckc�s��

�E�K�"�
��
�	
rc�0�dt|j��zS)Nr�)r�r�r�s  rrQzInvertFamily.c_repr�s���t�A�E�{�{�"�"rN)#r�r�r�r�rrrr�rr�r�r�r�r�rr�r�r<rr�rr-r�rrr�rr�r�rrr}rbrprQr rrr�r�os~������
�F�
�F��H�,�,�,�?�?�?����'�'�'��H�&�&�&�*�)�I�����������&�&�&��G�������!�!�!�'+�*�H�*�z�G�&�&�&��G�%�%�%�'�&�H�z����"�"�"����
�
�
�#�#�#�#�#rr�c� �eZdZd�Zd�Zd�ZdS)�FamilyFamilyc�j�t�||��|�dd���dS)N�unionc�4�|j���Sr)r�r
r�s rr6z'FamilyFamily.__init__.<locals>.<lambda>�s��1�5�?�?�+<�+<�r)r�r�rwras  rr�zFamilyFamily.__init__�s6�����D�#�&�&�&�����!<�!<�=�=�=�=�=rc�H�t|t��o
|j|juSr)r+rrr�r�s   rrzFamilyFamily.c_contains�s���!�V�$�$�7���!�%��7rc� �d|jjzS)Nz<Family: %s>)r�r)�rras  rrbzFamilyFamily.c_get_brief�s������/�/rN)r�r�r�r�rrbr rrr�r��sA������>�>�>�8�8�8�0�0�0�0�0rr�c��eZdZd�Zd�Zd'd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�ZexZxZZd�ZexZxZxZZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d�Z%d�Z&d�Z'd �Z(d!�Z)d'd"�Z*d(d#�Z+d$�Z,d%�Z-d&�Z.dS))�IdentitySetFamilyc��t�||��|�|j��|j|_|j|_|j|_|j|_|j|_|j	|_	dSr)
r�r�r�Anythingr3�Partr�r�r8r�ras  rr�zIdentitySetFamily.__init__�sh�����D�#�&�&�&������&�&�&��.����H��	��H��	��j����H��	��7����rc��|j|fi|��Srr~rs   rrzIdentitySetFamily.__call__�s���t�z�$�'�'�$�'�'�'rNc���|�|��}|s|jjSt|��dkr$t	|t|��d��}nt
||��}|�||_|Sr()r3r7r�r�r-r�r%r�)rr�r�rls    rr&zIdentitySetFamily._cons�sp���o�o�c�"�"���	,��8�#�#�
��X�X��]�]�$�T�5��:�:�a�=�9�9�A�A� ��s�+�+�A�
�>��A�E��rc���|j|ur"|�|j|jz��S|j|jjur|�||��S|j�||��Sr)rr&r�r7rr�rr�s   rr�zIdentitySetFamily.c_andsf���5�D�=�=��:�:�a�g���/�0�0�0�
�U�d�h�)�
)�
)��#�#�A�q�)�)�)��5�=�=��A�&�&�&rc��|j|ur"|�|j|jz��S|j�||��Sr)rr&r�rr�s   rr�zIdentitySetFamily._and_ATOMs>���5�D�=�=��:�:�a�g���/�0�0�0��5�=�=��A�&�&�&rc�8�|j�||��Sr)rrr�s   rr�zIdentitySetFamily._and_ANDr:rc�F�|�|j|jz��Sr)r&r�r�s   rrzIdentitySetFamily._and_IDs���z�z�!�'�A�G�+�,�,�,rc���|jj|ur'|�|j|jjz
��S||jjur|S|j�||��Sr)r�rr&r�r7r�rr�s   rr�zIdentitySetFamily._and_INVERTsY���5�9�����:�:�a�g����3�4�4�4�
�$�(�%�
%�
%��H��5�=�=��A�&�&�&rc�>�|jjjj|jdfS)Nz<=)r7r=r�r8r�r�s  rrpzIdentitySetFamily.c_get_ckc s���x�#�)�4�a�g�t�C�Crc�*�t|j��Sr)r�r�r�s  rr#zIdentitySetFamily.c_hash#s���A�G�}�}�rc� �td���r�r�r�s  rr�zIdentitySetFamily.c_iter&s���5�6�6�6rc��|jjSr)r�numrowsr�s  rr�zIdentitySetFamily.c_len,s��
�{�"�"rc��||jvSrr&r�s   rrzIdentitySetFamily.c_contains3s���A�G�|�rc�j�|j|ur|j�||��}|j|jkSr)rrr�r�s   rr<zIdentitySetFamily.c_le6s1���u��}�}���
�
�a��#�#�A��w�!�'�!�!rc���|j|ur"|�|j|jz��S||j�||��z
}|j�||��Sr)rr&r�rr�r�s   rr�zIdentitySetFamily.c_or=sX���5�D�=�=��:�:�a�g���/�0�0�0��A�E�M�M�!�Q�'�'�'�A��5�>�>�!�Q�'�'�'rc�,�|�|��Sr)�get_str_summaryr�s  rrbzIdentitySetFamily.c_get_briefFs���#�#�A�&�&�&rc�4�|j���Sr)rr~r�s  rr}zIdentitySetFamily.c_get_renderIs���v� � �"�"�"rc�6�|j�|��Sr)r�get_set�rrzr�s   rr�zIdentitySetFamily.c_getitemLs���{�"�"�3�'�'�'rc�>�|jj���Sr)r�_oh_printer�get_str_of_topr�s  rrUzIdentitySetFamily.c_strOs���v�!�0�0�2�2�2rc��|j���}|jD]8}	t||��}|�|���)#t
$rY�5wxYw|�|j�|����Sr)r7r�r�r~�addr�r&r3)rrNrT�nsr>�vs      rrRz IdentitySetFamily.maprox_getattrRs���
�X�
 �
 �
"�
"����	�	�A�
��A�t�$�$�����q�	�	�	�	��"�
�
�
���
�����z�z�$�(�-�-�b�1�1�2�2�2s�A
�

A�Ac��|j���}|jD]7}	||}|�|���!#tt
f$rY�4wxYw|�|j�|����Sr)r7r�r�r�KeyError�
IndexErrorr&r3)rrNr�rr>rs      rrVz IdentitySetFamily.maprox_getitem]s���
�X�
 �
 �
"�
"����	�	�A�
��c�F�����q�	�	�	�	���j�)�
�
�
���
�����z�z�$�(�-�-�b�1�1�2�2�2s�A�A�Ac��dS)NzKind: Name/Value/Addressr r�s  rr�z%IdentitySetFamily.c_get_idpart_headerhs��)�)rc��dS)Nr
r r�s  rr�z$IdentitySetFamily.c_get_idpart_labelks���rrc����fd�}|S)Nc����j�|��}|j�d���d��}|S)Nz<1 �>)r7r�r��lstrip�rstrip)r>rlrs  �rr�z5IdentitySetFamily.c_get_idpart_render.<locals>.renderos:�������Q���A�����u�%�%�,�,�S�1�1�A��Hrr )rrzr�s`  rr�z%IdentitySetFamily.c_get_idpart_renderns#���	�	�	�	�	��
rc��g}t|t��r|�|��n�	|�d��}n#t$rtd���wxYw|dgkrg}|D]|}	|���r|�d��rd|z}t|j	|��}n #t$rtd|z���wxYw|�|���}|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�	Exceptionr��istitler�r~r�r�rur��ranger�r�r&r�)rrzr��ers�ss�srIs       rr�zIdentitySetFamily.get_byus������b�-�.�.�	��J�J�r�N�N�N�N�
F��X�X�c�]�]�����
F�
F�
F��D�F�F�F�
F�����b�T�z�z����
�
��[��9�9�;�;�$�!�,�,�u�*=�*=�$�!�!�G�� ���1�-�-�B�B��%�[�[�[�$�U�XY�Y�[�[�[�[�����
�
�2������	����B�B��Q��B��1�c�#�h�h�'�'�
�
���c�!�f�����4�r�>�>��
�
�1�7�r�
�*�*�A��s�A�A�0AB4�4Cc�h�	|j}n(#t$r|jjj}||_YnwxYw|Sr)r�r�r7r�r�)rrzr�s   rr�zIdentitySetFamily.get_er�sI��	���B�B���	�	�	����#�B��A�E�E�E�	�����	s�
�"/�/c��	|j}n<#t$r/|jj�||j��}||_YnwxYw|Sr)r�r�r7�OutputHandling�more_printerr)rrz�ms   rr�zIdentitySetFamily.get_more�sY��	���A�A���	�	�	���'�4�4�Q���D�D�A��A�G�G�G�	�����s�
�6A�Ac��|jjSr)rrr�s  rr�zIdentitySetFamily.get_all�s���v�z�rc�T�|jjjj�|��Sr)r7r�r�r8rr�s  rr�zIdentitySetFamily.get_owners�s ���x�|�!�,�3�3�A�6�6�6rc���	|j}nZ#t$rM|jj���|jj�||j��}||_YnwxYw|Sr)r�r�rr8�clear_checkr�rr�)rrz�ps   rr�zIdentitySetFamily.get_partition�sn��	���A�A���	�	�	�
�E�J�"�"�$�$�$���
�$�$�Q���-�-�A��A�L�L�L�	�����s�
�AA!� A!c�<�|j�||��}|Sr)rr�)rrNrrs    r�get_str_idpartz IdentitySetFamily.get_str_idpart�s ��
�G�!�!�#�s�+�+���rc���g}|�d|jz��|�|j�||����|�d��|�|�|||td�|����z
����d�|��}t|��|kr|d|dz
�dz}|S)Nz%d r�r
��...)r,rrr��get_str_renderedr�rl)rrNr�
max_length�strsrs      r�get_str_refpatz IdentitySetFamily.get_str_refpat�s��������E�C�I�%�&�&�&����C�G�)�)�#�s�3�3�4�4�4����D�������D�)�)���j��R�W�W�T�]�]�!3�!3�3�5�5�	6�	6�	6��G�G�D�M�M���q�6�6�J����/�:��>�/�"�5�(�A��rc�d�|�d}g}d}|���}|jD]d}||��}|r+|t|��zdz|kr|dxxdz
cc<n+|t|��dzz
}|�|���e|���d�|��S)N�2r����r)z, )r~r�r�r,r�rl)	rrNrr+r,�lensr�r$�rss	         rr*z"IdentitySetFamily.get_str_rendered�s������J��������!�!����	�	�A������B��
��s�2�w�w���*�j�8�8��R����E�!�������C��G�G�a�K��D��K�K��O�O�O�O��	�	�����y�y����rc���|�|jj}|�|j}|j}|j�|��}d�|D��}t
d�|��}dt|��|j�	||��fz}|dz
}t|��}	g}
|D]q\}}|�
||||	z
��}t|��dkr
d|j||fz}|
�|��|	t|��dzz
}	|	|krn�rt|
��dkr|
�
d��	��|d
�|
��dzz
}t|��|kr|d|dz
�d
z}|S)Nc��g|]\}}|��Sr r )rerrs   rrfz5IdentitySetFamily.get_str_summary.<locals>.<listcomp>�s��$�$�$�d�a���$�$�$rc��||zSrr �r>r?s  rr6z3IdentitySetFamily.get_str_summary.<locals>.<lambda>�s
��!�a�%�rz<%d %sr�r)z<%d %s: %s>r(c�<�||�d��d�S)Nr�)�indexr�s rr6z3IdentitySetFamily.get_str_summary.<locals>.<lambda>�s��Q�q�w�w�s�|�|�}�}�%5�r)�keyr�r�z...>)r7�max_summary_lengthr�r�r8rrr�rr�r*rr,r�rl)rrar+r�rN�items�keysrr�bslen�bstrs�csss            rr�z!IdentitySetFamily.get_str_summary�s�������4�J�
�:���B��g���
�'�'��,�,��$�$�e�$�$�$���'�'��.�.����C���#�'�"7�"7��Q�"?�"?�@�@��	�T�	���A�������	�	�H�C���'�'��S�*�U�2B�C�C�C��5�z�z�A�~�~�#�s�y�#�s�&;�;���L�L������S��X�X��\�!�E��z�!�!���"��u�:�:��>�>��J�J�5�5�J�6�6�6�	�U�Z�Z��
�
��
$�$���q�6�6�J����-�:�a�<�-� ��'�A��rc�H�d�|j���D��S)Nc��g|]}|��Sr r rqs  rrfz/IdentitySetFamily.get_parts.<locals>.<listcomp>�s��2�2�2�a��2�2�2r)r�get_setsr�s  rr�zIdentitySetFamily.get_parts�s$��2�2�1�;�/�/�1�1�2�2�2�2rc��t|j��dkrt|j��dStd���)Nr)rztheone requires a singleton set)r�r�r�rurMs  rr
zIdentitySetFamily.get_theone�s7���s�y�>�>�Q�����	�?�?�1�%�%��:�;�;�;rc���|�|��}|jj���|jj�|��}|�dS	|�d����n$#t$r|����YnwxYwG�fd�d��}|��}|j|_|jj�	|��|S)NT)�most_recent_firstc���eZdZ�fd�ZdS)�+IdentitySetFamily.get_prod.<locals>.Printerc3�$�K�dV��Ed{V��dS)Nz#Traceback (most recent call first):r )r�framess �r�_oh_get_line_iterz=IdentitySetFamily.get_prod.<locals>.Printer._oh_get_line_iter
s1�����;�;�;�;�!�!�!�!�!�!�!�!�!�!rN)r�r�r�rL)rKs�r�PrinterrIs.�������
"�
"�
"�
"�
"�
"�
"rrM)
r
r7r��_check_tracemalloc�tracemalloc�get_object_traceback�formatr�r�setup_printing)rrN�obj�tbrM�printerrKs      @rrzIdentitySetFamily.get_prod�s�����o�o�c�"�"�����'�'�)�)�)�
�X�
!�
6�
6�s�
;�
;��
�:��F�	!��Y�Y��Y�6�6�F�F���	!�	!�	!��Y�Y�[�[�F�F�F�	!����
	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�
�'�)�)���h������.�.�w�7�7�7��s�A0�0B�Br)NN)/r�r�r�r�rr&r�r�r�rr�rpr#r�r�rr<r�rrr�r�rrr�rbr}r�rUrRrVr�r�r�r�r�r�r�r�r�r&r-r*r�r�r
rr rrr�r��sy������	�	�	�(�(�(�����'�'�'�'�'�'�#�#�#�-�-�-�'�'�'�D�D�D����7�7�7�#�#�#����"�"�"�
'+�*�H�*�z�G�(�(�(�04�3�H�3�z�3�G�f�'�'�'�#�#�#�(�(�(�3�3�3�	3�	3�	3�	3�	3�	3�*�*�*����������@���������7�7�7�������������� ����>3�3�3�<�<�<�
����rr�c��eZdZd�Zd�ZexZxZxZxZZ	d�Z
d�ZexZxZ
Zd�Zd�Zd�Zd�ZexZxZZd	�Zd
�Zd�ZexZxZxZZd�Zd
�Zd�ZdS)�EmptyFamilyc�<�t�||��dSr)r�r�ras  rr�zEmptyFamily.__init__s���"�"�4��-�-�-�-�-rc��|Srr r�s   rr�zEmptyFamily.c_and"����rc��dSr�r r�s   rrzEmptyFamily.c_contains'����urc��||urdSdSr�r r�s   rr-zEmptyFamily.c_ge*s����6�6��4��urc��dS)Nz	<Nothing>r r�s  rrbzEmptyFamily.c_get_brief1s���{rc�,�|jjj�d��S)Nr�)r7r��reprefixr�s  rrQzEmptyFamily.c_repr4s�����.�.�	�	�:�:rc� �td��S)Nr )r�r�s  rr�zEmptyFamily.c_iter7s
���B�x�x�rc��dSr�r r�s   rr<zEmptyFamily.c_le:r�rc��dS)Nrr r�s  rr�zEmptyFamily.c_len?s���qrc��dSr�r r�s  rrKzEmptyFamily.c_nonzeroBr\rc��|Srr r�s   rr�zEmptyFamily.c_orErZrc�,�|�|��Srr�r�s  rrUzEmptyFamily.c_strJr�rc��|Srr r�s   rrYzEmptyFamily.c_subMrZrc��|Srr r�s   rr_zEmptyFamily.c_xorPrZrN) r�r�r�r�r�r�r�r�r�rrr-r�rrrbrQr�r<r�rrr�rKr�r�rrr�rUrYr_r rrrWrWs:������.�.�.����>C�B�I�B��B�h�B��7�������
'+�*�H�*�z�G����;�;�;�������'+�*�H�*�z�G����������04�3�H�3�z�3�G�f�#�#�#��������rrWc�P�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�EquivalenceRelationFamilyc��t�||��t|_|j|_|j|_dSr)r�r�r7r`r�r=ras  rr�z"EquivalenceRelationFamily.__init__Us8�����D�#�&�&�&�&����7����?����rc�P�||i|��}|�||��}||_|Sr)r`r�)r�constructorrr�clr�s      rrz"EquivalenceRelationFamily.__call__[s7���[�$�
'�$�
'�
'��
�X�X�d�B�
�
������	rc��	t|�|����dkS#t$rG	|���}|dj|ko|ddkcYS#t
$rYYdSwxYwwxYw)Nr)rr0r!F)r�r�r�rqr�r)rrzr��ckcs    rrz$EquivalenceRelationFamily.c_containscs���	9��q�t�t�A�w�w�<�<�1�$�$���	9�	9�	9�
9��i�i�k�k���1�v�y�A�~�8�#�a�&�D�.�8�8�8���
�
�
��u�u�u�
����	9���s,�%(�
A9�A&�A9�&
A5�0A9�4A5�5A9c��|j}	t|d��}n#t$rt|���wxYw||��S)N�get_attr_for_er)r8r~r�)rrzrTr8�gs     rr5z#EquivalenceRelationFamily.c_getattrosV���\�
�	'��
�$5�6�6�A�A���	'�	'�	'� ��&�&�&�	'�����q��w�w�s��4c��|j|urt�|||��Sg}||fD]9}|jr|�|j���$|�|���:t
|��}t|��dkr|dS|j�	|��}t|��|_|Sr()rr�r�r9�extendr,�minimalsr�r=rrr�)rrzr�rr>r�s      rr�zEquivalenceRelationFamily.c_andws����5�����#�#�D�!�Q�/�/�/����Q��	�	�A��x�
��
�
�1�8�$�$�$�$��
�
�1�
�
�
�
��s�m�m���s�8�8�q�=�=��q�6�M�
�
�
&�
&�s�
+�
+���#�J�J��	��	rc�>�|j|ur|j|jjvSdSr��rr8�super_classifiersr�s   rr�z"EquivalenceRelationFamily._ge_ATOM��$���5�D�=�=��<�1�<�#A�A�A��urc�>�|j|ur|j|jjvSdSr�rxr�s   rr�z"EquivalenceRelationFamily._le_ATOM�rzrc�&�|jj|i|��Sr)r8�get_userkindr�s    rrz EquivalenceRelationFamily.c_call�s��(�q�|�(�$�7�$�7�7�7rc��d|jzS)NzEquiv. relation %s)r8r�s  rrbz%EquivalenceRelationFamily.c_get_brief�s��#�a�l�2�2rc�f�|j�|j�|����Sr)r8�relimgr7�
nodeset_adaptr�s   rr�z#EquivalenceRelationFamily.c_getitem�s(���|�"�"�4�8�#9�#9�#�#>�#>�?�?�?rc�4�|j���Sr)r8�get_reprnamer�s  rrQz EquivalenceRelationFamily.c_repr�s���|�(�(�*�*�*rN)r�r�r�r�rrr5r�r�r�rrbr�rQr rrrjrjTs�������+�+�+����
9�
9�
9������� ���
���
8�8�8�3�3�3�@�@�@�+�+�+�+�+rrjc�X�eZdZd�Zdd�Zd�Zd�Zde_ee_	d�Z
de
_ee
_	d	�Zd
e_d�Zde_d
�Z
de
_d�Zd
e_d�Zde_d�Zde_d�Zd
e_d�Zde_de_	eZd�Zde_dd�Zd
e_d�Zd�e_dS)�Summary_strc���||_|jj}i|_t	|j�����D]'\}}t|t��r
d|z|j|<�(t	|j	�����D]$\}}t|t��r
||j|<�%i|_
dD]1}t||���dz��}||j
|<�2i|j
|j�t|j�|j|j�|j|j�t*|j�t,|j�t.|j�|j|j�|j|j�t8|j�t:|j�td��|j�|j|j�|j |j!�|j"|j#�tH|j%�tL|j%�tN|jt|j(i�|_)dS)Nztypes.%s)�module�functionr�)*r7r\�_module�invtypes�sorted�__dict__r=r+�type�__builtins__�shorter_invtypesr~�
capitalize�NodeSet�str_address_len�bool�str_repr�BuiltinFunctionType�str_builtin_function�CodeType�str_code�complex�dict�float�	FrameType�	str_frame�FunctionType�str_function�intr��
MethodType�
str_method�
ModuleType�
str_module�
TracebackType�
str_traceback�bytes�str_limrepr�strr��str_type�table)rr7r\rrrTr�s       rr�zSummary_str.__init__�s+������	�!����
��5�>�/�/�1�1�2�2�	2�	2�D�A�q��!�T�"�"�
2�#-��>��
�a� ���5�-�3�3�5�5�6�6�	%�	%�D�A�q��!�T�"�"�
%�#$��
�a� ��
!#���*�	,�	,�D���t���0�0��7�8�8�A�'+�D�!�!�$�$�
��K��-�
��$�-�
�
�%�t�'@�
�
�N�D�M�	
�

�T�]�
�
�$�&�

�
�4�=�
�
�O�T�^�
�
��� 1�
�
���
�
�$�&�
�
��J�J��
�
�
��d�o�
�
��d�o�
�
���!3�
� 
�4�#�!
�"
��!�#
�$
�4�'��$�-�'
�
��
�
�
rFc����|j�|�����$t|t��r|j�n|j��rd�jjjvr��fd�S�S)N�longerc����|����S)N)r�r )rr�r>s ��rr6z&Summary_str.__call__.<locals>.<lambda>�s���Q�Q�q��0�0�0�r)	r�r��
issubclassr�r�r��__func__�__code__�co_varnames)rr:r�r>s  `@rrzSummary_str.__call__�sp�����J�N�N�3�����9��#�t�$�$�
%��M����$���	�h�!�*�"5�"A�A�A�0�0�0�0�0�0��Hrc��||j|<dSr)r�)rr��funcs   r�set_functionzSummary_str.set_function�s����
�4���rc�:�tt|����Srr[�rr>s  rr�zSummary_str.str_address�s���2�a�5�5�z�z�rr�c�X�|�|��|�|��zSr)r��str_lenr�s  rr�zSummary_str.str_address_len�s%������"�"�4�<�<��?�?�2�2rzAddress*Lengthc�<�|j}|j}|dkr|�d|��}|S)N�builtins�.)r�r�)rr>r�rs    rr�z Summary_str.str_builtin_function�s.��
�J��
�L���
�?�?��1�1�a�a� �A��r�Namec�~�d|jjjj�|j��|j|jfzS)Nz%s:%d:%s)r7rg�os�path�basename�co_filename�co_firstlineno�co_namer�s  rr�zSummary_str.str_code�s;���T�X�^�.�3�<�<�Q�]�K�K��-��Y�(�(�	(rzFile:Line:Namec�N�d|jj�d|�|���d�S)Nr�� at r)�f_coder�r�r�s  rr�zSummary_str.str_frame�s.��� �x�/�/�/��1A�1A�!�1D�1D�1D�1D�E�ErzName at Addressc�$�|j�d|j��S�Nr�)r�r�r�s  rr�zSummary_str.str_function�s���,�,�,��
�
�3�3rc�&�dt|��zS)Nz*%d)r�r�s  rr�zSummary_str.str_len�s���s�1�v�v�~�r�Lengthc���|�|jj��}|j�!d|�d|�|j���d�}|j}	|j}n#t
$r
|j}YnwxYw|�d|��S)Nr�r�rr�)r��__self__r)r�r�r�r�)rr>�cnr��	func_names     rr�zSummary_str.str_method�s���
�]�]�1�:�/�
0�
0���:�!�!�!#���T�%5�%5�a�j�%A�%A�%A�%A�B�B��z��	&��
�I�I���	&�	&�	&��
�I�I�I�	&�����"�"�i�i�(�(s�A�A,�+A,zType/<Type at address> . methodc��|jSr)r�r�s  rr�zSummary_str.str_modules
���z�rc�J�|jjj�|��Sr)r7rg�reprlibr�r�s  rr�zSummary_str.str_limreprs���x�~�%�*�*�1�-�-�-rzRepresentation (limited)r�c�j�d|�|j���d|�|���d�S)Nz
<in frame r�r)r��tb_framer�r�s  rr�zSummary_str.str_tracebacks8���(,���q�z�(B�(B�(B�(B�D�DT�DT�UV�DW�DW�DW�DW�X�XrzFrame at Addressc��||jvr|s
|j|S||jvr
|j|St|d��s
d|j��S|j�d|j��S)Nr�z<unknown module>.r�)r�r��hasattrr�r�)rr>r�s   rr�zSummary_str.str_typesw����%�%�%�f�%��(��+�+���
����=��#�#��q�,�'�'�	4�3�q�z�3�3�3��,�-�-���-�-�-rc�P�||jvr
|j|S|j�d|j��Sr�)r�r�r�r�s  r�str_type_longerzSummary_str.str_type_longers1����
����=��#�#��,�,�,��
�
�3�3rc��tSr)r�r�s rr6zSummary_str.<lambda>#s���rN�F)r�r�r�r�rr�r�r�r]r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��_longer_methodr rrr�r��s�������'
�'
�'
�R
�
�
�
� � � ����!*�K��%'�K�"�3�3�3�%5�O�"�)+�O�&����+1��'�(�(�(�/�H��F�F�F�0�I��4�4�4�"(�L�����%�G��	)�	)�	)�!B�J����� &�J��.�.�.�!;�K��%/�K�"��H�Y�Y�Y�#5�M� �.�.�.�.�%�H��4�4�4�1�0�H���rr�c��||kSrr r7s  rr6r6&�
���Q��rc��g}|D]I}|D]}|||��r|||��sn)�|D]}|||��rn�|�|���J|S)z< Find the maximal element(s) of a partially ordered sequence�r,��A�lerlr>rzs     rr�r�&���
�A�
�	�	���	�	�A��r�!�Q�x�x�
���1�a���
�����
�
���2�a��8�8���E�����������Hrc��||kSrr r7s  rr6r66r�rc��g}|D]I}|D]}|||��r|||��sn)�|D]}|||��rn�|�|���J|S)zH Find the minimal element(s) of a sequence of partially ordered elementsr�r�s     rrvrv6r�rc��eZdZdZdZdZdZdZdZd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zdd�Zd�Zd�Zd�Zd�Zdd�Zd�ZdS)�_GLUECLAMP_�PTF)rr8r�r�)r<�out_reach_module_names�auto_convert_type�auto_convert_iter�output)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:typesc�J�|jjj�d��Sr)r�r�r8r�r$s r�
_get_Anythingz_GLUECLAMP_._get_Anythinghs��D�H�N�$=�$F�$F�t�$L�$L�Lrc�F�tt|��|j��Sr)r%rW�emptynodesetr$s r�_get_Nothingz_GLUECLAMP_._get_Nothingis$��#3��D���4�,�$.�$.�.rc�L�t�|j|j��Sr)rXrrr�r$s r�_get_NotNothingz_GLUECLAMP_._get_NotNothingks ��f�o�o�����''�''� 'rc��i}t|j�����D]S\}}t|dd��}|D]:}t||��}||vr|||urt	d|�d|�����|||<�;�T|S)N�_uniset_exportsr zDuplicate export: z
 defined in: )r��out_reach_dictr=r~�RuntimeError)rr�rrrr>s      r�_get_export_dictz_GLUECLAMP_._get_export_dictns�������,�2�2�4�4�5�5�	�	�D�A�q���-�r�2�2�B��
�
���A�r�N�N����7�7�q��u�A�~�~�&�,�AC���Q�Q�G�I�I�I���"���
��rc�N�i}|jD]}t|j|��||<�|Sr)r�r~rZ)rr�rTs   r�_get_out_reach_dictz_GLUECLAMP_._get_out_reach_dictzs5�����/�	2�	2�D��d�l�D�1�1�A�d�G�G��rc�,�|�|��Sr)r�r$s r�_get_summary_strz_GLUECLAMP_._get_summary_str�s��t�'7�'7��'=�'=� =rc�,�|�|��Sr)r#r$s r�_get_fam_Andz_GLUECLAMP_._get_fam_And�s��4�>�>�$�#7�#7�7rc� �t|��Sr)rjr$s r�_get_fam_EquivalenceRelationz(_GLUECLAMP_._get_fam_EquivalenceRelation�s��/��5�5�5rc�,�|�|��Sr)r{r$s r�_get_fam_Orz_GLUECLAMP_._get_fam_Or�s��$�-�-��"5�"5�5rc�,�|�|��Sr)r�r$s r�_get_fam_IdentitySetz _GLUECLAMP_._get_fam_IdentitySet�s��4�+A�+A�$�+G�+G�$Grc�,�|�|��Sr)r�r$s r�_get_fam_Invertz_GLUECLAMP_._get_fam_Invert����d�&7�&7��&=�&=�=rc�,�|�|��Sr)r�r$s r�_get_fam_Familyz_GLUECLAMP_._get_fam_Family�rrc����i���fd�}|S)Nc���������}|�.G�fd�d��j��}�jx|_|_|��<|�g|�Ri|��S)Nc���eZdZ�fd�ZdS)�8_GLUECLAMP_._get_fam_mixin_argatom.<locals>.f.<locals>.Cc�b��|j�||���j||g|�Ri|��dSr)rr�)rr7rr�Mixins    �rr�zA_GLUECLAMP_._get_fam_mixin_argatom.<locals>.f.<locals>.C.__init__�sF����)�2�2�4��=�=�=�&���t�S�@�4�@�@�@�4�@�@�@�@�@rN)r�r�r�r�)rs�r�Cr
�s5�������A�A�A�A�A�A�Arr)r�rr�r�)rrrr�memors`   ��r�fz-_GLUECLAMP_._get_fam_mixin_argatom.<locals>.f�s�����������A��y�A�A�A�A�A�A�A��t�1�A�A�A�
/4�n�<�������U���1�T�)�D�)�)�)�D�)�)�)rr )rrrs` @r�_get_fam_mixin_argatomz"_GLUECLAMP_._get_fam_mixin_argatom�s.������
	*�
	*�
	*�
	*�
	*�
	*��rc��t||j��r|}nJt||j��r|�|��}nt	dt|��z���|j|jurtd���|S�Nz(IdentitySet or NodeSet expected, got %r.zPThe argument has wrong _hiding_tag_, you may convert it by Use.idset or Use.iso.)r+r�r��idsetr�r�rru)rr��idss   r�idset_adaptz_GLUECLAMP_.idset_adapt�s����a��)�*�*�	F��C�C�
��4�<�
(�
(�	F��*�*�Q�-�-�C�C��:�T�!�W�W�D�F�F�
F��>��!2�2�2��b�d�d�
d��
rNc�`�|j�|�|��|���S)Nr�)�fam_IdentitySetr&r3)r�iterabler�s   rrz_GLUECLAMP_.idset�s*���#�)�)�$�/�/�(�*C�*C��)�K�K�Krc��|jSr)rr$s r�_get_isoz_GLUECLAMP_._get_iso�s���#�#rc�,�t||j��Sr)r+r)rrSs  r�isunisetz_GLUECLAMP_.isuniset�s���#�t�{�+�+�+rc���t||j��r|}n<t||j��r|j}nt	dt|��z���|j|jurtd���|Sr)r+r�r�r�r�r�rru)rr�rs   rr�z_GLUECLAMP_.nodeset_adapt�s����a���&�&�	F��B�B�
��4�+�
,�
,�	F���B�B��:�T�!�W�W�D�F�F�
F��>��!2�2�2��b�d�d�
d��	rc�Z�t||j��s|�|��}|Sr)r+r�rr�s  r�retsetz_GLUECLAMP_.retset�s+���!�T�-�.�.�	��
�
�1�
�
�A��rc�L�|s|jS|d}|dd�D]}||z}�|Sr8)r�r�rr&)rr�	maximizedrzr�s     rr�z_GLUECLAMP_.union�sB���	 ��<����G���a�b�b��	�	�A�
��F�A�A��rc���t|t��r|j|jur|S|j}t|t��r!|jr|j�|��St||j��r#|j|jur|�	|��S|j
r5	t|��}|�	|��S#t$rYnwxYwtd���)NzPArgument is not automatically convertible to a UniSet with correct _hiding_tag_.)
r+rrr\r�r�r�r�r�rr�r�r�)rr�r\�its    rr�z#_GLUECLAMP_.uniset_from_setcastable�s����a�� � �	�Q�^�t�7H�%H�%H��H��
���a����
	&�4�#9�
	&��8�=�=��#�#�#�
��4�<�
(�
(�	&�Q�^�t�?P�-P�-P��:�:�a�=�=� �
�
#�	&�
&��!�W�W���z�z�"�~�~�%���
�
�
���
�����^�`�`�	`s�#C�
C�Crr�)r�r�r�r<r�r�r��	_chgable_�	_imports_r�r�r�r�r�r�r�rrrrr	rrrrrr�r"r�r�r rrr�r�Fsf������������A��E�I��I�*M�L�L�.�.�.�'�'�'�
�
�
����>�=�=�7�7�7�6�6�6�6�5�5�G�G�G�=�=�=�=�=�=���� ���L�L�L�L�$�$�$�,�,�,�������

'�
'�
'�
'�`�`�`�`�`rr�N)�	functoolsr�guppy.etc.DescriptorrrPrr�r�r%r-r7r�rXr�rr#r{r�r�r�rWrjr�r�rvr�r rr�<module>r+s���������-�-�-�-�-�-�q�q�q�q�q�V�q�q�q�h	
)�
)�
)�
)�
)�6�
)�
)�
)�^�^�^�^�^�&�^�^�^�B	�����{����'�'�'�'�'�;�'�'�'�,)?�)?�)?�)?�)?�&�)?�)?�)?�X?�?�?�?�?�6�?�?�?�r$�r$�r$�r$�r$�r$�r$�r$�jQ�Q�Q�Q�Q��Q�Q�Q�h,�,�,�,�,�J�,�,�,�*|*�|*�|*�|*�|*��|*�|*�|*�~N*�N*�N*�N*�N*�v�N*�N*�N*�bi#�i#�i#�i#�i#�6�i#�i#�i#�X	0�	0�	0�	0�	0�:�	0�	0�	0�m�m�m�m�m�
�m�m�m�`	:�:�:�:�:�#�:�:�:�zG+�G+�G+�G+�G+�
�G+�G+�G+�TE1�E1�E1�E1�E1�E1�E1�E1�P'�&�

�

�

�

� '�&�

�

�

�

� ^`�^`�^`�^`�^`�^`�^`�^`�^`�^`r

Zerion Mini Shell 1.0