
    
3j                     4    S SK Jr  S SKJrJr   " S S5      rg)    )DeepHash)dict_
SetOrderedc                   Z    \ rS rSrSrSS jrS rS rS rS r	\	r
S	 r\rS
 rS rS rSrg)AnySet   z
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                     [        5       U l        [        5       U l        [        5       U l        U(       a  U H  nU R                  U5        M     g g N)r   _setr   _hashes_hash_to_objectsadd)selfitemsitems      I/home/wildlama/miniconda3/lib/python3.13/site-packages/deepdiff/anyset.py__init__AnySet.__init__   s;    L	w %      c                      U R                   R                  U5        g ! [         a9    [        XR                  S9nX!   nX0R
                  ;  a  XR
                  U'    g  g f = fN)hashes)r   r   	TypeErrorr   r   r   )r   r   
hashes_objhash_s       r   r   
AnySet.add   s[    	4IIMM$ 	4!$||<J$E111/3%%e, 2	4s    >A! A!c                      XR                   ;   nU$ ! [         a)    [        XR                  S9nX1   nX@R                  ;   n U$ f = fr   )r   r   r   r   r   )r   r   resultr   r   s        r   __contains__AnySet.__contains__   sT    	4YY&F
 	  	4!$||<J$E333F		4s    /AAc                     U R                   (       a  U R                   R                  5       $ U R                  R                  [        [	        U R                  5      5      5      $ r
   )r   popr   nextiterr   s    r   r"   
AnySet.pop&   s@    9999==?"((,,T$t7L7L2M-NOOr   c                 T    Uu  p#U R                   U:H  =(       a    U R                  U:H  $ r
   )r   r   )r   otherset_parthashes_to_objs_parts       r   __eq__AnySet.__eq__,   s*    (-%		X%V$*?*?CV*VWr   c                 N    SR                  U R                  U R                  5      $ )Nz< AnySet {}, {} >)formatr   r   r%   s    r   __repr__AnySet.__repr__2   s    "))$))T5J5JKKr   c                 X    [        U R                  5      [        U R                  5      -   $ r
   )lenr   r   r%   s    r   __len__AnySet.__len__7   s     499~D$9$9 :::r   c              #      #    U R                    H  nUv   M	     U R                  R                  5        H  nUv   M	     g 7fr
   )r   r   values)r   r   s     r   __iter__AnySet.__iter__:   s6     IIDJ ))002DJ 3s   >A c                 R    [        U R                  =(       d    U R                  5      $ r
   )boolr   r   r%   s    r   __bool__AnySet.__bool__@   s    DII6!6!677r   )r   r   r   r
   )__name__
__module____qualname____firstlineno____doc__r   r   r   r"   r+   __req__r/   __str__r3   r7   r;   __static_attributes__ r   r   r   r      sE    4PX GL G;8r   r   N)deepdiff.deephashr   deepdiff.helperr   r   r   rE   r   r   <module>rH      s    & -<8 <8r   