|
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 dlZyd dlZW n ek
rD dZY nX d dlmZ d dlm Z d dl
mZmZ d dl
mZ 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� Zd� fdd� Zdd� Zdd � Z d
d� Z
dd
� Zdd� Zddd�Z
dd� Zdd� Zdd� Zdd� Z� ZS )�RedisNamespaceManageraz Provides the :class:`.NamespaceManager` API over Redis.
Provided ``url`` can be both a redis connection string or
an already existing StrictRedis instance.
The data will be stored into redis keys, with their name
starting with ``beaker_cache:``. So make sure you provide
a specific database number if you don't want to mix them
with your own data.
i Nc sX t t| ��|� d | _|| _td kr,td��t|t�rNtj �
|tjj|�| _
n|| _
d S )Nzredis is not available)�superr �__init__Zlock_dir�timeout�redis�RuntimeError�
isinstancer �clients�get�StrictRedis�from_url�client)�self� namespace�urlr �kw)� __class__� �C/opt/alt/python37/lib/python3.7/site-packages/beaker/ext/redisnm.pyr ! s
zRedisNamespaceManager.__init__c C s` t |t�s|�d�}t|�| jt| j� td� d krRtsF|�d�}t|�� � }d| j|f S )N�asciiz
beaker_cache:� zutf-8zbeaker_cache:%s:%s)
r �str�decode�len�MAX_KEY_LENGTHr r �encoder � hexdigest)r �keyr r r �_format_key. s
$
z!RedisNamespaceManager._format_keyc C s t | �|�| j�S )N)�RedisSynchronizerr% r )r r$ r r r �get_creation_lock7 s z'RedisNamespaceManager.get_creation_lockc C s, | j �| �|��}|d kr"t|��t�|�S )N)r r r% �KeyError�pickle�loads)r r$ �entryr r r �__getitem__: s z!RedisNamespaceManager.__getitem__c C s | j �| �|��S )N)r �existsr% )r r$ r r r �__contains__@ s z"RedisNamespaceManager.__contains__c C s || kS )Nr )r r$ r r r �has_keyC s zRedisNamespaceManager.has_keyc C s^ t �|�}|d kr"| jd k r"| j}|d k rF| j�| �|�t|�|� n| j�| �|�|� d S )N)r) �dumpsr r Zsetexr% �int�set)r r$ �valueZ
expiretimer r r � set_valueF s
zRedisNamespaceManager.set_valuec C s | � ||� d S )N)r4 )r r$ r3 r r r �__setitem__O s z!RedisNamespaceManager.__setitem__c C s | j �| �|�� d S )N)r �deleter% )r r$ r r r �__delitem__R s z!RedisNamespaceManager.__delitem__c C s"