
Â«‘_Q  ã               @   sN   d  Z  d d l m Z d d l m Z d d „  Z d d „  Z d d	 „  Z d
 S)zž
markupsafe._native
~~~~~~~~~~~~~~~~~~

Native Python implementation used when the C module is not compiled.

:copyright: 2010 Pallets
:license: BSD-3-Clause
é   )ÚMarkup)Ú	text_typec             C   sk   t  |  d ƒ r t |  j ƒ  ƒ St t |  ƒ j d d ƒ j d d ƒ j d d ƒ j d d	 ƒ j 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   r   Úreplace)Ús© r   ú8/tmp/pip-build-5gj8f0j9/MarkupSafe/markupsafe/_native.pyÚescape   s    r   c             C   s   |  d k r t  ƒ  St |  ƒ 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)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_unicode(value))
    Markup('&lt;User 1&gt;')
    )Ú
isinstancer   )r   r   r   r   Úsoft_unicode5   s    r   N)Ú__doc__Ú r   Ú_compatr   r   r   r   r   r   r   r   Ú<module>
   s
   