|
Server : Apache System : Linux cvar2.toservers.com 3.10.0-962.3.2.lve1.5.73.el7.x86_64 #1 SMP Wed Aug 24 21:31:23 UTC 2022 x86_64 User : njnconst ( 1116) PHP Version : 8.4.18 Disable Function : NONE Directory : /opt/alt/python37/lib/python3.7/site-packages/beaker/ext/__pycache__/ |
Upload File : |
B
��[q � @ s� d dl mZ d dlZd dlZd dlmZ d dlmZmZ d dlmZm Z d dl
mZmZ d dl
mZmZ e�e�ZdaG dd � d e�ZG d
d� de�Zdd
d�ZdS )� )�pickleN)�datetime)�OpenResourceNamespaceManager� Container)�InvalidCacheBackendError�MissingCacheParameter)�file_synchronizer�null_synchronizer)�verify_directory�SyncDictc @ s~ e Zd Ze� Ze� Zedd� �Zddd�Zdd� Z dd � Z
d
d� Zdd
� Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd� ZdS )�SqlaNamespaceManagerc C s: t d k rd S ydd la W n tk
r4 td��Y nX d S )Nr z?SQLAlchemy, which is required by this backend, is not installed)�sa�
sqlalchemy�ImportErrorr )�cls� r �@/opt/alt/python37/lib/python3.7/site-packages/beaker/ext/sqla.py�_init_dependencies s z'SqlaNamespaceManager._init_dependenciesNc s� t �| |� |r|| _n|r&|d | _| jr6t| j� | jj�t� j�� fdd��| _ | jj
�d� j�jf �fdd��| _i | _
d| _d| _dS )aQ Create a namespace manager for use with a database table via
SQLAlchemy.
``bind``
SQLAlchemy ``Engine`` or ``Connection`` object
``table``
SQLAlchemy ``Table`` object in which to store namespace data.
This should usually be something created by ``make_cache_table``.
z/container_db_lockc s � S )Nr r )�bindr r �<lambda>6 � z/SqlaNamespaceManager.__init__.<locals>.<lambda>z%s:%sc s � S )Nr r )�tabler r r 8 r FN)r �__init__�lock_dirr
� __class__�binds�get�str�urlr �tables�namer �hash�_is_new�loaded)�self� namespacer r Zdata_dirr �kwargsr )r r r r ! s
zSqlaNamespaceManager.__init__c C s t � S )N)r )r$ r r r �get_access_lock= s z$SqlaNamespaceManager.get_access_lockc C s t d| j | jd�S )Nzdatabasecontainer/funclock/%s)�
identifierr )r r% r )r$ �keyr r r �get_creation_lock@ s z&SqlaNamespaceManager.get_creation_lockc C s� | j r|| _d S t�| jjjg| jjj| jk�}| j� |��
� }|sRd| _i | _nNd| _y|d | _W n8 t
tttjtjfk
r� t�d� i | _d| _Y nX || _d| _ d S )NTF�dataz.Couln't load pickle data, creating new storage)r# �flagsr
�selectr �cr+ r% r �execute�fetchoner"