
    n%@e                     :    d dl mZ ddlmZ  G d de          ZdS )   )	Interface    )Lockc                   L    e Zd Zd Zd Zd ZddZddZddZddZ	d	 Z
d
 ZdS )Dictc                 z    t                      | _        t                      | _        t	          j        |            d S N)r   lockdictdatar   __init__selfs    *lib/python3.11/site-packages/partd/dict.pyr   zDict.__init__   s/    FF	FF	4         c                     d| j         iS Nr   )r   r   s    r   __getstate__zDict.__getstate__   s    	""r   c                 ~    t          j        | |           t                              |            |d         | _        d S r   )r   __setstate__r   r   r   )r   states     r   r   zDict.__setstate__   s6    tU+++d&M			r   Tc                 V   |r| j                                          	 |                                D ]8\  }}|| j        vr
g | j        |<   | j        |                             |           9	 |r| j                                          d S d S # |r| j                                          w w xY wr	   )r
   acquireitemsr   appendrelease)r   r   r
   kwargskvs         r   r   zDict.append   s    $""$$$	)

 ' '1DI%%#%DIaL	!##A&&&&'
 (TY&&(((((((t(TY&&(((((s   AB
 
B(c                     t          |t          t          t          f          sJ |r j                                         	  fd|D             }|r j                                         n!# |r j                                         w w xY w|S )Nc                 l    g | ]0}d                      j                            |g                     1S )r   )joinr   get).0keyr   s     r   
<listcomp>zDict._get.<locals>.<listcomp>"   s5    GGG3chhty}}S"5566GGGr   )
isinstancelisttuplesetr
   r   r   )r   keysr
   r   results   `    r   _getz	Dict._get   s    $uc 233333 	 I	$GGGG$GGGF $	!!###  $	!!####$s   A, ,B
c                     |r| j                                          	 |g| j        |<   |r| j                                          dS dS # |r| j                                          w w xY w)z Idempotent set Nr
   r   r   r   )r   r%   valuer
   s       r   _isetz
Dict._iset(   s     	 I	$#WDIcN $	!!#####$ $t $	!!####$s   A A%c                     |r| j                                          	 |D ]}|| j        v r| j        |= 	 |r| j                                          d S d S # |r| j                                          w w xY wr	   r/   )r   r+   r
   r%   s       r   _deletezDict._delete2   s     	 I	$ ' '$)##	#'  $	!!#####$ $t $	!!####$s   A A1c                 j    | j                                          | j                                         d S r	   )
_iset_seenclearr   r   s    r   dropz	Dict.drop=   s.    	r   c                 .    |                                   d S r	   )r7   )r   argss     r   __exit__zDict.__exit__A   s    		r   N)T)__name__
__module____qualname__r   r   r   r   r-   r1   r3   r7   r:    r   r   r   r      s        ! ! !
# # #" " "
) ) ) )	 	 	 	$ $ $ $	$ 	$ 	$ 	$      r   r   N)corer   	threadingr   r   r>   r   r   <module>rA      s]               = = = = =9 = = = = =r   