
    d                     X    d dl mZ d dlmZ dgZ G d d          Z G d d          ZdS )    ref)GenericAliasWeakSetc                        e Zd Zd Zd Zd ZdS )_IterationGuardc                 .    t          |          | _        d S N)r   weakcontainer)selfr   s     lib/python3.11/_weakrefset.py__init__z_IterationGuard.__init__   s     //    c                 f    |                                  }||j                            |            | S r
   )r   
_iteratingadd)r   ws     r   	__enter__z_IterationGuard.__enter__   s3      =LT"""r   c                     |                                  }|4|j        }|                    |            |s|                                 d S d S d S r
   )r   r   remove_commit_removals)r   etbr   ss         r   __exit__z_IterationGuard.__exit__   s_      =AHHTNNN %""$$$$$	 =% %r   N)__name__
__module____qualname__r   r   r    r   r   r   r      sA        0 0 0  % % % % %r   r   c                       e Zd Zd!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d Zd ZeZd Zd Zd ZeZd Zd Zd ZeZd Zd ZeZd Zd Zd Z e Z!d Z"d Z#d Z$e$Z%d Z&d  Z' e(e)          Z*dS )"r   Nc                     t                      | _        t          |           fd}|| _        g | _        t                      | _        ||                     |           d S d S )Nc                      |            }|?|j         r|j                            |            d S |j                            |            d S d S r
   )r   _pending_removalsappenddatadiscard)itemselfrefr   s      r   _removez!WeakSet.__init__.<locals>._remove'   s^    799D? ,*11$77777I%%d+++++	  r   )setr&   r   r*   r$   r   update)r   r&   r*   s      r   r   zWeakSet.__init__%   sl    EE	"%d)) 	, 	, 	, 	, !#%%KK r   c                     | j         j        }| j        j        }	 	  |            }n# t          $ r Y d S w xY w ||           )r
   )r$   popr&   r'   
IndexError)r   r.   r'   r(   s       r   r   zWeakSet._commit_removals5   sb    $()#	suu   GDMMM	s   
& 
44c              #      K   t          |           5  | j        D ]} |            }||V  	 d d d            d S # 1 swxY w Y   d S r
   )r   r&   r   itemrefr(   s      r   __iter__zWeakSet.__iter__?   s      T"" 	 	9  wyy# JJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   ;??c                 T    t          | j                  t          | j                  z
  S r
   )lenr&   r$   r   s    r   __len__zWeakSet.__len__H   s     49~~D$: ; ;;;r   c                 X    	 t          |          }n# t          $ r Y dS w xY w|| j        v S )NF)r   	TypeErrorr&   )r   r(   wrs      r   __contains__zWeakSet.__contains__K   sB    	TBB 	 	 	55	TYs    
  c                 V    | j         t          |           f|                                 fS r
   )	__class__list__getstate__r6   s    r   
__reduce__zWeakSet.__reduce__R   s%    ~T

}d.?.?.A.AAAr   c                     | j         r|                                  | j                            t	          || j                             d S r
   )r$   r   r&   r   r   r*   r   r(   s     r   r   zWeakSet.addU   sE    ! 	$!!###	c$--.....r   c                 n    | j         r|                                  | j                                         d S r
   )r$   r   r&   clearr6   s    r   rD   zWeakSet.clearZ   s7    ! 	$!!###	r   c                 ,    |                      |           S r
   r=   r6   s    r   copyzWeakSet.copy_   s    ~~d###r   c                     | j         r|                                  	 	 | j                                        }n# t          $ r t	          d          d w xY w |            }||S H)NTzpop from empty WeakSet)r$   r   r&   r.   KeyErrorr1   s      r   r.   zWeakSet.popb   s    ! 	$!!###	C)--// C C C788dBC799D	s	   8 Ac                     | j         r|                                  | j                            t	          |                     d S r
   )r$   r   r&   r   r   rB   s     r   r   zWeakSet.removen   sA    ! 	$!!###	T#####r   c                     | j         r|                                  | j                            t	          |                     d S r
   )r$   r   r&   r'   r   rB   s     r   r'   zWeakSet.discards   sA    ! 	$!!###	#d))$$$$$r   c                 p    | j         r|                                  |D ]}|                     |           d S r
   )r$   r   r   )r   otherelements      r   r,   zWeakSet.updatex   sM    ! 	$!!### 	 	GHHW	 	r   c                 0    |                      |           | S r
   )r,   r   rM   s     r   __ior__zWeakSet.__ior__~   s    Er   c                 X    |                                  }|                    |           |S r
   )rG   difference_updater   rM   newsets      r   
differencezWeakSet.difference   s(      '''r   c                 0    |                      |           d S r
   )__isub__rP   s     r   rS   zWeakSet.difference_update       er   c                     | j         r|                                  | |u r| j                                         n$| j                            d |D                        | S )Nc              3   4   K   | ]}t          |          V  d S r
   r   .0r(   s     r   	<genexpr>z#WeakSet.__isub__.<locals>.<genexpr>   s(      'D'DdD		'D'D'D'D'D'Dr   )r$   r   r&   rD   rS   rP   s     r   rX   zWeakSet.__isub__   sg    ! 	$!!###5==IOOI'''D'De'D'D'DDDDr   c                 F                            fd|D                       S )Nc              3   $   K   | ]
}|v |V  d S r
   r    r]   r(   r   s     r   r^   z'WeakSet.intersection.<locals>.<genexpr>   s'      EEtdEEr   rF   rP   s   ` r   intersectionzWeakSet.intersection   s*    ~~EEEEuEEEEEEr   c                 0    |                      |           d S r
   )__iand__rP   s     r   intersection_updatezWeakSet.intersection_update   rY   r   c                     | j         r|                                  | j                            d |D                        | S )Nc              3   4   K   | ]}t          |          V  d S r
   r   r\   s     r   r^   z#WeakSet.__iand__.<locals>.<genexpr>   s(      %B%BDc$ii%B%B%B%B%B%Br   )r$   r   r&   re   rP   s     r   rd   zWeakSet.__iand__   sI    ! 	$!!###	%%%B%BE%B%B%BBBBr   c                 J    | j                             d |D                       S )Nc              3   4   K   | ]}t          |          V  d S r
   r   r\   s     r   r^   z#WeakSet.issubset.<locals>.<genexpr>   s(      !>!>#d))!>!>!>!>!>!>r   )r&   issubsetrP   s     r   rj   zWeakSet.issubset   s'    y!!!>!>!>!>!>>>>r   c                 X    | j         t          t          t          |                    k     S r
   r&   r+   mapr   rP   s     r   __lt__zWeakSet.__lt__       y3s3////r   c                 J    | j                             d |D                       S )Nc              3   4   K   | ]}t          |          V  d S r
   r   r\   s     r   r^   z%WeakSet.issuperset.<locals>.<genexpr>   s(      #@#@$CII#@#@#@#@#@#@r   )r&   
issupersetrP   s     r   rr   zWeakSet.issuperset   s'    y###@#@%#@#@#@@@@r   c                 X    | j         t          t          t          |                    k    S r
   rl   rP   s     r   __gt__zWeakSet.__gt__   ro   r   c                     t          || j                  st          S | j        t	          t          t          |                    k    S r
   )
isinstancer=   NotImplementedr&   r+   rm   r   rP   s     r   __eq__zWeakSet.__eq__   s9    %00 	"!!yCC0000r   c                 X    |                                  }|                    |           |S r
   )rG   symmetric_difference_updaterT   s      r   symmetric_differencezWeakSet.symmetric_difference   s(    **5111r   c                 0    |                      |           d S r
   )__ixor__rP   s     r   rz   z#WeakSet.symmetric_difference_update   rY   r   c                       j         r                                   |u r j                                         n& j                             fd|D                         S )Nc              3   B   K   | ]}t          |j                  V  d S r
   )r   r*   ra   s     r   r^   z#WeakSet.__ixor__.<locals>.<genexpr>   s/      1\1\d#dDL2I2I1\1\1\1\1\1\r   )r$   r   r&   rD   rz   rP   s   ` r   r}   zWeakSet.__ixor__   so    ! 	$!!###5==IOOI111\1\1\1\V[1\1\1\\\\r   c                 D    |                      d | |fD                       S )Nc              3   $   K   | ]}|D ]}|V  d S r
   r    )r]   r   r   s      r   r^   z WeakSet.union.<locals>.<genexpr>   s/      BBABB1aBBBBBBBr   rF   rP   s     r   unionzWeakSet.union   s'    ~~BB$BBBBBBr   c                 N    t          |                     |                    dk    S )Nr   )r5   rb   rP   s     r   
isdisjointzWeakSet.isdisjoint   s#    4$$U++,,11r   c                 *    t          | j                  S r
   )reprr&   r6   s    r   __repr__zWeakSet.__repr__   s    DIr   r
   )+r   r   r   r   r   r3   r7   r;   r@   r   rD   rG   r.   r   r'   r,   rQ   rV   __sub__rS   rX   rb   __and__re   rd   rj   __le__rn   rr   __ge__rt   rx   r{   __xor__rz   r}   r   __or__r   r   classmethodr   __class_getitem__r    r   r   r   r   $   s&               < < <  B B B/ / /
  
$ $ $
 
 
$ $ $
% % %
       G    F F FG    ? ? ?F0 0 0A A AF0 0 01 1 1
   #G    C C CF2 2 2   $L11r   N)_weakrefr   typesr   __all__r   r   r    r   r   <module>r      s   
            +% % % % % % % %2i2 i2 i2 i2 i2 i2 i2 i2 i2 i2r   