
    :Qg                     4    d dl mZ d dlmZmZ  G d d      Zy)    )DeepHash)dict_
SetOrderedc                   P    e Zd ZdZddZd Zd Zd Zd ZeZ	d Z
e
Zd	 Zd
 Zd Zy)AnySeta  
    Any object can be in this set whether hashable or not.
    Note that the current implementation has memory leak and keeps
    traces of objects in itself even after popping.
    However one the AnySet object is deleted, all those traces will be gone too.
    Nc                     t               | _        t               | _        t               | _        |r|D ]  }| j                  |        y y N)r   _setr   _hashes_hash_to_objectsadd)selfitemsitems      L/var/www/html/answerous/venv/lib/python3.12/site-packages/deepdiff/anyset.py__init__zAnySet.__init__   s@    L	w %      c                     	 | j                   j                  |       y # t        $ r> t        || j                        }||   }|| j
                  vr|| j
                  |<   Y y Y y w xY wN)hashes)r
   r   	TypeErrorr   r   r   )r   r   
hashes_objhash_s       r   r   z
AnySet.add   sc    	4IIMM$ 	4!$t||<Jt$ED111/3%%e, 2	4s    AA%$A%c                     	 || j                   v }|S # t        $ r. t        || j                        }||   }|| j                  v }Y |S w xY wr   )r
   r   r   r   r   )r   r   resultr   r   s        r   __contains__zAnySet.__contains__   s\    	4TYY&F
 	  	4!$t||<Jt$Ed333F		4s    3A	A	c                     | j                   r| j                   j                         S | j                  j                  t        t	        | j                                    S r	   )r
   popr   nextiterr   s    r   r   z
AnySet.pop&   s@    9999==?"((,,T$t7L7L2M-NOOr   c                 L    |\  }}| j                   |k(  xr | j                  |k(  S r	   )r
   r   )r   otherset_parthashes_to_objs_parts       r   __eq__zAnySet.__eq__,   s-    (-%%		X%V$*?*?CV*VWr   c                 N    dj                  | j                  | j                        S )Nz< AnySet {}, {} >)formatr
   r   r!   s    r   __repr__zAnySet.__repr__2   s    "))$))T5J5JKKr   c                 X    t        | j                        t        | j                        z   S r	   )lenr
   r   r!   s    r   __len__zAnySet.__len__7   s     499~D$9$9 :::r   c              #   |   K   | j                   D ]  }|  | j                  j                         D ]  }|  y wr	   )r
   r   values)r   r   s     r   __iter__zAnySet.__iter__:   sA     II 	DJ	))002 	DJ	s   :<c                 H    t        | j                  xs | j                        S r	   )boolr
   r   r!   s    r   __bool__zAnySet.__bool__@   s    DII6!6!677r   r	   )__name__
__module____qualname____doc__r   r   r   r   r&   __req__r)   __str__r,   r/   r2    r   r   r   r      sE    4PX GL G;8r   r   N)deepdiff.deephashr   deepdiff.helperr   r   r   r9   r   r   <module>r<      s    & -<8 <8r   