File: //opt/alt/python27/lib/python2.7/site-packages/beaker/ext/google.pyo
�
�a�Kc           @   s�   d  d l  Z  d  d l Z d  d l m Z d  d l m Z m Z d  d l m Z d  d l m	 Z	 e j
 e � Z d a d e f d �  �  YZ d e f d	 �  �  YZ d S(
   i����N(   t   datetime(   t   OpenResourceNamespaceManagert	   Container(   t   InvalidCacheBackendError(   t   null_synchronizert   GoogleNamespaceManagerc           B   s�   e  Z i  Z e d  �  � Z d d � Z d �  Z d �  Z d �  Z d �  Z	 d �  Z
 d �  Z d	 �  Z d
 �  Z
 d �  Z d �  Z RS(
   c         C   sM   t  d  k	 r d  Sy t d � j j j  a  Wn t k
 rH t d � � n Xd  S(   Ns   google.appengine.ext.dbsC   Datastore cache backend requires the 'google.appengine.ext' library(   t   dbt   Nonet
   __import__t	   appenginet   extt   ImportErrorR   (   t   cls(    (    sB   /opt/alt/python27/lib/python2.7/site-packages/beaker/ext/google.pyt   _init_dependencies   s    
t   beaker_cachec            s�   t  j |  | � �  f d �  } �  |  _ t j j �  | �  � |  _ i  |  _ t |  _	 t |  _
 t j t
 j �  k |  _ d |  j |  _ d S(   s%   Creates a datastore namespace managerc             sI   t  d t j �  d t j �  d t j �  � }  t �  t j f |  � } | S(   Nt   createdt   accessedt   data(   t   dictR   t   DateTimePropertyt   BlobPropertyt   typet   Model(   t
   table_dictt   table(   t
   table_name(    sB   /opt/alt/python27/lib/python2.7/site-packages/beaker/ext/google.pyt
   make_cache   s
    s   p%sN(   R   t   __init__R   R   t   tablest
   setdefaultt   cachet   hasht   Falset   _is_newt   loadedt   loggingt   DEBUGt   logt   getEffectiveLevelt	   log_debugt	   namespace(   t   selfR(   R   t   paramsR   (    (   R   sB   /opt/alt/python27/lib/python2.7/site-packages/beaker/ext/google.pyR      s    				c         C   s   t  �  S(   N(   R   (   R)   (    (    sB   /opt/alt/python27/lib/python2.7/site-packages/beaker/ext/google.pyt   get_access_lock0   s    c         C   s   t  �  S(   N(   R   (   R)   t   key(    (    sB   /opt/alt/python27/lib/python2.7/site-packages/beaker/ext/google.pyt   get_creation_lock3   s    c         C   s�   |  j  r | |  _ d  S|  j j |  j � } | sF t |  _ i  |  _ nv t |  _ y t	 j
 t | j � � |  _ WnK t
 t t t	 j f k
 r� |  j r� t j d � n  i  |  _ t |  _ n X| |  _ t |  _  d  S(   Ns.   Couln't load pickle data, creating new storage(   R"