o
    {,h-                     @   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                    s6   t  j i   fdd| jD | _t | _d S )Nc                    s   g | ]	}| i qS  r   ).0storage_classargskwargsr   ^/var/www/html/rh/venv/lib/python3.10/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      s
   zFallbackStorage.__init__c                 O   s^   g }| j D ]%}| \}}|du r ||fS |r| j| || |r* ||fS q||fS )zJ
        Get a single list of messages from all storage backends.
        N)r   _getr   addextend)r   r
   r   all_messagesstoragemessagesall_retrievedr   r   r   r      s   

zFallbackStorage._getc                 O   sH   | j D ]}|r|j||dd}q|| jv r!|g | | j| q|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)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)$django.contrib.messages.storage.baser   &django.contrib.messages.storage.cookier   'django.contrib.messages.storage.sessionr   r   r   r   r   r   <module>   s    