|
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
��[? � @ s� d dl Z d dlZd dlZd dlZd dlZyd dlZd dlZd dlZW n ek
r` dZdZY nX d dl m
Z
d dlmZ d dl
mZmZ d dlmZ d dlmZmZ G dd� de
�ZG d d
� d
e�ZdS )� N)�NamespaceManager)�SynchronizerImpl)�SyncDict�machine_identifier)�sha1)�string_type�PY2c s� e Zd ZdZdZe� Z� fdd�Zdd� Zdd� Z d d
� Z
dd� Zd
d� Zddd�Z
dd� Zdd� Zdd� Zdd� Zdd� Z� ZS )�MongoNamespaceManagera^ Provides the :class:`.NamespaceManager` API over MongoDB.
Provided ``url`` can be both a mongodb connection string or
an already existing MongoClient instance.
The data will be stored into ``beaker_cache`` collection of the
*default database*, so make sure your connection string or
MongoClient point to a default database.
i c s\ t t| ��|� d | _td kr&td��t|t�rFtj� |tj
|�| _n|| _| j�� | _
d S )Nzpymongo3 is not available)�superr �__init__Zlock_dir�pymongo�RuntimeError�
isinstancer �clients�get�MongoClient�client�get_default_database�db)�self� namespace�url�kw)� __class__� �C/opt/alt/python37/lib/python3.7/site-packages/beaker/ext/mongodb.pyr $ s
zMongoNamespaceManager.__init__c C sX t |t�s|�d�}t|�| jt| j� d krJts>|�d�}t|�� � }d| j|f S )N�ascii� zutf-8z%s:%s)
r �str�decode�len�MAX_KEY_LENGTHr r �encoder � hexdigest)r �keyr r r �_format_key1 s
z!MongoNamespaceManager._format_keyc C s t | �|�| j�S )N)�MongoSynchronizerr% r )r r$ r r r �get_creation_lock: s z'MongoNamespaceManager.get_creation_lockc C s>