
    =Ogp!                         	 d dl mZmZmZ d dlmZ d dlZg dZ G d dej	        j
                  Z G d dej	        j
                  Z G d	 d
e          Z G d de          ZddZdS )    )DEFAULT_PROTOCOLPickler	Unpickler)BytesION)Shelf
BsdDbShelfDbfilenameShelfopenc                   4    e Zd Z	 d ZexZxZxZxZxZZ	d Z
dS )_ClosedDictc                      t          d          )Nz!invalid operation on closed shelf)
ValueError)selfargss     /usr/lib64/python3.11/shelve.pyclosedz_ClosedDict.closedE   s    <===    c                     dS )Nz<Closed Dictionary> r   s    r   __repr__z_ClosedDict.__repr__I   s    $$r   N)__name__
__module____qualname__r   __iter____len____getitem____setitem____delitem__keysr   r   r   r   r   r   B   sS        D> > >JPPHPwPP{P[4% % % % %r   r   c                   f    e Zd Z	 	 	 ddZd Zd Zd ZddZd	 Zd
 Z	d Z
d Zd Zd Zd Zd ZdS )r   NFutf-8c                 ^    || _         |t          }|| _        || _        i | _        || _        d S N)dictr   	_protocol	writebackcachekeyencodingr   r%   protocolr'   r)   s        r   __init__zShelf.__init__T   s7    	'H!"
&r   c              #   z   K   | j                                         D ]}|                    | j                  V  d S r$   )r%   r    decoder)   )r   ks     r   r   zShelf.__iter__^   sI      !! 	- 	-A((4+,,,,,,	- 	-r   c                 *    t          | j                  S r$   )lenr%   r   s    r   r   zShelf.__len__b   s    49~~r   c                 D    |                     | j                  | j        v S r$   encoder)   r%   r   keys     r   __contains__zShelf.__contains__e   s    zz$*++ty88r   c                 X    |                     | j                  | j        v r| |         S |S r$   r3   )r   r6   defaults      r   getz	Shelf.geth   s-    ::d&''49449r   c                    	 | j         |         }nt# t          $ rg t          | j        |                    | j                                     }t          |                                          }| j        r
|| j         |<   Y nw xY w|S r$   )	r(   KeyErrorr   r%   r4   r)   r   loadr'   r   r6   valuefs       r   r   zShelf.__getitem__m   s    	(JsOEE 	( 	( 	(	#**T-=">">?@@AaLL%%''E~ ("'
3		(
 s    A.B Bc                     | j         r
|| j        |<   t                      }t          || j                  }|                    |           |                                | j        |                    | j	                  <   d S r$   )
r'   r(   r   r   r&   dumpgetvaluer%   r4   r)   )r   r6   r?   r@   ps        r   r   zShelf.__setitem__w   si    > 	$#DJsOIIAt~&&	u23**,,	#**T-..///r   c                 z    | j         |                    | j                  = 	 | j        |= d S # t          $ r Y d S w xY wr$   )r%   r4   r)   r(   r<   r5   s     r   r   zShelf.__delitem__   sO    Icjj!1223	
3 	 	 	DD	s   , 
::c                     | S r$   r   r   s    r   	__enter__zShelf.__enter__   s    r   c                 .    |                                   d S r$   )close)r   typer?   	tracebacks       r   __exit__zShelf.__exit__   s    

r   c                 ,   | j         d S 	 |                                  	 | j                                          n# t          $ r Y nw xY w	 t	                      | _         d S #  d | _         Y d S xY w# 	 t	                      | _         w #  d | _         Y w xY wxY wr$   )r%   syncrI   AttributeErrorr   r   s    r   rI   zShelf.close   s    9F	!IIKKK	!!!!!   
!'MM			! 				!'MM		! 			sO   A/ : A/ 
AA/ AA/ A   	A,/B1BB	BBc                 R    t          | d          sd S |                                  d S )Nr'   )hasattrrI   r   s    r   __del__zShelf.__del__   s,    t[)) 	 F

r   c                     | j         r@| j        r9d| _         | j                                        D ]
\  }}|| |<   d| _         i | _        t          | j        d          r| j                                         d S d S )NFTrN   )r'   r(   itemsrQ   r%   rN   )r   r6   entrys      r   rN   z
Shelf.sync   s    > 	dj 	"DN"j..00 " "
U!S		!DNDJ49f%% 	INN	 	r   NFr"   r$   )r   r   r   r,   r   r   r7   r:   r   r   r   rG   rL   rI   rR   rN   r   r   r   r   r   M   s         7<$' ' ' '- - -  9 9 9   
  ? ? ?      ! ! !"      r   r   c                   :    e Zd Z	 	 	 d
dZd Zd Zd Zd Zd	 ZdS )r   NFr"   c                 B    t                               | ||||           d S r$   )r   r,   r*   s        r   r,   zBsdDbShelf.__init__   s"    tT8YDDDDDr   c                     | j                             |          \  }}t          |          }|                    | j                  t          |                                          fS r$   )r%   set_locationr   r.   r)   r   r=   r>   s       r   rZ   zBsdDbShelf.set_location   sR    y--c22eENN

4+,,ill.?.?.A.ABBr   c                     t          | j                  \  }}t          |          }|                    | j                  t          |                                          fS r$   )nextr%   r   r.   r)   r   r=   r>   s       r   r\   zBsdDbShelf.next   sJ    DIeENN

4+,,ill.?.?.A.ABBr   c                     | j                                         \  }}t          |          }|                    | j                  t          |                                          fS r$   )r%   previousr   r.   r)   r   r=   r>   s       r   r^   zBsdDbShelf.previous   sP    y))++eENN

4+,,ill.?.?.A.ABBr   c                     | j                                         \  }}t          |          }|                    | j                  t          |                                          fS r$   )r%   firstr   r.   r)   r   r=   r>   s       r   r`   zBsdDbShelf.first   sN    y((eENN

4+,,ill.?.?.A.ABBr   c                     | j                                         \  }}t          |          }|                    | j                  t          |                                          fS r$   )r%   lastr   r.   r)   r   r=   r>   s       r   rb   zBsdDbShelf.last   sN    y~~''eENN

4+,,ill.?.?.A.ABBr   rV   )	r   r   r   r,   rZ   r\   r^   r`   rb   r   r   r   r   r      s        
 7<$E E E EC C C
C C C
C C C
C C C
C C C C Cr   r   c                       e Zd Z	 ddZdS )r	   cNFc                 p    dd l }t                              | |                    ||          ||           d S )Nr   )dbmr   r,   r
   )r   filenameflagr+   r'   rf   s         r   r,   zDbfilenameShelf.__init__   s7    


tSXXh55xKKKKKr   rd   NF)r   r   r   r,   r   r   r   r	   r	      s3        L L L L L Lr   r	   rd   Fc                 (    	 t          | |||          S r$   )r	   )rg   rh   r+   r'   s       r   r
   r
      s    
 8T8Y???r   ri   )pickler   r   r   ior   collections.abccollections__all__abcMutableMappingr   r   r   r	   r
   r   r   r   <module>rr      sD  8t 8 7 7 7 7 7 7 7 7 7          
<
<
<% % % % %+/0 % % %_ _ _ _ _KO* _ _ _D(C (C (C (C (C (C (C (CV	L 	L 	L 	L 	Le 	L 	L 	L@ @ @ @ @ @r   