- Remove previously deprecated code. :pr:`1544`
- ``WithExtension`` and ``AutoEscapeExtension`` are built-in now.
+ - ``contextfilter`` and ``contextfunction`` are replaced by
+ ``pass_context``. ``evalcontextfilter`` and
+ ``evalcontextfunction`` are replaced by ``pass_eval_context``.
+ ``environmentfilter`` and ``environmentfunction`` are replaced
+ by ``pass_environment``.
Version 3.0.3
.. autofunction:: jinja2.pass_environment
-.. autofunction:: jinja2.contextfilter
-
-.. autofunction:: jinja2.evalcontextfilter
-
-.. autofunction:: jinja2.environmentfilter
-
-.. autofunction:: jinja2.contextfunction
-
-.. autofunction:: jinja2.evalcontextfunction
-
-.. autofunction:: jinja2.environmentfunction
-
.. autofunction:: jinja2.clear_caches
.. autofunction:: jinja2.is_undefined
from .exceptions import TemplatesNotFound as TemplatesNotFound
from .exceptions import TemplateSyntaxError as TemplateSyntaxError
from .exceptions import UndefinedError as UndefinedError
-from .filters import contextfilter
-from .filters import environmentfilter
-from .filters import evalcontextfilter
from .loaders import BaseLoader as BaseLoader
from .loaders import ChoiceLoader as ChoiceLoader
from .loaders import DictLoader as DictLoader
from .runtime import StrictUndefined as StrictUndefined
from .runtime import Undefined as Undefined
from .utils import clear_caches as clear_caches
-from .utils import contextfunction
-from .utils import environmentfunction
from .utils import escape
-from .utils import evalcontextfunction
from .utils import is_undefined as is_undefined
from .utils import Markup
from .utils import pass_context as pass_context
import re
import typing
import typing as t
-import warnings
from collections import abc
from itertools import chain
from itertools import groupby
V = t.TypeVar("V")
-def contextfilter(f: F) -> F:
- """Pass the context as the first argument to the decorated function.
-
- .. deprecated:: 3.0
- Will be removed in Jinja 3.1. Use :func:`~jinja2.pass_context`
- instead.
- """
- warnings.warn(
- "'contextfilter' is renamed to 'pass_context', the old name"
- " will be removed in Jinja 3.1.",
- DeprecationWarning,
- stacklevel=2,
- )
- return pass_context(f)
-
-
-def evalcontextfilter(f: F) -> F:
- """Pass the eval context as the first argument to the decorated
- function.
-
- .. deprecated:: 3.0
- Will be removed in Jinja 3.1. Use
- :func:`~jinja2.pass_eval_context` instead.
-
- .. versionadded:: 2.4
- """
- warnings.warn(
- "'evalcontextfilter' is renamed to 'pass_eval_context', the old"
- " name will be removed in Jinja 3.1.",
- DeprecationWarning,
- stacklevel=2,
- )
- return pass_eval_context(f)
-
-
-def environmentfilter(f: F) -> F:
- """Pass the environment as the first argument to the decorated
- function.
-
- .. deprecated:: 3.0
- Will be removed in Jinja 3.1. Use
- :func:`~jinja2.pass_environment` instead.
- """
- warnings.warn(
- "'environmentfilter' is renamed to 'pass_environment', the old"
- " name will be removed in Jinja 3.1.",
- DeprecationWarning,
- stacklevel=2,
- )
- return pass_environment(f)
-
-
def ignore_case(value: V) -> V:
"""For use as a postprocessor for :func:`make_attrgetter`. Converts strings
to lowercase and returns other types as-is."""
if hasattr(obj, "jinja_pass_arg"):
return obj.jinja_pass_arg # type: ignore
- for prefix in "context", "eval_context", "environment":
- squashed = prefix.replace("_", "")
-
- for name in f"{squashed}function", f"{squashed}filter":
- if getattr(obj, name, False) is True:
- warnings.warn(
- f"{name!r} is deprecated and will stop working"
- f" in Jinja 3.1. Use 'pass_{prefix}' instead.",
- DeprecationWarning,
- stacklevel=2,
- )
- return cls[prefix]
-
return None
-def contextfunction(f: F) -> F:
- """Pass the context as the first argument to the decorated function.
-
- .. deprecated:: 3.0
- Will be removed in Jinja 3.1. Use :func:`~jinja2.pass_context`
- instead.
- """
- warnings.warn(
- "'contextfunction' is renamed to 'pass_context', the old name"
- " will be removed in Jinja 3.1.",
- DeprecationWarning,
- stacklevel=2,
- )
- return pass_context(f)
-
-
-def evalcontextfunction(f: F) -> F:
- """Pass the eval context as the first argument to the decorated
- function.
-
- .. deprecated:: 3.0
- Will be removed in Jinja 3.1. Use
- :func:`~jinja2.pass_eval_context` instead.
-
- .. versionadded:: 2.4
- """
- warnings.warn(
- "'evalcontextfunction' is renamed to 'pass_eval_context', the"
- " old name will be removed in Jinja 3.1.",
- DeprecationWarning,
- stacklevel=2,
- )
- return pass_eval_context(f)
-
-
-def environmentfunction(f: F) -> F:
- """Pass the environment as the first argument to the decorated
- function.
-
- .. deprecated:: 3.0
- Will be removed in Jinja 3.1. Use
- :func:`~jinja2.pass_environment` instead.
- """
- warnings.warn(
- "'environmentfunction' is renamed to 'pass_environment', the"
- " old name will be removed in Jinja 3.1.",
- DeprecationWarning,
- stacklevel=2,
- )
- return pass_environment(f)
-
-
def internalcode(f: F) -> F:
"""Marks the function as internally used"""
internal_code.add(f.__code__)