File: //opt/alt/python27/lib64/python2.7/bsddb/dbshelve.pyc
�
T~gc           @   s�  d  Z  d d l Z e j d d k Z e r6 d d Un d d l Z e j d d k rd d d l Z nz e j d k  r� d d l Z n\ d d l Z e j �  Z e j	 �  z) e j
 d d	 d
 d e �d d l Z Wd e j �  X[ e j
 Z
 d �  Z e j d k  rd d
 l m Z n d d l Z e j Z e j d e j d d d � Z d e j f d �  �  YZ d e f d �  �  YZ d d d �  �  YZ d S(   sN   Manage shelves of pickled objects using bsddb database files for the
storage.
i����Ni    i   s   from . import dbi   i   t   ignoret   messages1   the cPickle module has been removed in Python 3.0t   categoryc         C   s   t  j |  d | �S(   Nt   protocol(   t   cPicklet   dumps(   t   objectR   (    (    s3   /opt/alt/python27/lib64/python2.7/bsddb/dbshelve.pyt   _dumpsD   s    (   t	   DictMixini�  c         C   s�   t  | � t  d � k r� | } | d k r6 t j } q� | d k rK d } q� | d k rc t j } q� | d k r{ t j } q� | d k r� t j t j B} q� t j d � n  t | � } | j |  | | | | � | S(	   s(  
    A simple factory function for compatibility with the standard
    shleve.py module.  It can be used like this, where key is a string
    and data is a pickleable object:
        from bsddb import dbshelve
        db = dbshelve.open(filename)
        db[key] = data
        db.close()
    t    t   rt   rwi    t   wt   ct   nsJ   flags should be one of 'r', 'w', 'c' or 'n' or use the bsddb.db.DB_* flags(   t   typet   dbt	   DB_RDONLYt	   DB_CREATEt   DB_TRUNCATEt   DBErrort   DBShelft   open(   t   filenamet   flagst   modet   filetypet   dbenvt   dbnamet   sflagt   d(    (    s3   /opt/alt/python27/lib64/python2.7/bsddb/dbshelve.pyR   P   s     	t
   DBShelveErrorc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s3   /opt/alt/python27/lib64/python2.7/bsddb/dbshelve.pyR   s   s    R   c           B   s  e  Z d  Z d d � Z d �  Z d �  Z d �  Z d �  Z d �  Z	 d �  Z
 d d � Z e j
 d k ru d �  Z n  d �  Z d
 �  Z d �  Z d d � Z d d � Z d d � Z d d � Z d d � Z d �  Z d d d � Z d d d � Z d d d � Z d d � Z RS(   s�   A shelf to hold pickled objects, built upon a bsddb DB object.  It
    automatically pickles/unpickles data objects going to/from the DB.
    c         C   s:   t  j | � |  _  t |  _ t r- t |  _ n	 d |  _ d  S(   Ni   (   R   t   DBt   Truet   _closedt   HIGHEST_PROTOCOLR   (   t   selfR   (    (    s3   /opt/alt/python27/lib64/python2.7/bsddb/dbshelve.pyt   __init__z   s
    	c         C   s   |  j  �  d  S(   N(   t   close(   R&