File: //proc/self/root/opt/alt/python311/lib64/python3.11/__pycache__/weakref.cpython-311.opt-2.pyc
�
    !A?h	T  �                   �:  � 	 d dl mZmZmZmZmZmZmZmZ d dl	m
Z
mZ d dlZd dl
Z
d dlZeefZg d�Zej        �                    e
�  �          G d� de�  �        Z G d� dej        �  �        Z G d	� d
e�  �        Z G d� dej        �  �        Z G 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                   �F   � � e Zd Z	 dZdd�Z� fd�Zd� Zd� Zej	        Z	� xZ
S )r   )�	_func_ref�
_meth_type�_alive�__weakref__Nc                 �\  ��� 	 |j         }|j        }n># t          $ r1 t          d�                    t          |�  �        �  �        �  �        d �w xY w��fd�}t
          j        | ||�  �        }t
          ||�  �        |_        t          |�  �        |_	        d|_
        t
          |�  �        �|S )Nz)argument should be a bound method, not {}c                 �Z   ��  ��   �         }|j         rd|_         �� �|�  �         d S d S d S �NF)r   )�arg�self�callback�self_wrs     ���./opt/alt/python311/lib64/python3.11/weakref.py�_cbzWeakMethod.__new__.<locals>._cb5   sH   �� � �7�9�9�D��{� 
#�#����'��H�T�N�N�N�N�N�
#� 
#�'�'�    T)�__self__�__func__�AttributeError�	TypeError�format�typer   �__new__r   r   r   )�cls�methr   �obj�funcr   r   r   s     `    @r   r'