File: //usr/lib64/python3.8/__pycache__/_weakrefset.cpython-38.opt-2.pyc
U
    e5dg  �                   @   s2   d dl mZ dgZG dd� d�ZG dd� d�ZdS )�    ��ref�WeakSetc                   @   s$   e Zd Zdd� Zdd� Zdd� ZdS )�_IterationGuardc                 C   s   t |�| _d S �N)r   �
weakcontainer)�selfr   � r	   �#/usr/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 Zd Zd@dd�Zdd� Zdd� Zdd	� Zd
d� Zdd
� Zdd� Z	dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� ZeZd d!� Zd"d#� Zd$d%� ZeZd&d'� Zd(d)� Zd*d+� ZeZd,d-� Zd.d/� ZeZd0d1� Zd2d3� Zd4d5� Z e Z!d6d7� Z"d8d9� Z#d:d;� Z$e$Z%d<d=� Z&d>d?� Z'dS )Ar   Nc                 C   sB   t � | _t| �fdd�}|| _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)�itemZselfrefr   r	   r	   r
   �_remove&