
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,ag  ã                   @   s2   d dl mZ dgZG dd„ dƒZG dd„ dƒZdS )é    ©ÚrefÚWeakSetc                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú_IterationGuardc                 C   s   t |ƒ| _d S ©N)r   Úweakcontainer)Úselfr   © r	   ú0/opt/alt/python38/lib64/python3.8/_weakrefset.pyÚ__init__   s    z_IterationGuard.__init__c                 C   s    |   ¡ }|d k	r|j | ¡ | S r   )r   Ú
_iteratingÚadd)r   Úwr	   r	   r
   Ú	__enter__   s    z_IterationGuard.__enter__c                 C   s0   |   ¡ }|d k	r,|j}| | ¡ |s,| ¡  d S r   )r   r   ÚremoveÚ_commit_removals)r   ÚeÚtÚbr   Úsr	   r	   r
   Ú__exit__   s    
z_IterationGuard.__exit__N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r	   r	   r	   r
   r   
   s   r   c                   @   s  e Zd Zd@dd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZeZd d!„ Zd"d#„ Zd$d%„ ZeZd&d'„ Zd(d)„ Zd*d+„ ZeZd,d-„ Zd.d/„ ZeZd0d1„ Zd2d3„ Zd4d5„ Z e Z!d6d7„ Z"d8d9„ Z#d:d;„ Z$e$Z%d<d=„ Z&d>d?„ Z'dS )Ar   Nc                 C   sB   t ƒ | _t| ƒfdd„}|| _g | _t ƒ | _|d k	r>|  |¡ d S )Nc                 S   s2   |ƒ }|d k	r.|j r"|j | ¡ n|j | ¡ d S r   )r   Ú_pending_removalsÚappendÚdataÚdiscard)ÚitemZselfrefr   r	   r	   r
   Ú_remove&   s
    z!WeakSet.__init__.<locals>._remove)Úsetr   r   r   r   r   Úupdate)r   r   r   r	   r	   r
   r   $   s    zWeakSet.__init__c                 C   s$   | j }| jj}|r || ¡ ƒ qd S r   )r   r   r   Úpop)r   Úlr   r	   r	   r
   r   4   s    zWeakSet._commit_removalsc              	   c   s8   t | ƒ�& | jD ]}|ƒ }|d k	r|V  qW 5 Q R X d S r   )r   r   ©r   Zitemrefr   r	   r	   r
   Ú__iter__:   s
    

zWeakSet.__iter__c                 C   s   t | jƒt | jƒ S r   )Úlenr   r   ©r   r	   r	   r
   Ú__len__C   s    zWeakSet.__len__c                 C   s.   zt |ƒ}W n tk
r"   Y dS X || jkS )NF)r   Ú	TypeErrorr   )r   r   Zwrr	   r	   r
   Ú__contains__F   s
    zWeakSet.__contains__c                 C   s   | j t| ƒft| dd ƒfS )NÚ__dict__)Ú	__class__ÚlistÚgetattrr'   r	   r	   r
   Ú
__reduce__M   s    
ÿzWeakSet.__reduce__c                 C   s&   | j r|  ¡  | j t|| jƒ¡ d S r   )r   r   r   r   r   r   ©r   r   r	   r	   r
   r   Q   s    zWeakSet.addc                 C   s   | j r|  ¡  | j ¡  d S r   )r   r   r   Úclearr'   r	   r	   r
   r1   V   s    zWeakSet.clearc                 C   s
   |   | ¡S r   ©r,   r'   r	   r	   r
   Úcopy[   s    zWeakSet.copyc                 C   sT   | j r|  ¡  z| j ¡ }W n tk
r:   tdƒd ‚Y nX |ƒ }|d k	r|S qd S )Nzpop from empty WeakSet)r   r   r   r"   ÚKeyErrorr$   r	   r	   r
   r"   ^   s    zWeakSet.popc                 C   s"   | j r|  ¡  | j t|ƒ¡ d S r   )r   r   r   r   r   r0   r	   r	   r
   r   j   s    zWeakSet.removec                 C   s"   | j r|  ¡  | j t|ƒ¡ d S r   )r   r   r   r   r   r0   r	   r	   r
   r   o   s    zWeakSet.discardc                 C   s&   | j r|  ¡  |D ]}|  |¡ qd S r   )r   r   r   )r   ÚotherZelementr	   r	   r
   r!   t   s    zWeakSet.updatec                 C   s   |   |¡ | S r   )r!   ©r   r5   r	   r	   r
   Ú__ior__z   s    
zWeakSet.__ior__c                 C   s   |   ¡ }| |¡ |S r   )r3   Údifference_update©r   r5   Znewsetr	   r	   r
   Ú
difference~   s    
zWeakSet.differencec                 C   s   |   |¡ d S r   )Ú__isub__r6   r	   r	   r
   r8   „   s    zWeakSet.difference_updatec                 C   s<   | j r|  ¡  | |kr"| j ¡  n| j dd„ |D ƒ¡ | S )Nc                 s   s   | ]}t |ƒV  qd S r   r   ©Ú.0r   r	   r	   r
   Ú	<genexpr>Œ   s     z#WeakSet.__isub__.<locals>.<genexpr>)r   r   r   r1   r8   r6   r	   r	   r
   r;   †   s    zWeakSet.__isub__c                    s   ˆ   ‡ fdd„|D ƒ¡S )Nc                 3   s   | ]}|ˆ kr|V  qd S r   r	   r<   r'   r	   r
   r>   �   s      z'WeakSet.intersection.<locals>.<genexpr>r2   r6   r	   r'   r
   Úintersection�   s    zWeakSet.intersectionc                 C   s   |   |¡ d S r   )Ú__iand__r6   r	   r	   r
   Úintersection_update“   s    zWeakSet.intersection_updatec                 C   s(   | j r|  ¡  | j dd„ |D ƒ¡ | S )Nc                 s   s   | ]}t |ƒV  qd S r   r   r<   r	   r	   r
   r>   ˜   s     z#WeakSet.__iand__.<locals>.<genexpr>)r   r   r   rA   r6   r	   r	   r
   r@   •   s    zWeakSet.__iand__c                 C   s   | j  dd„ |D ƒ¡S )Nc                 s   s   | ]}t |ƒV  qd S r   r   r<   r	   r	   r
   r>   œ   s     z#WeakSet.issubset.<locals>.<genexpr>)r   Úissubsetr6   r	   r	   r
   rB   ›   s    zWeakSet.issubsetc                 C   s   | j ttt|ƒƒk S r   ©r   r    Úmapr   r6   r	   r	   r
   Ú__lt__Ÿ   s    zWeakSet.__lt__c                 C   s   | j  dd„ |D ƒ¡S )Nc                 s   s   | ]}t |ƒV  qd S r   r   r<   r	   r	   r
   r>   £   s     z%WeakSet.issuperset.<locals>.<genexpr>)r   Ú
issupersetr6   r	   r	   r
   rF   ¢   s    zWeakSet.issupersetc                 C   s   | j ttt|ƒƒkS r   rC   r6   r	   r	   r
   Ú__gt__¦   s    zWeakSet.__gt__c                 C   s$   t || jƒstS | jttt|ƒƒkS r   )Ú
isinstancer,   ÚNotImplementedr   r    rD   r   r6   r	   r	   r
   Ú__eq__©   s    zWeakSet.__eq__c                 C   s   |   ¡ }| |¡ |S r   )r3   Úsymmetric_difference_updater9   r	   r	   r
   Úsymmetric_difference®   s    
zWeakSet.symmetric_differencec                 C   s   |   |¡ d S r   )Ú__ixor__r6   r	   r	   r
   rK   ´   s    z#WeakSet.symmetric_difference_updatec                    s@   ˆ j rˆ  ¡  ˆ |kr"ˆ j ¡  nˆ j ‡ fdd„|D ƒ¡ ˆ S )Nc                 3   s   | ]}t |ˆ jƒV  qd S r   )r   r   r<   r'   r	   r
   r>   ¼   s     z#WeakSet.__ixor__.<locals>.<genexpr>)r   r   r   r1   rK   r6   r	   r'   r
   rM   ¶   s    zWeakSet.__ixor__c                 C   s   |   dd„ | |fD ƒ¡S )Nc                 s   s   | ]}|D ]
}|V  q
qd S r   r	   )r=   r   r   r	   r	   r
   r>   À   s       z WeakSet.union.<locals>.<genexpr>r2   r6   r	   r	   r
   Úunion¿   s    zWeakSet.unionc                 C   s   t |  |¡ƒdkS )Nr   )r&   r?   r6   r	   r	   r
   Ú
isdisjointÃ   s    zWeakSet.isdisjointc                 C   s
   t | jƒS r   )Úreprr   r'   r	   r	   r
   Ú__repr__Æ   s    zWeakSet.__repr__)N)(r   r   r   r   r   r%   r(   r*   r/   r   r1   r3   r"   r   r   r!   r7   r:   Ú__sub__r8   r;   r?   Ú__and__rA   r@   rB   Ú__le__rE   rF   Ú__ge__rG   rJ   rL   Ú__xor__rK   rM   rN   Ú__or__rO   rQ   r	   r	   r	   r
   r   #   sJ   
			N)Ú_weakrefr   Ú__all__r   r   r	   r	   r	   r
   Ú<module>   s   