
    Ջg                         d dl Z d dlZd dlZ G d d      Z	  G d de      Z G d de      Z G d d	e      Z G d
 de      Z G d de      Z	y)    Nc            	          e Zd ZdZdej
                  ddfdZej                  fdede	j                  deddfd	Zde	j                  de	j                  fd
Z	 ej                  fde	j                  dedefdZdede	j                  fdZy)BaseSerializerzThis 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                 4    t        j                  d|        y )Nz:An exception has been raised during a pickling operation: )loggingwarning)selfr   s     G/var/www/html/venv/lib/python3.12/site-packages/cachelib/serializers.py_warnzBaseSerializer._warn   s    HL	
    valuefprotocolc                     	 t        j                  |||       y # t         j                  t         j                  f$ r}| j	                  |       Y d }~y d }~ww xY wN)pickledumpPickleErrorPicklingErrorr   )r
   r   r   r   r   s        r   r   zBaseSerializer.dump   sE    	KKq(+""F$8$89 	JJqMM	s    #AAAc                     	 t        j                  |      }|S # t         j                  $ r}| j                  |       Y d }~y d }~ww xY wr   )r   loadr   r   )r
   r   datar   s       r   r   zBaseSerializer.load   sA    	;;q>D
 K	 !! 	JJqM	    AAAc                     	 t        j                  ||      }|S # t         j                  t         j                  f$ r}| j	                  |       Y d }~S d }~ww xY wr   )r   dumpsr   r   r   )r
   r   r   
serializedr   s        r   r   zBaseSerializer.dumps)   sU    	eX6J  ""F$8$89 	JJqMM	s    #AAAbvaluec                     	 t        j                  |      }|S # t         j                  $ r}| j                  |       Y d }~y d }~ww xY wr   )r   loadsr   r   )r
   r   r   r   s       r   r    zBaseSerializer.loads0   sB    	<<'D
 K	 !! 	JJqM	r   )__name__
__module____qualname____doc__r   r   r   HIGHEST_PROTOCOLint_tIOr   BinaryIOAnyr   bytesr   r     r   r   r   r      s    
v)) 
d 
 5;4K4KUU.1	bkk bff 
 4:3J3J 266 S u E bff r   r   c                       e Zd ZdZy)UWSGISerializerz"Default serializer for UWSGICache.Nr!   r"   r#   r$   r,   r   r   r.   r.   C   s    ,r   r.   c                       e Zd ZdZy)SimpleSerializerz#Default serializer for SimpleCache.Nr/   r,   r   r   r1   r1   G   s    -r   r1   c                       e Zd ZdZy)FileSystemSerializerz'Default serializer for FileSystemCache.Nr/   r,   r   r   r3   r3   K   s    1r   r3   c                       e Zd ZdZej
                  fdej                  dede	fdZ
dej                  e	   dej                  fdZy)RedisSerializerz"Default serializer for RedisCache.r   r   r   c                 4    dt        j                  ||      z   S )zADumps an object into a string for redis, using pickle by default.   !)r   r   )r
   r   r   s      r   r   zRedisSerializer.dumpsR   s    fll5(333r   c                     |y|j                  d      r	 t        j                  |dd       S 	 t	        |      S # t        j                  $ r Y yw xY w# t
        $ r |cY S w xY w)UThe reversal of :meth:`dump_object`. This might be called with
        None.
        Nr7      )
startswithr   r    r   r&   
ValueError)r
   r   s     r   r    zRedisSerializer.loadsV   sr     =D!||E!"I..	u: %%   	L	s    : 
A AAA! A!N)r!   r"   r#   r$   r   r%   r'   r*   r&   r+   r   Optionalr    r,   r   r   r5   r5   O   sL    ,393J3J 4266 4S 4u 42;;u- "&& r   r5   c                   T     e Zd ZdZdej
                  dej
                  f fdZ xZS )DynamoDbSerializerz%Default serializer for DynamoDbCache.r   r   c                 :    |j                   }t        | 	  |      S )r9   )r   superr    )r
   r   	__class__s     r   r    zDynamoDbSerializer.loadsk   s     w}U##r   )r!   r"   r#   r$   r'   r*   r    __classcell__)rB   s   @r   r?   r?   h   s&    /$266 $bff $ $r   r?   )
r   r   typingr'   r   r.   r1   r3   r5   r?   r,   r   r   <module>rE      sZ      1 1h-n -.~ .2> 2n 2$ $r   