o
    {Ð,h‚  ã                   @   s\   d Z ddlmZ ddlmZ G dd„ dƒZG dd„ deeƒZeZdd	„ Z	eeƒd
d„ ƒZ
dS )a8  
Functions for working with "safe strings": strings that can be displayed safely
without further escaping in HTML. Marking something as a "safe string" means
that the producer of the string has already turned characters that should not
be interpreted by the HTML engine (e.g. '<') into the appropriate entities.
é    ©Úwraps)Ú	keep_lazyc                   @   s   e Zd ZdZdd„ ZdS )ÚSafeData© c                 C   ó   | S )zŸ
        Return the html representation of a string for interoperability.

        This allows other template engines to understand Django's SafeData.
        r   ©Úselfr   r   úM/var/www/html/rh/venv/lib/python3.10/site-packages/django/utils/safestring.pyÚ__html__   s   zSafeData.__html__N)Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r   r   r   r   r
   r      s    r   c                       s,   e Zd ZdZdZ‡ fdd„Zdd„ Z‡  ZS )Ú
SafeStringzb
    A str subclass that has been specifically marked as "safe" for HTML output
    purposes.
    r   c                    s0   t |tƒrtƒ  |¡}t |tƒrt|ƒ}|S tS )z“
        Concatenating a safe string with another safe bytestring or
        safe string is safe. Otherwise, the result is no longer safe.
        )Ú
isinstanceÚstrÚsuperÚ__add__r   r   ÚNotImplemented)r	   ÚrhsÚt©Ú	__class__r   r
   r   !   s   

zSafeString.__add__c                 C   r   ©Nr   r   r   r   r
   Ú__str__1   s   zSafeString.__str__)r   r   r   Ú__doc__r   r   r   Ú__classcell__r   r   r   r
   r      s
    r   c                    s   t ˆ ƒ‡ ‡fdd„ƒ}|S )Nc                     s   ˆˆ | i |¤ŽƒS r   r   )ÚargsÚkwargs©ÚfuncÚsafety_markerr   r
   Úwrapper9   s   z"_safety_decorator.<locals>.wrapperr   )r"   r!   r#   r   r    r
   Ú_safety_decorator8   s   r$   c                 C   s(   t | dƒr| S t| ƒrtt| ƒS t| ƒS )a  
    Explicitly mark a string as safe for (HTML) output purposes. The returned
    object can be used everywhere a string is appropriate.

    If used on a method as a decorator, mark the returned data as safe.

    Can be called multiple times on a single string.
    r   )ÚhasattrÚcallabler$   Ú	mark_safer   )Úsr   r   r
   r'   @   s
   


r'   N)r   Ú	functoolsr   Údjango.utils.functionalr   r   r   r   ÚSafeTextr$   r'   r   r   r   r
   Ú<module>   s    