o
    {,h                     @   sD   d dl Z d dlmZ d dlmZmZ d dlmZ G dd deZdS )    N)BaseStorage)MessageDecoderMessageEncoder)ImproperlyConfiguredc                       sD   e Zd ZdZdZ fddZdd Zdd Zd	d
 Zdd Z	  Z
S )SessionStoragezK
    Store messages in the session (that is, django.contrib.sessions).
    	_messagesc                    s0   t |ds	tdt j|g|R i | d S )NsessionzThe session-based temporary message storage requires session middleware to be installed, and come before the message middleware in the MIDDLEWARE list.)hasattrr   super__init__)selfrequestargskwargs	__class__ ]/var/www/html/rh/venv/lib/python3.10/site-packages/django/contrib/messages/storage/session.pyr      s
   
zSessionStorage.__init__c                 O   s   |  | jj| jdfS )z
        Retrieve a list of messages from the request's session. This storage
        always stores everything it is given, so return True for the
        all_retrieved flag.
        T)deserialize_messagesr   r   getsession_key)r   r   r   r   r   r   _get   s   zSessionStorage._getc                 O   s2   |r|  || jj| j< g S | jj| jd g S )zD
        Store a list of messages to the request's session.
        N)serialize_messagesr   r   r   pop)r   messagesresponser   r   r   r   r   _store#   s
   zSessionStorage._storec                 C   s   t  }||S )N)r   encode)r   r   encoderr   r   r   r   -   s   
z!SessionStorage.serialize_messagesc                 C   s    |rt |trtj|tdS |S )N)cls)
isinstancestrjsonloadsr   )r   datar   r   r   r   1   s   z#SessionStorage.deserialize_messages)__name__
__module____qualname____doc__r   r   r   r   r   r   __classcell__r   r   r   r   r      s    	
r   )	r"   $django.contrib.messages.storage.baser   &django.contrib.messages.storage.cookier   r   django.core.exceptionsr   r   r   r   r   r   <module>   s
    