mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-06 05:01:14 -07:00
* Bump mako from 1.1.6 to 1.2.0 Bumps [mako](https://github.com/sqlalchemy/mako) from 1.1.6 to 1.2.0. - [Release notes](https://github.com/sqlalchemy/mako/releases) - [Changelog](https://github.com/sqlalchemy/mako/blob/main/CHANGES) - [Commits](https://github.com/sqlalchemy/mako/commits) --- updated-dependencies: - dependency-name: mako dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Update mako==1.2.0 * Update MarkupSafe==2.1.1 * Add importlib-metadata==4.11.3 * Update requirements.txt Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> [skip ci]
63 lines
1.7 KiB
Python
63 lines
1.7 KiB
Python
import typing as t
|
|
|
|
from . import Markup
|
|
|
|
|
|
def escape(s: t.Any) -> Markup:
|
|
"""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.
|
|
"""
|
|
if hasattr(s, "__html__"):
|
|
return Markup(s.__html__())
|
|
|
|
return Markup(
|
|
str(s)
|
|
.replace("&", "&")
|
|
.replace(">", ">")
|
|
.replace("<", "<")
|
|
.replace("'", "'")
|
|
.replace('"', """)
|
|
)
|
|
|
|
|
|
def escape_silent(s: t.Optional[t.Any]) -> Markup:
|
|
"""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('')
|
|
"""
|
|
if s is None:
|
|
return Markup()
|
|
|
|
return escape(s)
|
|
|
|
|
|
def soft_str(s: t.Any) -> str:
|
|
"""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>')
|
|
"""
|
|
if not isinstance(s, str):
|
|
return str(s)
|
|
|
|
return s
|