ifddlZddlmZdejdefdZdejejdefdZdejdefdZ dejdefd Z dS) N)Markupsreturncdt|dr!t|Stt|dddddddd d d S) aReplace 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('') )rrrs r escape_silentrs yxx !99rcNt|tst|S|S)aConvert 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>') ) isinstancerrs rsoft_strr.s& a  1vv Hrcbddl}|dtdt|S)Nrz^'soft_unicode' has been renamed to 'soft_str'. The old name will be removed in MarkupSafe 2.1.) stacklevel)warningswarnDeprecationWarningr)rrs r soft_unicoder Bs?OOO MM .  A;;r) typingtrAnyrOptionalrrrr rrr'sae0 QZ& 6       #    ( AE c      r