o
    QDi                     @   s@   d dl Z d dlmZ d dlmZ d dlmZ G dd deZdS )    N)Any)ImproperlyConfigured)BaseSerializerc                       sL   e Zd Zd fddZdddZdedefdd	Zdedefd
dZ  Z	S )PickleSerializerreturnNc                    s$   t j| _| | t j|d d S )N)options)pickleDEFAULT_PROTOCOL_pickle_versionsetup_pickle_versionsuper__init__)selfr   	__class__ X/var/www/Datamplify/venv/lib/python3.10/site-packages/django_redis/serializers/pickle.pyr   
   s   
zPickleSerializer.__init__c              
   C   sl   d|v r4zt |d | _| jtjkrdtj }t|W d S  ttfy3 } zd}t||d }~ww d S )NPICKLE_VERSIONz=PICKLE_VERSION can't be higher than pickle.HIGHEST_PROTOCOL: z'PICKLE_VERSION value must be an integer)intr
   r   HIGHEST_PROTOCOLr   
ValueError	TypeError)r   r   error_messageer   r   r   r      s    
z%PickleSerializer.setup_pickle_versionvaluec                 C   s   t || jS N)r   dumpsr
   r   r   r   r   r   r      s   zPickleSerializer.dumpsc                 C   s
   t |S r   )r   loadsr   r   r   r   r   !   s   
zPickleSerializer.loads)r   N)
__name__
__module____qualname__r   r   r   bytesr   r   __classcell__r   r   r   r   r   	   s
    
r   )r   typingr   django.core.exceptionsr   django_redis.serializers.baser   r   r   r   r   r   <module>   s
    