3
g/                 @   s8   d dl mZ d dlmZ d dlmZ G dd deZdS )    )BaseStorage)CookieStorage)SessionStoragec                   s8   e Zd ZdZeefZ fddZdd Zdd Z	  Z
S )FallbackStoragezu
    Try to store all messages in the first backend. Store any unstored
    messages in each subsequent backend.
    c                s2   t  j   fdd| jD | _t | _d S )Nc                s   g | ]}| qS  r   ).0Zstorage_class)argskwargsr   f/var/www/tester-filtro-web/env/lib/python3.6/site-packages/django/contrib/messages/storage/fallback.py
<listcomp>   s   z,FallbackStorage.__init__.<locals>.<listcomp>)super__init__storage_classesstoragesset_used_storages)selfr   r	   )	__class__)r   r	   r
   r      s    zFallbackStorage.__init__c             O   sR   g }xD| j D ]:}|j \}}|dkr&P |r6| jj| |j| |rP qW ||fS )zJ
        Get a single list of messages from all storage backends.
        N)r   _getr   addextend)r   r   r	   Zall_messagesstoragemessagesZall_retrievedr   r   r
   r      s    
zFallbackStorage._getc             O   sL   xF| j D ]<}|r"|j||dd}q|| jkr|jg | | jj| qW |S )z
        Store the messages and return any unstored messages after trying all
        backends.

        For each storage backend, any messages not stored are passed on to the
        next backend.
        F)Zremove_oldest)r   _storer   remove)r   r   responser   r	   r   r   r   r
   r   &   s    
zFallbackStorage._store)__name__
__module____qualname____doc__r   r   r   r   r   r   __classcell__r   r   )r   r
   r      s
   r   N)Z$django.contrib.messages.storage.baser   Z&django.contrib.messages.storage.cookier   Z'django.contrib.messages.storage.sessionr   r   r   r   r   r
   <module>   s   