From 34b6e01b71afd6876bbd2ef7ad134d11d05c82a0 Mon Sep 17 00:00:00 2001 From: Jordan Yelloz Date: Sat, 2 Apr 2022 11:29:31 -0600 Subject: [PATCH] jinja_filters: Updated import for Jinja 3.1. Added some fallback imports just to reduce the possibility of breakage with users running the latest version of typogrify and older versions of Flask/Jinja for whatever reason. Jinja 3.1.x has removed the jinja2.Markup function which was deprecated in Jinja 3.0.x. See: - https://jinja.palletsprojects.com/en/3.1.x/changes/#version-3-1-0 - https://github.com/pallets/jinja/pull/1544 (cherry picked from commit 279c6b6c9f3a8b1bd065960a0e0bbe73236d717f) --- typogrify/templatetags/jinja_filters.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/typogrify/templatetags/jinja_filters.py b/typogrify/templatetags/jinja_filters.py index 0596c0b..d6e9b9e 100644 --- a/typogrify/templatetags/jinja_filters.py +++ b/typogrify/templatetags/jinja_filters.py @@ -1,6 +1,9 @@ from typogrify.filters import amp, caps, initial_quotes, smartypants, titlecase, typogrify, widont, TypogrifyError from functools import wraps -import jinja2 +try: + from markupsafe import Markup +except ImportError: + from jinja2 import Markup from jinja2.exceptions import TemplateError @@ -18,7 +21,7 @@ def make_safe(f): out = f(text) except TypogrifyError as e: raise TemplateError(e.message) - return jinja2.Markup(out) + return Markup(out) wrapper.is_safe = True return wrapper