
    h                         S SK r S SKrS SKr " S S5      r  " S S\5      r " S S\5      r " S S	\5      r " S
 S\5      r " S S\5      r	g)    Nc            	       ,   \ rS rSrSrS\R                  SS4S jr\R                  4S\	S\
R                  S	\	SS4S
 jjrS\
R                  S\
R                  4S jr \R                  4S\
R                  S	\	S\4S jjrS\S\
R                  4S jrSrg)BaseSerializer   zThis 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                 6    [         R                  " SU 35        g )Nz:An exception has been raised during a pickling operation: )loggingwarning)selfr   s     iC:\Users\ROHAN GUPTA\OneDrive\Desktop\mathbuddy-assessment\venv\Lib\site-packages\cachelib/serializers.py_warnBaseSerializer._warn   s    HL	
    valuefprotocolc                      [         R                  " XU5        g ! [         R                  [         R                  4 a  nU R	                  U5         S nAg S nAff = fN)pickledumpPickleErrorPicklingErrorr   )r   r   r   r   r   s        r   r   BaseSerializer.dump   sC    	KK(+""F$8$89 	JJqMM	s    $AAAc                      [         R                  " U5      nU$ ! [         R                   a  nU R                  U5         S nAg S nAff = fr   )r   loadr   r   )r   r   datar   s       r   r   BaseSerializer.load   sA    	;;q>D
 K	 !! 	JJqM	    A	AA	c                      [         R                  " X5      nU$ ! [         R                  [         R                  4 a  nU R	                  U5         S nAW$ S nAff = fr   )r   dumpsr   r   r   )r   r   r   
serializedr   s        r   r    BaseSerializer.dumps)   sS    	e6J  ""F$8$89 	JJqMM	s    $AAAbvaluec                      [         R                  " U5      nU$ ! [         R                   a  nU R                  U5         S nAg S nAff = fr   )r   loadsr   r   )r   r#   r   r   s       r   r%   BaseSerializer.loads0   sB    	<<'D
 K	 !! 	JJqM	r    )__name__
__module____qualname____firstlineno____doc__r   r   r   HIGHEST_PROTOCOLint_tIOr   BinaryIOAnyr   bytesr    r%   __static_attributes__r'   r   r   r   r      s    
v)) 
d 
 5;4K4KUU.1	bkk bff 
 4:3J3J 266 S u E bff r   r   c                       \ rS rSrSrSrg)UWSGISerializerC   z"Default serializer for UWSGICache.r'   Nr(   r)   r*   r+   r,   r4   r'   r   r   r6   r6   C   s    ,r   r6   c                       \ rS rSrSrSrg)SimpleSerializerG   z#Default serializer for SimpleCache.r'   Nr8   r'   r   r   r:   r:   G   s    -r   r:   c                       \ rS rSrSrSrg)FileSystemSerializerK   z'Default serializer for FileSystemCache.r'   Nr8   r'   r   r   r=   r=   K   s    1r   r=   c                       \ rS rSrSr\R                  4S\R                  S\	S\
4S jjrS\R                  \
   S\R                  4S jrSrg	)
RedisSerializerO   z"Default serializer for RedisCache.r   r   r   c                 4    S[         R                  " X5      -   $ )zADumps an object into a string for redis, using pickle by default.   !)r   r    )r   r   r   s      r   r    RedisSerializer.dumpsR   s    fll5333r   c                     Uc  gUR                  S5      (       a   [        R                  " USS 5      $  [	        U5      $ ! [        R                   a     gf = f! [
         a    Us $ f = f)EThe reversal of :meth:`dump_object`. This might be called with
None.
NrC      )
startswithr   r%   r   r.   
ValueError)r   r   s     r   r%   RedisSerializer.loadsV   su     =D!!||E!"I..	u: %%   	L	s"   A 
A AAA*)A*r'   N)r(   r)   r*   r+   r,   r   r-   r/   r2   r.   r3   r    Optionalr%   r4   r'   r   r   r@   r@   O   sL    ,393J3J 4266 4S 4u 42;;u- "&& r   r@   c                   `   ^  \ rS rSrSrS\R                  S\R                  4U 4S jjrSrU =r	$ )DynamoDbSerializerh   z%Default serializer for DynamoDbCache.r   r   c                 :   > UR                   n[        TU ]	  U5      $ )rF   )r   superr%   )r   r   	__class__s     r   r%   DynamoDbSerializer.loadsk   s     w}U##r   r'   )
r(   r)   r*   r+   r,   r/   r2   r%   r4   __classcell__)rQ   s   @r   rM   rM   h   s&    /$266 $bff $ $r   rM   )
r	   r   typingr/   r   r6   r:   r=   r@   rM   r'   r   r   <module>rU      sZ      1 1h-n -.~ .2> 2n 2$ $r   