o
    ̽x`                     @   sn   d dl ZddlmZ dejdefddZdejej defdd	Zdejdefd
dZ	dejdefddZ
dS )    N   )Markupsreturnc                 C   sJ   t | drt|  S tt| dddddddd	d
dS )a  Replace the characters ``&``, ``<``, ``>``, ``'``, and ``"`` in
    the string with HTML-safe sequences. Use this if you need to display
    text that might contain such characters in HTML.

    If the object has an ``__html__`` method, it is called and the
    return value is assumed to already be safe for HTML.

    :param s: An object to be converted to a string and escaped.
    :return: A :class:`Markup` string with the escaped text.
    __html__&z&amp;>z&gt;<z&lt;'z&#39;"z&#34;)hasattrr   r   strreplacer    r   4/usr/lib/python3/dist-packages/markupsafe/_native.pyescape   s   
r   c                 C   s   | du rt  S t| S )a  Like :func:`escape` but treats ``None`` as the empty string.
    Useful with optional values, as otherwise you get the string
    ``'None'`` when the value is ``None``.

    >>> escape(None)
    Markup('None')
    >>> escape_silent(None)
    Markup('')
    N)r   r   r   r   r   r   escape_silent   s   
r   c                 C   s   t | ts	t| S | S )a  Convert an object to a string if it isn't already. This preserves
    a :class:`Markup` string rather than converting it back to a basic
    string, so it will still be marked as safe and won't be escaped
    again.

    >>> value = escape("<User 1>")
    >>> value
    Markup('&lt;User 1&gt;')
    >>> escape(str(value))
    Markup('&amp;lt;User 1&amp;gt;')
    >>> escape(soft_str(value))
    Markup('&lt;User 1&gt;')
    )
isinstancer   r   r   r   r   soft_str.   s   
r   c                 C   s    dd l }|jdtdd t| S )Nr   z^'soft_unicode' has been renamed to 'soft_str'. The old name will be removed in MarkupSafe 2.1.   )
stacklevel)warningswarnDeprecationWarningr   )r   r   r   r   r   soft_unicodeB   s   r   )typingt r   Anyr   Optionalr   r   r   r   r   r   r   r   <module>   s    