B
    ¦0H[Á  ã               @   sD   d dl Z d dlmZ d dlmZ d dlmZmZ G dd„ deƒZdS )é    N)Úsettings)ÚBaseStorage)ÚMessageDecoderÚMessageEncoderc                   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).
    Z	_messagesc                s<   t |dƒs$tdtjd krdnd ƒ‚tƒ j|f|ž|Ž 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%s list.Z_CLASSESÚ )ÚhasattrÚAssertionErrorr   Z
MIDDLEWAREÚsuperÚ__init__)ÚselfÚrequestÚargsÚkwargs)Ú	__class__© úkC:\Users\HIRONO~1\AppData\Local\Temp\pip-install-6bm3nxem\django\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   s0   |r|   |¡| jj| j< n| 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 dd�}| |¡S )N)ú,ú:)Ú
separators)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   -   s    z#SessionStorage.deserialize_messages)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   Ú__classcell__r   r   )r   r   r   
   s   
r   )	r%   Zdjango.confr   Z$django.contrib.messages.storage.baser   Z&django.contrib.messages.storage.cookier   r   r   r   r   r   r   Ú<module>   s   