U
e5dO! � @ s� d dl mZmZ d dlmZ d dlZddddgZG dd � d ejj �Z
G d
d� dejj �ZG dd� de�ZG dd� de�Z
ddd�ZdS )� )�Pickler� Unpickler)�BytesION�Shelf�
BsdDbShelf�DbfilenameShelf�openc @ s4 e Zd Zdd� Ze Z Z Z Z ZZ dd� Z
dS )�_ClosedDictc G s t d��d S )Nz!invalid operation on closed shelf)�
ValueError)�self�args� r
�/usr/lib64/python3.8/shelve.py�closedE s z_ClosedDict.closedc C s dS )Nzr
�r r
r
r �__repr__I s z_ClosedDict.__repr__N)�__name__�
__module__�__qualname__r �__iter__�__len__�__getitem__�__setitem__�__delitem__�keysr r
r
r
r r B s r c @ sx e Zd Zddd�Zdd� Zdd � Zd
d� Zddd
�Zdd� Zdd� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� ZdS ) r NF�utf-8c C s. || _ |d krd}|| _|| _i | _|| _d S )N� )�dict� _protocol� writeback�cache�keyencoding�r r �protocolr r! r
r
r �__init__T s zShelf.__init__c c s" | j �� D ]}|�| j�V q
d S �N)r r �decoder! )r �kr
r
r r ^ s zShelf.__iter__c C s
t | j�S r% )�lenr r r
r
r r b s z
Shelf.__len__c C s |� | j�| jkS r% ��encoder! r �r �keyr
r
r �__contains__e s zShelf.__contains__c C s |� | j�| jkr| | S |S r% r) )r r, �defaultr
r
r �geth s z Shelf.getc C sZ z| j | }W nF tk
rT t| j|�| j� �}t|��� }| jrP|| j |<