o
    
hT                     @   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   Y/var/www/html/optinet_system/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                    s"   t  |}t|trt|S |S )z
        Concatenating a safe string with another safe bytestring or
        safe string is safe. Otherwise, the result is no longer safe.
        )super__add__
isinstancer   r   )r	   rhst	__class__r   r
   r   !   s   
zSafeString.__add__c                 C   r   Nr   r   r   r   r
   __str__+   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
   wrapper3   s   z"_safety_decorator.<locals>.wrapperr   )r    r   r!   r   r   r
   _safety_decorator2   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   strr   SafeTextr"   r%   r   r   r   r
   <module>   s    