o
    ó<âgä  ã                   @   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Úsessionz—The 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__© úZ/var/www/html/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
    