from setuptools import setup
-with open("src/jinja2/__init__.py", "rt", encoding="utf8") as f:
+with open("src/jinja2/__init__.py", encoding="utf8") as f:
version = re.search(r'__version__ = "(.*?)"', f.read(), re.M).group(1)
# Metadata goes in setup.cfg. These are here for GitHub's dependency graph.
node.names = []
def parse_context():
- if self.stream.current.value in (
- "with",
- "without",
- ) and self.stream.look().test("name:context"):
+ if (
+ self.stream.current.value
+ in {
+ "with",
+ "without",
+ }
+ and self.stream.look().test("name:context")
+ ):
node.with_context = next(self.stream).value == "with"
self.stream.skip()
return True
kwargs = []
if self.stream.current.type == "lparen":
args, kwargs, dyn_args, dyn_kwargs = self.parse_call(None)
- elif self.stream.current.type in (
- "name",
- "string",
- "integer",
- "float",
- "lparen",
- "lbracket",
- "lbrace",
- ) and not self.stream.current.test_any("name:else", "name:or", "name:and"):
+ elif (
+ self.stream.current.type
+ in {
+ "name",
+ "string",
+ "integer",
+ "float",
+ "lparen",
+ "lbracket",
+ "lbrace",
+ }
+ and not self.stream.current.test_any("name:else", "name:or", "name:and")
+ ):
if self.stream.current.test("name:is"):
self.fail("You cannot chain multiple tests with is")
arg_node = self.parse_primary()
try:
return super()._fail_with_undefined_error(*args, **kwargs)
except self._undefined_exception as e:
- logger.error(f"Template variable error: %s", e)
+ logger.error("Template variable error: %s", e)
raise e
def __str__(self):
def pformat(obj):
- """Format an object using :func:`pprint.pformat`.
- """
+ """Format an object using :func:`pprint.pformat`."""
from pprint import pformat
return pformat(obj)
def test_unoptimized_scopes_autoescape(self):
env = Environment(
- loader=DictLoader(dict(o_printer="({{ o }})",)),
+ loader=DictLoader({"o_printer": "({{ o }})"}),
autoescape=True,
enable_async=True,
)
@pytest.mark.parametrize(
("value", "base", "expect"),
- (("0x4d32", 16, "19762"), ("011", 8, "9"), ("0x33Z", 16, "0"),),
+ (("0x4d32", 16, "19762"), ("011", 8, "9"), ("0x33Z", 16, "0")),
)
def test_int_base(self, env, value, base, expect):
t = env.from_string("{{ value|int(base=base) }}")
t = env.from_string(source)
assert t.render() == expect
- @pytest.mark.parametrize("name,expect", (("min", "1"), ("max", "9"),))
+ @pytest.mark.parametrize(("name", "expect"), [("min", "1"), ("max", "9")])
def test_min_max_attribute(self, env, name, expect):
t = env.from_string("{{ items|" + name + '(attribute="value") }}')
assert t.render(items=map(Magic, [5, 1, 9])) == expect
def test_no_trim_angle_bracket(self, env):
env = Environment(
- "<%", "%>", "${", "}", "<%#", "%>", lstrip_blocks=True, trim_blocks=True,
+ "<%", "%>", "${", "}", "<%#", "%>", lstrip_blocks=True, trim_blocks=True
)
tmpl = env.from_string(" <% if True +%>\n\n <% endif %>")
assert tmpl.render() == "\n\n"