Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
.. currentmodule:: jinja2

Version 3.1.7
-------------

Unreleased

- Add type annotation to ``FILTERS`` and ``TESTS``
:issue:`2120`, :pr:`2141`


Version 3.1.6
-------------

Expand Down
2 changes: 1 addition & 1 deletion src/jinja2/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,4 @@
from .utils import pass_eval_context as pass_eval_context
from .utils import select_autoescape as select_autoescape

__version__ = "3.1.6"
__version__ = "3.1.7"
4 changes: 2 additions & 2 deletions src/jinja2/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def __html__(self) -> str:
pass


F = t.TypeVar("F", bound=t.Callable[..., t.Any])
FilterFunction = t.Callable[..., t.Any]
K = t.TypeVar("K")
V = t.TypeVar("V")

Expand Down Expand Up @@ -1815,7 +1815,7 @@ async def async_select_or_reject(
yield item


FILTERS = {
FILTERS: t.Dict[str, FilterFunction] = {
"abs": abs,
"attr": do_attr,
"batch": do_batch,
Expand Down
5 changes: 4 additions & 1 deletion src/jinja2/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
from .environment import Environment


TestFunction = t.Callable[..., t.Any]


def test_odd(value: int) -> bool:
"""Return true if the variable is odd."""
return value % 2 == 1
Expand Down Expand Up @@ -213,7 +216,7 @@ def test_in(value: t.Any, seq: t.Container[t.Any]) -> bool:
return value in seq


TESTS = {
TESTS: t.Dict[str, TestFunction] = {
"odd": test_odd,
"even": test_even,
"divisibleby": test_divisibleby,
Expand Down
Loading