
    z%i4                     l    	 d dl mZ d dlmZ dgZ G d d      Zed        Z G d d      Zd dlm	Z	m
Z
 y	)
    )ref)contextmanagerlocalc                   $    e Zd Z	 dZd Zd Zd Zy)
_localimpl)keydicts	localargs	locallock__weakref__c                 J    dt        t        |             z   | _        i | _        y )Nz_threading_local._localimpl.)stridr   r	   )selfs    D/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/_threading_local.py__init__z_localimpl.__init__   s     2C4MA
    c                 N    	 t               }| j                  t        |         d   S )N   )current_threadr	   r   )r   threads     r   get_dictz_localimpl.get_dict   s'    	!zz"V*%a((r   c                     	 i }| j                   }t               }t        |      }|ffd	}|ffd	}t        | |      t        ||      |j                  |<   |f| j
                  |<   |S )Nc                 4            }||j                   |= y y N)__dict__)_r   r   wrthreads      r   local_deletedz-_localimpl.create_dict.<locals>.local_deleted   s!    ZF!OOC( "r   c                 P            }||j                   j                  |      }y y r   )r	   pop)r   idtr   dctwrlocals       r   thread_deletedz._localimpl.create_dict.<locals>.thread_deleted   s)    
 IE kkooc* !r   )r   r   r   r   r   r	   )	r   	localdictr   r   r"   r   r%   r$   r   s	          @@r   create_dictz_localimpl.create_dict   sw    F	hh!j!$ 	)
 #& 	+ dM*v~.&"I-

3r   N)__name__
__module____qualname__	__slots__r   r   r'    r   r   r   r      s    -GI)r   r   c              #   R  K   t         j                  | d      }	 |j                         }|j                  5  t         j                  | d|       d  d d d        y # t        $ r4 |j	                         }|j
                  \  }} | j                  |i | Y mw xY w# 1 sw Y   y xY ww)N_local__implr   )	object__getattribute__r   KeyErrorr'   r
   r   r   __setattr__)r   implr#   argskws        r   _patchr6      s     ""48D#mmo
 
 4S1 	  # >>bt"r"# s>   B'A B'B	B':BB'BB'B$ B'c                   (    e Zd ZdZd Zd Zd Zd Zy)r   )r.   r   c                   |s|r'| j                   t        j                   u 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   r2   r'   )clsr4   r5   r   r3   s        r   r:   zlocal.__new__   sp    BS\\V__<HII~~c"|46 	r   c                 p    t        |       5  t        j                  | |      cd d d        S # 1 sw Y   y xY wr   )r6   r/   r0   r   names     r   r0   zlocal.__getattribute__   s.    D\ 	7**46	7 	7 	7s   ,5c                     |dk(  r"t        d| j                  j                  z        t        |       5  t        j                  | ||      cd d d        S # 1 sw Y   y xY wNr   z+%r object attribute '__dict__' is read-only)AttributeError	__class__r(   r6   r/   r2   )r   r?   values      r   r2   zlocal.__setattr__   s\    : =..))*+ + D\ 	9%%dD%8	9 	9 	9s   AAc                     |dk(  r"t        d| j                  j                  z        t        |       5  t        j                  | |      cd d d        S # 1 sw Y   y xY wrA   )rB   rC   r(   r6   r/   __delattr__r>   s     r   rF   zlocal.__delattr__   sZ    : =..))*+ + D\ 	2%%dD1	2 	2 	2s   AAN)r(   r)   r*   r+   r:   r0   r2   rF   r,   r   r   r   r      s    *I792r   )r   r;   N)weakrefr   
contextlibr   __all__r   r6   r   	threadingr   r;   r,   r   r   <module>rK      sM   @D  %)) )X 
 
#2 #2L , +r   