o
    2'h  ã                   @   s|   d dl Z d dlZd dlZG dd„ dƒZ	 G dd„ deƒZG dd„ deƒZG dd	„ d	eƒZG d
d„ deƒZG dd„ deƒZ	dS )é    Nc                	   @   s�   e Zd ZdZdejddfdd„Zejfdede	j
d	eddfd
d„Zde	jde	jfdd„Z	 ejfde	jd	edefdd„Zdede	jfdd„ZdS )ÚBaseSerializerzúThis is the base interface for all default serializers.

    BaseSerializer.load and BaseSerializer.dump will
    default to pickle.load and pickle.dump. This is currently
    used only by FileSystemCache which dumps/loads to/from a file stream.
    ÚeÚreturnNc                 C   s   t  d|› �¡ d S )Nz:An exception has been raised during a pickling operation: )ÚloggingÚwarning)Úselfr   © r   úJC:\Users\shubh\Videos\agent\nova\Lib\site-packages\cachelib/serializers.pyÚ_warn   s   ÿzBaseSerializer._warnÚvalueÚfÚprotocolc              
   C   sN   z
t  |||¡ W d S  t jt jfy& } z|  |¡ W Y d }~d S d }~ww ©N)ÚpickleÚdumpÚPickleErrorÚPicklingErrorr
   )r   r   r   r   r   r   r   r	   r      s   €ÿzBaseSerializer.dumpc              
   C   óD   zt  |¡}W |S  t jy! } z|  |¡ W Y d }~d S d }~ww r   )r   Úloadr   r
   )r   r   Údatar   r   r   r	   r      ó   ü
€þzBaseSerializer.loadc              
   C   sL   z	t  ||¡}W |S  t jt jfy% } z|  |¡ W Y d }~|S d }~ww r   )r   Údumpsr   r   r
   )r   r   r   Z
serializedr   r   r   r	   r   )   s   þ€þzBaseSerializer.dumpsÚbvaluec              
   C   r   r   )r   Úloadsr   r
   )r   r   r   r   r   r   r	   r   0   r   zBaseSerializer.loads)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r
   ÚHIGHEST_PROTOCOLÚintÚ_tÚIOr   ÚBinaryIOÚAnyr   Úbytesr   r   r   r   r   r	   r      s"    ÿÿÿÿ
þ	r   c                   @   ó   e Zd ZdZdS )ÚUWSGISerializerz"Default serializer for UWSGICache.N©r   r   r   r   r   r   r   r	   r&   C   ó    r&   c                   @   r%   )ÚSimpleSerializerz#Default serializer for SimpleCache.Nr'   r   r   r   r	   r)   G   r(   r)   c                   @   r%   )ÚFileSystemSerializerz'Default serializer for FileSystemCache.Nr'   r   r   r   r	   r*   K   r(   r*   c                   @   sH   e Zd ZdZejfdejdede	fdd„Z
deje	 dejfdd„Zd	S )
ÚRedisSerializerz"Default serializer for RedisCache.r   r   r   c                 C   s   dt  ||¡ S )zADumps an object into a string for redis, using pickle by default.ó   !)r   r   )r   r   r   r   r   r	   r   R   s   zRedisSerializer.dumpsc                 C   sd   |du rdS |  d¡r!z
t |dd… ¡W S  tjy    Y dS w zt|ƒW S  ty1   | Y S w )úUThe reversal of :meth:`dump_object`. This might be called with
        None.
        Nr,   é   )Ú
startswithr   r   r   r   Ú
ValueError©r   r   r   r   r	   r   V   s   
ÿ
þzRedisSerializer.loadsN)r   r   r   r   r   r   r    r#   r   r$   r   ÚOptionalr   r   r   r   r	   r+   O   s    r+   c                       s.   e Zd ZdZdejdejf‡ fdd„Z‡  ZS )ÚDynamoDbSerializerz%Default serializer for DynamoDbCache.r   r   c                    s   |j }tƒ  |¡S )r-   )r   Úsuperr   r1   ©Ú	__class__r   r	   r   k   s   zDynamoDbSerializer.loads)r   r   r   r   r    r#   r   Ú__classcell__r   r   r5   r	   r3   h   s    "r3   )
r   r   Útypingr    r   r&   r)   r*   r+   r3   r   r   r   r	   Ú<module>   s    4	