
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \.  ã               @   sZ   d dl mZ d dlmZ dgZG dd„ dƒZedd„ ƒZG dd„ dƒZd d	lm	Z	m
Z
 d
S )é    )Úref)ÚcontextmanagerÚlocalc               @   s(   e Zd ZdZdd„ Zdd	„ Zd
d„ ZdS )Ú
_localimplÚkeyÚdictsÚ	localargsÚ	locallockÚ__weakref__c             C   s   dt t| ƒƒ | _i | _d S )Nz_threading_local._localimpl.)ÚstrÚidr   r   )Úself© r   ú(/usr/lib64/python3.6/_threading_local.pyÚ__init__–   s    z_localimpl.__init__c             C   s   t ƒ }| jt|ƒ d S )Né   )Úcurrent_threadr   r   )r   Úthreadr   r   r   Úget_dictž   s    z_localimpl.get_dictc                sh   i }| j }tƒ }t|ƒ}|f‡fdd„	}|f‡ fdd„	}t| |ƒ‰ t||ƒ‰ˆ |j|< ˆ|f| j|< |S )Nc                s   ˆ ƒ }|d k	r|j |= d S )N)Ú__dict__)Ú_r   r   )Úwrthreadr   r   Úlocal_deletedª   s    z-_localimpl.create_dict.<locals>.local_deletedc                s   ˆ ƒ }|d k	r|j j|ƒ}d S )N)r   Úpop)r   Úidtr   Údct)Úwrlocalr   r   Úthread_deleted¯   s    z._localimpl.create_dict.<locals>.thread_deleted)r   r   r   r   r   r   )r   Z	localdictr   r   r   r   r   r   )r   r   r   Úcreate_dict¤   s    


z_localimpl.create_dictN)r   r   r   r	   r
   )Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r   r   r   r   r   r   r   r   ’   s   r   c             c   sv   t j| dƒ}y|jƒ }W n2 tk
rJ   |jƒ }|j\}}| j||Ž Y nX |j� t j| d|ƒ d V  W d Q R X d S )NÚ_local__implr   )	ÚobjectÚ__getattribute__r   ÚKeyErrorr   r   r   r	   Ú__setattr__)r   Úimplr   ÚargsÚkwr   r   r   Ú_patch¾   s    
r+   c               @   s0   e Zd ZdZdd„ Zdd„ Zdd„ Zd	d
„ ZdS )r   r#   r   c             O   sX   |s|r| j tj krtdƒ‚tj| ƒ}tƒ }||f|_tƒ |_tj|d|ƒ |j	ƒ  |S )Nz*Initialization arguments are not supportedr#   )
r   r$   Ú	TypeErrorÚ__new__r   r   ÚRLockr	   r'   r   )Úclsr)   r*   r   r(   r   r   r   r-   Ï   s    

zlocal.__new__c          
   C   s    t | ƒ� tj| |ƒS Q R X d S )N)r+   r$   r%   )r   Únamer   r   r   r%   Ý   s    
zlocal.__getattribute__c             C   s:   |dkrt d| jj ƒ‚t| ƒ� tj| ||ƒS Q R X d S )Nr   z+%r object attribute '__dict__' is read-only)ÚAttributeErrorÚ	__class__r   r+   r$   r'   )r   r0   Úvaluer   r   r   r'   á   s    
zlocal.__setattr__c          
   C   s8   |dkrt d| jj ƒ‚t| ƒ� tj| |ƒS Q R X d S )Nr   z+%r object attribute '__dict__' is read-only)r1   r2   r   r+   r$   Ú__delattr__)r   r0   r   r   r   r4   é   s    
zlocal.__delattr__N)r#   r   )r   r    r!   r"   r-   r%   r'   r4   r   r   r   r   r   Ì   s
   )r   r.   N)Úweakrefr   Ú
contextlibr   Ú__all__r   r+   r   Z	threadingr   r.   r   r   r   r   Ú<module>ƒ   s   ,&