Format: application/x-python-code
1 o
2
3 2'h� � @ sD d dl Z d dlZd dlZd dlmZ d dlmZ G dd� de�ZdS )� N)� BaseCache)�BaseSerializerc
4 s� e Zd ZdZe� Z d0dejdeje deje d e
5 d
6 eje dejf� fdd
7 �
8 Zdejfdd�Zdejfdd�Z
9 de dejfdd�Zde defdd�Z d1de dejdeje
10 deje dejf
11 dd�Zd2de dejdeje
12 dejfdd�Z d2d eje ejf deje
13 dejej fd!d"�Zd#e dejej fd$d%�Zd#e deje ejf fd&d'�Zd2de dejdeje
14 dejfd(d)�Zde defd*d+�Zd#e dejej fd,d-�Zdefd.d/�Z� ZS )3�MongoDbCachea�
15 Implementation of cachelib.BaseCache that uses mongodb collection
16 as the backend.
17
18 Limitations: maximum MongoDB document size is 16mb
19
20 :param client: mongodb client or connection string
21 :param db: mongodb database name
22 :param collection: mongodb collection name
23 :param default_timeout: Set the timeout in seconds after which cache entries
24 expire
25 :param key_prefix: A prefix that should be added to all keys.
26
27 N�cache-db�cache-collection�, �client�db�
28 collection�default_timeout�
29 key_prefix�kwargsc
30 s� t � �|� zdd l}W n ty t�d� Y nw |d u s$t|t�r*|j|d�}|| | | _ | j �
31 � }dd� |�� D �} d| vrK| j jddd� |pNd | _
32 || _d S )
33 Nr zno pymongo module found)�hostc S s"