§
    Ï“Ùh¼  ã                   ót   — d dl mZ d dlmZmZ  ej        ¦   «         Z G d„ d¦  «        Z G d„ d¦  «        ZdS )é    )Úsettings)Ú	constantsÚutilsc                   óX   — e Zd ZdZd	d„Zd„ Zd„ Zd„ Zed„ ¦   «         Z	ed„ ¦   «         Z
dS )
ÚMessagez±
    Represent an actual message that can be stored in any of the supported
    storage classes (typically session- or cookie-based) and rendered in a view
    or template.
    Nc                 óJ   — t          |¦  «        | _        || _        || _        d S ©N)ÚintÚlevelÚmessageÚ
extra_tags©Úselfr   r   r   s       úc/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/django/contrib/messages/storage/base.pyÚ__init__zMessage.__init__   s!   € Ý˜‘Z”ZˆŒ
ØˆŒØ$ˆŒˆˆó    c                 ó|   — t          | j        ¦  «        | _        | j        �t          | j        ¦  «        nd| _        dS )z˜
        Prepare the message for serialization by forcing the ``message``
        and ``extra_tags`` to str in case they are lazy translations.
        N)Ústrr   r   ©r   s    r   Ú_preparezMessage._prepare   s7   € õ
 ˜4œ<Ñ(Ô(ˆŒØ26´/Ð2M�#˜dœoÑ.Ô.Ð.ÐSWˆŒˆˆr   c                 óz   — t          |t          ¦  «        st          S | j        |j        k    o| j        |j        k    S r	   )Ú
isinstancer   ÚNotImplementedr   r   )r   Úothers     r   Ú__eq__zMessage.__eq__   s7   € Ý˜%¥Ñ)Ô)ð 	"Ý!Ð!ØŒz˜Uœ[Ò(ÐJ¨T¬\¸U¼]Ò-JÐJr   c                 ó*   — t          | j        ¦  «        S r	   )r   r   r   s    r   Ú__str__zMessage.__str__    s   € Ý�4”<Ñ Ô Ð r   c                 óX   — d                      d„ | j        | j        fD ¦   «         ¦  «        S )Nú c              3   ó   K  — | ]}|¯|V — Œ	d S r	   © )Ú.0Útags     r   ú	<genexpr>zMessage.tags.<locals>.<genexpr>%   s'   è è € ÐPÐP ÈCÐP˜ÐPÐPÐPÐPÐPÐPr   )Újoinr   Ú	level_tagr   s    r   ÚtagszMessage.tags#   s,   € à�xŠxÐPÐP¨¬¸¼Ð'HÐPÑPÔPÑPÔPÐPr   c                 óB   — t                                | j        d¦  «        S )NÚ )Ú
LEVEL_TAGSÚgetr   r   s    r   r&   zMessage.level_tag'   s   € å�~Š~˜dœj¨"Ñ-Ô-Ð-r   r	   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   Úpropertyr'   r&   r!   r   r   r   r      sž   € € € € € ðð ð%ð %ð %ð %ð
Xð Xð XðKð Kð Kð
!ð !ð !ð ðQð Qñ „XðQð ð.ð .ñ „Xð.ð .ð .r   r   c                   ó˜   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zd„ Ze	d„ ¦   «         Z
d„ Zd	„ Zd
„ Zd„ Zdd„Zd„ Zdd„Z e	eee¦  «        Zˆ xZS )ÚBaseStoragezÖ
    This is the base backend for temporary message storage.

    This is not a complete class; to be a usable storage backend, it must be
    subclassed and the two methods ``_get`` and ``_store`` overridden.
    c                 ór   •— || _         g | _        d| _        d| _         t	          ¦   «         j        |i |¤Ž d S )NF)ÚrequestÚ_queued_messagesÚusedÚ	added_newÚsuperr   )r   r4   ÚargsÚkwargsÚ	__class__s       €r   r   zBaseStorage.__init__4   sB   ø€ ØˆŒØ "ˆÔØˆŒ	ØˆŒØ�‰ŒÔ˜$Ð) &Ð)Ð)Ð)Ð)Ð)r   c                 óT   — t          | j        ¦  «        t          | j        ¦  «        z   S r	   )ÚlenÚ_loaded_messagesr5   r   s    r   Ú__len__zBaseStorage.__len__;   s#   € Ý�4Ô(Ñ)Ô)­C°Ô0EÑ,FÔ,FÑFÐFr   c                 ó’   — d| _         | j        r&| j                             | j        ¦  «         g | _        t	          | j        ¦  «        S )NT)r6   r5   r>   ÚextendÚiterr   s    r   Ú__iter__zBaseStorage.__iter__>   sG   € ØˆŒ	ØÔ ð 	'ØÔ!×(Ò(¨Ô)>Ñ?Ô?Ð?Ø$&ˆDÔ!Ý�DÔ)Ñ*Ô*Ð*r   c                 ó&   — || j         v p|| j        v S r	   )r>   r5   )r   Úitems     r   Ú__contains__zBaseStorage.__contains__E   s   € Ø�tÔ,Ð,ÐM°¸Ô8MÐ0MÐMr   c                 ó2   — d| j         j        › d| j        ›d�S )Nú<z
: request=ú>)r;   r.   r4   r   s    r   Ú__repr__zBaseStorage.__repr__H   s"   € ØK�4”>Ô.ÐKÐK¸$¼,ÐKÐKÐKÐKr   c                 óp   — t          | d¦  «        s |                      ¦   «         \  }}|pg | _        | j        S )zs
        Return a list of loaded messages, retrieving them first if they have
        not been loaded yet.
        Ú_loaded_data)ÚhasattrÚ_getrL   )r   ÚmessagesÚall_retrieveds      r   r>   zBaseStorage._loaded_messagesK   s=   € õ �t˜^Ñ,Ô,ð 	/Ø&*§i¢i¡k¤kÑ#ˆH�mØ ( ¨BˆDÔØÔ Ð r   c                 ó    — t          d¦  «        ‚)a  
        Retrieve a list of stored messages. Return a tuple of the messages
        and a flag indicating whether or not all the messages originally
        intended to be stored in this storage were, in fact, stored and
        retrieved; e.g., ``(messages, all_retrieved)``.

        **This method must be implemented by a subclass.**

        If it is possible to tell if the backend was not used (as opposed to
        just containing no messages) then ``None`` should be returned in
        place of ``messages``.
        z6subclasses of BaseStorage must provide a _get() method©ÚNotImplementedError)r   r9   r:   s      r   rN   zBaseStorage._getV   s   € õ "ØDñ
ô 
ð 	
r   c                 ó    — t          d¦  «        ‚)zï
        Store a list of messages and return a list of any messages which could
        not be stored.

        One type of object must be able to be stored, ``Message``.

        **This method must be implemented by a subclass.**
        z8subclasses of BaseStorage must provide a _store() methodrR   )r   rO   Úresponser9   r:   s        r   Ú_storezBaseStorage._storeg   s   € õ "ØFñ
ô 
ð 	
r   c                 ó8   — |D ]}|                      ¦   «          ŒdS )z9
        Prepare a list of messages for storage.
        N)r   )r   rO   r   s      r   Ú_prepare_messageszBaseStorage._prepare_messagest   s2   € ð  ð 	ð 	ˆGØ×ÒÑÔÐÐð	ð 	r   c                 óÖ   — |                       | j        ¦  «         | j        r|                      | j        |¦  «        S | j        r%| j        | j        z   }|                      ||¦  «        S dS )zË
        Store all unread messages.

        If the backend has yet to be iterated, store previously stored messages
        again. Otherwise, only store messages added after the last iteration.
        N)rX   r5   r6   rV   r7   r>   )r   rU   rO   s      r   ÚupdatezBaseStorage.update{   st   € ð 	×Ò˜tÔ4Ñ5Ô5Ð5ØŒ9ð 	3Ø—;’;˜tÔ4°hÑ?Ô?Ð?ØŒ^ð 	3ØÔ,¨tÔ/DÑDˆHØ—;’;˜x¨Ñ2Ô2Ð2ð	3ð 	3r   r)   c                 ó¬   — |sdS t          |¦  «        }|| j        k     rdS d| _        t          |||¬¦  «        }| j                             |¦  «         dS )zº
        Queue a message to be stored.

        The message is only queued if it contained something and its level is
        not less than the recording level (``self.level``).
        NT)r   )r
   r   r7   r   r5   Úappendr   s       r   ÚaddzBaseStorage.add‰   sf   € ð ð 	ØˆFå�E‘
”
ˆØ�4”:ÒÐØˆFàˆŒÝ˜% °ZÐ@Ñ@Ô@ˆØÔ×$Ò$ WÑ-Ô-Ð-Ð-Ð-r   c                 óz   — t          | d¦  «        s%t          t          dt          j        ¦  «        | _        | j        S )z«
        Return the minimum recorded level.

        The default level is the ``MESSAGE_LEVEL`` setting. If this is
        not found, the ``INFO`` level is used.
        Ú_levelÚMESSAGE_LEVEL)rM   Úgetattrr   r   ÚINFOr_   r   s    r   Ú
_get_levelzBaseStorage._get_level›   s4   € õ �t˜XÑ&Ô&ð 	MÝ!¥(¨O½Y¼^ÑLÔLˆDŒKØŒ{Ðr   Nc                 óZ   — |€t          | d¦  «        r| `dS t          |¦  «        | _        dS )z›
        Set a custom minimum recorded level.

        If set to ``None``, the default level will be used (see the
        ``_get_level`` method).
        Nr_   )rM   r_   r
   )r   Úvalues     r   Ú
_set_levelzBaseStorage._set_level¦   s1   € ð ˆ=�W T¨8Ñ4Ô4ˆ=Ø���å˜e™*œ*ˆDŒKˆKˆKr   )r)   r	   )r,   r-   r.   r/   r   r?   rC   rF   rJ   r0   r>   rN   rV   rX   rZ   r]   rc   rf   r   Ú__classcell__)r;   s   @r   r2   r2   ,   s  ø€ € € € € ðð ð*ð *ð *ð *ð *ðGð Gð Gð+ð +ð +ðNð Nð NðLð Lð Lð ð!ð !ñ „Xð!ð
ð 
ð 
ð"
ð 
ð 
ðð ð ð3ð 3ð 3ð.ð .ð .ð .ð$	ð 	ð 	ð
%ð 
%ð 
%ð 
%ð ˆH�Z ¨ZÑ8Ô8€E€E€E€E€Er   r2   N)	Údjango.confr   Údjango.contrib.messagesr   r   Úget_level_tagsr*   r   r2   r!   r   r   ú<module>rk      s¤   ðØ  Ð  Ð  Ð  Ð  Ð  Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4à!ˆUÔ!Ñ#Ô#€
ð".ð ".ð ".ð ".ð ".ñ ".ô ".ð ".ðJF9ð F9ð F9ð F9ð F9ñ F9ô F9ð F9ð F9ð F9r   