File: //proc/self/root/opt/alt/python27/lib/python2.7/site-packages/beaker/ext/database.pyc
�
7Y�Kc @ s� d d l Z 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 m Z d d l
m Z m Z d d l
m Z m Z e j e � Z d a d a d a d e f d � � YZ d e f d
� � YZ d S( i����N( t datetime( t OpenResourceNamespaceManagert Container( t InvalidCacheBackendErrort MissingCacheParameter( t file_synchronizert null_synchronizer( t verify_directoryt SyncDictt DatabaseNamespaceManagerc B s� e Z e � Z e � Z e d � � Z d
d
e d d
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 sc t d k r d Sy/ d d l a d d l j a d d l m a Wn t k
r^ t d � � n Xd S( Ni����( t typess8 Database cache backend requires the 'sqlalchemy' library( t sat Nonet
sqlalchemyt sqlalchemy.poolt poolR
t ImportErrorR ( t cls( ( sD /opt/alt/python27/lib/python2.7/site-packages/beaker/ext/database.pyt _init_dependencies s
t beaker_cachec s� t j | | � � d k r% | � n | r7 | | _ n | rM | d | _ n | j rf t | j � n � ps � d � � � } � � � f d � }
i | _ t | _ t | _ t j
j | |
� | _ d S( s Creates a database namespace manager
``url``
SQLAlchemy compliant db url
``sa_opts``
A dictionary of SQLAlchemy keyword options to initialize the engine
with.
``optimistic``
Use optimistic session locking, note that this will result in an
additional select when updating a cache value to compare version
numbers.
``table_name``
The table name to use in the database for the cache.
s /container_db_locks sa.urlc s� � � } � � f d � } t j j | | � } t j � | t j d t j d t �t j d t j d � d t
�t j d t j d t
�t j d t j d t
�t j d t j d t
�t j
d � � } | j d
t � | S( Nc s5 � � d <t j � d � } t j � } | | _ | S( Ns sa.urls sa.( R t engine_from_configt MetaDatat bind( t enginet meta( t sa_optst url( sD /opt/alt/python27/lib/python2.7/site-packages/beaker/ext/database.pyt make_metaE s
t idt primary_keyt namespacei� t nullablet accessedt createdt datat
checkfirst( R t metadatast getR t Tablet ColumnR
t Integert Truet Stringt Falset DateTimet
PickleTypet UniqueConstraintt create( t meta_keyR R t cache( R t
table_nameR ( sD /opt/alt/python27/lib/python2.7/site-packages/beaker/ext/database.pyt
make_cacheB s
N(
R t __init__R t lock_dirR t hashR+ t _is_newt loadedR t tablesR% R1 ( t selfR R R t
optimisticR2 t data_dirR5 t paramst table_keyR3 ( ( R R2 R sD /opt/alt/python27/lib/python2.7/site-packages/beaker/ext/database.pyR4 "