�
^�e� � � � S SK rSSKJr S\R S\4S jrS\R \R S\4S jrS\R S\4S jr g) � N� )�Markup�s�returnc � � [ U S5 ( a [ U R 5 5 $ [ [ U 5 R SS5 R SS5 R SS5 R SS 5 R S
S5 5 $ )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&�>z>�<z<�'z'�"z")�hasattrr r �str�replace�r s �4/usr/lib/python3/dist-packages/markupsafe/_native.py�escaper sr � � �q�*����a�j�j�l�#�#���A�� ���g� � ���f� � ���f� � ���g� � ���g� �
� � c �2 � U c
[ 5 $ [ U 5 $ )z�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('')
)r r r s r �
escape_silentr s � � �y��x���!�9�r c �F � [ U [ 5 ( d [ U 5 $ U $ )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('<User 1>')
>>> escape(str(value))
Markup('&lt;User 1&gt;')
>>> escape(soft_str(value))
Markup('<User 1>')
)�
isinstancer r s r �soft_strr . s � � �a�����1�v�
��Hr )
�typing�t� r �Anyr �Optionalr r r � r r �<module>r sY �� � ��a�e�e� �� �0
�Q�Z�Z����&�
�6�
�
����
�#�
r