3 \.�@sZddlmZddlmZdgZGdd�d�Zedd��ZGdd�d�Zdd lm Z m Z d S) �)�ref)�contextmanager�localc@s(eZdZd Zdd�Zdd �Zd d �Zd S)� _localimpl�key�dicts� localargs� locallock� __weakref__cCsdtt|��|_i|_dS)Nz_threading_local._localimpl.)�str�idrr)�self�r�(/usr/lib64/python3.6/_threading_local.py�__init__�sz_localimpl.__init__cCst�}|jt|�dS)N�)�current_threadrr )r �threadrrr�get_dict�sz_localimpl.get_dictcshi}|j}t�}t|�}|f�fdd� }|f�fdd� }t||��t||���|j|<�|f|j|<|S)Ncs��}|dk r|j|=dS)N)�__dict__)�_rr)�wrthreadrr� local_deleted�sz-_localimpl.create_dict..local_deletedcs��}|dk r|jj|�}dS)N)r�pop)r�idtr�dct)�wrlocalrr�thread_deleted�sz._localimpl.create_dict..thread_deleted)rrr rrr)r Z localdictrrrrrr)rrr� create_dict�s   z_localimpl.create_dictN)rrrr r )�__name__� __module__� __qualname__� __slots__rrrrrrrr�srccsvtj|d�}y |j�}Wn2tk rJ|j�}|j\}}|j||�YnX|j�tj|d|�dVWdQRXdS)N� _local__implr) �object�__getattribute__r�KeyErrorrrrr � __setattr__)r �implr�args�kwrrr�_patch�s   r+c@s0eZdZd Zdd�Zdd�Zdd�Zd d �Zd S) rr#rcOsX|s|r|jtjkrtd��tj|�}t�}||f|_t�|_tj|d|�|j �|S)Nz*Initialization arguments are not supportedr#) rr$� TypeError�__new__rr�RLockr r'r)�clsr)r*r r(rrrr-�s  z local.__new__c Cs t|��tj||�SQRXdS)N)r+r$r%)r �namerrrr%�s zlocal.__getattribute__c Cs:|dkrtd|jj��t|��tj|||�SQRXdS)Nrz+%r object attribute '__dict__' is read-only)�AttributeError� __class__rr+r$r')r r0�valuerrrr'�s   zlocal.__setattr__c Cs8|dkrtd|jj��t|��tj||�SQRXdS)Nrz+%r object attribute '__dict__' is read-only)r1r2rr+r$� __delattr__)r r0rrrr4�s   zlocal.__delattr__N)r#r)rr r!r"r-r%r'r4rrrrr�s )rr.N) �weakrefr� contextlibr�__all__rr+rZ threadingrr.rrrr��s   , &