U ô üe±ã@sTddlZddlmZejedœdd„Zejejedœdd„Zejedœd d „Z dS) éNé)ÚMarkup)ÚsÚreturncCsJt|dƒrt| ¡ƒStt|ƒ dd¡ dd¡ dd¡ dd ¡ 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&ú>z>ú>> escape(None) Markup('None') >>> escape_silent(None) Markup('') N)rrrrrrÚ escape_silents rcCst|tƒst|ƒ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("") >>> value Markup('<User 1>') >>> escape(str(value)) Markup('&lt;User 1&gt;') >>> escape(soft_str(value)) Markup('<User 1>') )Ú isinstancer rrrrÚsoft_str.s r) ÚtypingÚtÚrÚAnyrÚOptionalrr rrrrrÚs