File: //lib64/python3.9/__pycache__/weakref.cpython-39.opt-2.pyc
a
    �DOg8T  �                   @   s�   d dl mZmZmZmZmZmZmZmZ d dl	m
Z
mZ d dlZd dl
Z
d dlZeefZg d�Zej�e
� ej�e
� G dd� de�ZG dd� dej�ZG d	d
� d
e�ZG dd� dej�ZG d
d� d�ZdS )�    )�getweakrefcount�getweakrefs�ref�proxy�CallableProxyType�	ProxyType�
ReferenceType�_remove_dead_weakref)�WeakSet�_IterationGuardN)
r   r   r   r   �WeakKeyDictionaryr   r   r   �
ProxyTypes�WeakValueDictionaryr
   �
WeakMethod�finalizec                       s@   e Zd ZdZddd�Z� fdd�Zdd� Zd	d
� Zej	Z	�  Z
S )r   )�	_func_ref�
_meth_type�_alive�__weakref__Nc                    s|   z|j }|j}W n& ty6   td�t|���d �Y n0 � �fdd�}t�| ||�}t||�|_t|�|_	d|_
t|��|S )Nz)argument should be a bound method, not {}c                    s&