
    g                     2    d dl mZ ddlmZ  G d de      Zy)   )	Interface    )Lockc                   J    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y
)Dictc                 j    t               | _        t               | _        t	        j
                  |        y N)r   lockdictdatar   __init__selfs    *lib/python3.12/site-packages/partd/dict.pyr   zDict.__init__   s"    F	F	4     c                     d| j                   iS Nr   )r   r   s    r   __getstate__zDict.__getstate__   s    		""r   c                 n    t        j                  | |       t        j                  |        |d   | _        y r   )r   __setstate__r   r   r   )r   states     r   r   zDict.__setstate__   s)    tU+d&M	r   c                 d   |r| j                   j                          	 |j                         D ]@  \  }}|| j                  vrg | j                  |<   | j                  |   j	                  |       B 	 |r| j                   j                          y y # |r| j                   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DII%#%DIIaL		!##A& %
 TYY&&(ttTYY&&(ts   AB B/c           	      p   t        |t        t        t        f      sJ |r| j                  j                          	 |D cg c]-  }dj                  | j                  j                  |g             / }}|r| j                  j                          |S c c}w # |r| j                  j                          w w xY w)Nr   )

isinstancelisttuplesetr
   r   joinr   getr   )r   keysr
   r   keyresults         r   _getz	Dict._get   s    $uc 2333II	$BFG$3chhtyy}}S"56$FG		!!#	 H		!!# s   B 2B1B B B5c                     |r| j                   j                          	 |g| j                  |<   |r| j                   j                          yy# |r| j                   j                          w w xY w)z Idempotent set Nr
   r   r   r   )r   r(   valuer
   s       r   _isetz
Dict._iset(   sZ    II	$#WDIIcN		!!# t		!!# s   A A+c                    |r| j                   j                          	 |D ]  }|| j                  v s| j                  |=   	 |r| j                   j                          y y # |r| j                   j                          w w xY wr	   r,   )r   r'   r
   r(   s       r   _deletezDict._delete2   sn    II	$$))#		#  		!!# t		!!# s   A  A   A?c                 l    | j                   j                          | j                  j                          y r	   )
_iset_seenclearr   r   s    r   dropz	Dict.drop=   s     		r   c                 $    | j                          y r	   )r4   )r   argss     r   __exit__zDict.__exit__A   s    		r   N)T)__name__
__module____qualname__r   r   r   r   r*   r.   r0   r4   r7    r   r   r   r      s/    !
#"
)	$	$r   r   N)corer   	threadingr   r   r;   r   r   <module>r>      s     =9 =r   