
    Xf                         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	dS )    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dS )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|            d S )Nz:An exception has been raised during a pickling operation: )loggingwarning)selfr   s     H/var/www/piapp/venv/lib/python3.11/site-packages/cachelib/serializers.py_warnzBaseSerializer._warn   s+    LLL	
 	
 	
 	
 	
    valuefprotocolc                     	 t          j        |||           d S # t           j        t           j        f$ r }|                     |           Y d }~d S d }~ww xY wN)pickledumpPickleErrorPicklingErrorr   )r
   r   r   r   r   s        r   r   zBaseSerializer.dump   sf    	Kq(+++++"F$89 	 	 	JJqMMMMMMMMM	s    AAAc                     	 t          j        |          }|S # t           j        $ r }|                     |           Y d }~d S d }~ww xY wr   )r   loadr   r   )r
   r   datar   s       r   r   zBaseSerializer.load   s[    	;q>>D
 K	 ! 	 	 	JJqMMM44444	    AAAc                     	 t          j        ||          }n=# t           j        t           j        f$ r}|                     |           Y d }~nd }~ww xY w|S r   )r   dumpsr   r   r   )r
   r   r   
serializedr   s        r   r   zBaseSerializer.dumps)   sc    	eX66JJ"F$89 	 	 	JJqMMMMMMMM	s    AAAbvaluec                     	 t          j        |          }|S # t           j        $ r }|                     |           Y d }~d S d }~ww xY wr   )r   loadsr   r   )r
   r   r   r   s       r   r    zBaseSerializer.loads0   s]    	<''D
 K	 ! 	 	 	JJqMMM44444	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;4K U.1	   bk bf    
 4:3J  26 S u    E bf      r   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   s        ,,,,r   r.   c                       e Zd ZdZdS )SimpleSerializerz#Default serializer for SimpleCache.Nr/   r,   r   r   r1   r1   G   s        ----r   r1   c                       e Zd ZdZdS )FileSystemSerializerz'Default serializer for FileSystemCache.Nr/   r,   r   r   r3   r3   K   s        1111r   r3   c                   n    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dS )RedisSerializerz"Default serializer for RedisCache.r   r   r   c                 2    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    fl5(3333r   c                     |dS |                     d          r3	 t          j        |dd                   S # t          j        $ r Y dS w xY w	 t	          |          S # 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   s     =4D!! 	|E!""I...%   tt	u:: 	 	 	LLL	s!   7 A
	A
A A,+A,N)r!   r"   r#   r$   r   r%   r'   r*   r&   r+   r   Optionalr    r,   r   r   r5   r5   O   s{        ,,393J 4 426 4S 4u 4 4 4 42;u- "&      r   r5   c                   @     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                 T    |j         }t                                          |          S )r9   )r   superr    )r
   r   	__class__s     r   r    zDynamoDbSerializer.loadsk   s"     ww}}U###r   )r!   r"   r#   r$   r'   r*   r    __classcell__)rB   s   @r   r?   r?   h   sU        //$26 $bf $ $ $ $ $ $ $ $ $ $r   r?   )
r   r   typingr'   r   r.   r1   r3   r5   r?   r,   r   r   <module>rE      s-        1 1 1 1 1 1 1 1h- - - - -n - - -. . . . .~ . . .2 2 2 2 2> 2 2 2    n   2$ $ $ $ $ $ $ $ $ $r   