Give AlbumentationsX a star on GitHub — it powers this leaderboard

Star on GitHub

pyramid-jinja2

Jinja2 template bindings for the Pyramid web framework

Rank: #2768Downloads: 2,010,742 (30 days)Stars: 71Forks: 60

Description

Jinja2 bindings for Pyramid
===========================

These are bindings for the `Jinja2 templating system <http://jinja.pocoo.org>`_
for the `Pyramid <https://trypyramid.com>`_ web framework.

See https://docs.pylonsproject.org/projects/pyramid-jinja2/en/latest/ for
documentation or ``index.rst`` in the ``docs`` sub-directory of the source
distribution.

2.10.1 (2023-02-07)
===================

- Rename "master" git branch to "main"

- Add Python 3.11 and 3.12 support.

- Replace usage of private Pyramid APIs.

2.10 (2022-03-27)
=================

- Add ``jinja2.i18n_extension`` configuration setting.
  See https://github.com/Pylons/pyramid_jinja2/pull/165

2.9.2 (2022-03-19)
==================

- Support Jinja2 >= 3.0.

- Only import ``jinja2.pass_context`` if available on Jinja2 >= 3.0, otherwise
  fallback to ``jinja2.contextfilter``.
  See https://github.com/Pylons/pyramid_jinja2/pull/164

2.9.1 (2022-03-12)
==================

**This release has been yanked and is no longer available.**

- Fix package metadata. No changes from 2.9.

2.9 (2022-03-12)
================

**This release has been yanked and is no longer available.**

- Drop Python 3.6 support.

- Add Python 3.9 and 3.10 support.

- Refactor project structure to make wheel distribution smaller.

- Blackify the codebase.

- Use the newer ``@jinja2.pass_context`` in favor of the deprecated
  ``@jinja2.contextfilter``.
  See https://github.com/Pylons/pyramid_jinja2/pull/159

2.8 (2019-01-25)
================

- Drop Python 3.3 support.

- Add Python 3.6 and 3.7 support.

- Support the ``mapping`` argument in the injected ``gettext`` function.
  See https://github.com/Pylons/pyramid_jinja2/pull/143

2.7 (2016-11-15)
================

- Drop Python 2.6 and 3.2 support.

- Add Python 3.5 support.

- #123: Switch to pytest and pip for testing and installation in the
  documentation and scaffold. nose and coverage are still used in the core
  pyramid_jinja2 package [stevepiercy].

- Prefer ``resource_url`` over deprecated ``model_url``. Pyramid has changed
  its vocabulary, so let's reflect the changes. [Mikko Ohtamaa]

- Support a dotted path to a gettext wrapper for the ``jinja2.i18n.gettext``
  setting. [mmerickel]

2.6.2 (2016-01-23)
==================

- Officially drop support for Python 3.2, test under Python 3.5 and pypy3
  [Domen Kozar]

2.6.1 (2016-01-20)
==================

- Don't include .pyc in wheel file [Domen Kozar]

2.6 (2016-01-20)
================

- #116: Update scaffold to be consistent with Pyramid's default scaffolds
  [stevepiercy]

2.5 (2015-04-16)
================

- #106: Allow specifying a custom pyramid_jinja.i18n.GetTextWrapper [dstufft]

2.4 (2015-03-27)
================

- #105: Support ``jinja2.finalize`` configuration setting. [dstufft]

- #94: Fix loading of templates with relative names on Windows [zart]

- Support Python 3.4 [mmerickel]

- Improve scaffold [marioidival]

- #98: Avoid get_current_request where possible [housleyjk]

- #99: Add resource_path filter [javex]

2.3.3 (2014-07-02)
==================

- #91: Fix a recursion error while attempting to include a template with the
  same name as one of the parents that was already loaded. [mmerickel]

2.3.2 (2014-06-13)
==================

- Fix 2.3.1 brownbag release. It had some erroneous didn't-mean-to-push
  changes that are now solved. Brought coverage back up to 100%.

2.3.1 (2014-06-13)
==================

- Improve the template-relative searchpath logic to search more possibilities
  in the include-chain built up from templates including or extending
  other templates. The logic for when the chain was longer than just one
  template including another template was broken.

2.3 (2014-05-30)
================

- Require ``pyramid_jinja2`` to be included even when using
  ``pyramid_jinja2.renderer_factory``. It is now a thin wrapper around the
  default renderer and can be used to share the same settings with another
  file extension. [mmerickel]

Backward Incompatible Changes
-----------------------------

- ``pyramid_jinja2`` **must** be included into the ``Configurator`` in order
  to use ``pyramid_jinja2.renderer_factory`` otherwise you may see the
  exception::

    ValueError: As of pyramid_jinja2 2.3, the use of the
    "pyramid_jinja2.renderer_factory" requires that pyramid_jinja2 be
    configured via config.include("pyramid_jinja2") or the equivalent
    "pyramid.includes" setting.

  The fix is to include ``pyramid_jinja2``::

    config.include("pyramid_jinja2")

2.2 (2014-05-30)
================

- #88: Formalize template loading order and allow all lookups to fallback to
  the search path. A template is now always searched for relative to its
  parent template. If not found, the lookup will fallback to the search path.
  [mmerickel]

- Add ``prepend`` option to ``config.add_jinja2_search_path`` to allow
  prepending of paths to the beginning of the search path if a path should
  override previously defined paths. [mmerickel]

2.1 (2014-05-16)
================

- The 2.0 series started adding the package that invoked
  ``config.add_jinja2_renderer`` to the template search path. This is
  being removed in favor of explicit search paths and will hopefully not
  affect many people as it has only been available for a couple weeks. The
  only automatic search path left is the one added by the default ``.jinja2``
  renderer created when including ``pyramid_jinja2``. [mmerickel]

- Adjust the ``config.include("pyramid_jinja2")`` to add any packages from
  ``jinja2.directories`` **before** the default search path at the base of
  the app. Previously there was no way to override that search path.
  [mmerickel]

2.0.2 (2014-05-06)
==================

- The path of the child template is always considered when inheriting from
  a base template. Therefore when doing ``render("templates/foo.jinja2")``
  and ``foo.jinja2`` has an ``{% extends "base.jinja2" %}``, the template
  will be searched for as ``"templates/base.jinja2"`` on the search path.
  Previously the path of the child template was ignored when doing the
  lookup for the base, causing some very subtle and unrecoverable lookup
  errors when the child template was found relative to the caller instead
  of being found on the search path. [mmerickel]

- This release restores the default search path behaviors from the 1.x series
  that were inadvertently removed in the 2.x. The project's root package is
  added to the search path by default. [mmerickel]

2.0.1 (2014-04-23)
==================

- #86: Fix a regression caused by the new support for extending a template
  relative to itself. Using ``{% extends "some_asset:spec.jinja2" %}`` was
  no longer working and is now fixed. [mmerickel]


2.0 (2014-04-21)
================

- Claim Python 3.4 support
  [mmerickel]

- #75: Fix the missing piece of relative template loading by allowing a
  template to inherit from a template relative to itself, instead of
  forcing the parent to be on the search path.
  [mmerickel]

- #73: Added a new ``config.add_jinja2_renderer`` API that can create and
  override multiple Jinja2 renderers, each loaded using potentially different
  settings and extensions.

  The other APIs are now keyed on the renderer extension, as each extension
  may have different settings. Thus ``config.add_jinja2_search_path``,
  ``config.add_jinja2_extension``, and ``config.get_jinja2_environment``
  accept a ``name`` argument, which defaults to ``.jinja2``.

  This deprecates the old ``pyramid_jinja2.renderer_factory`` mechanism
  for adding renderers with alternate extensions.

  Configuration of the renderers has been updated to follow Pyramid's
  standard mechanisms for conflict detection. This means that if two modules
  both try to add a renderer for the ``.jinja2`` extension, they may raise a
  conflict or the modifications made by the invocation closest to the
  ``Configurator`` in the call-stack will win. This behavior can be affected
  by calling ``config.commit`` at appropriate times to force a configuration
  to take effect immediately. As such, configuration is deferred until
  commit-time, meaning that it is now possible
  ``config.get_jinja2_environment`` will return ``None`` because the changes
  have not yet been committed.
  [mmerickel]

Backward Incompatible Changes
-----------------------------

- The creation and configuration of the Jinja2 ``Environment`` is now deferred
  until commit-type in the Pyramid ``Configurator``. This means that
  ``config.get_jinja2_environment`` may return ``None``. To resolve this,
  invoke ``config.commit()`` before attempting to get the environment.

1.10 (2014-01-11)
=================

- #77: Change semantics of ``jinja2.bytecode_caching`` setting.  The new
  default is false (no bytecode caching) -- ``bytecode_caching`` must
  explicitly be set to true to enable a filesystem bytecode cache.
  In addition, an atexit callback to clean the cache is no longer
  registered (as this seemed to defeat most of the purpose of having
  a bytecode cache.)  Finally, a more complex bytecode cache may be
  configured by setting ``jinja2.bytecode_caching`` directly to a
  ``jinja2.BytecodeCache`` instance.  (This can not be done in a
  paste .ini file, it must be done programatically.)
  [dairiki]

- prevent error when using `python setup.py bdist_wheel`
  [msabramo]


1.9 (2013-11-08)
================

- fix indentation level for Jinja2ProjectTemplate in scaffolds/__init__.py
  [Bruno Binet]

- Remove unnecessary dependency on ``pyramid.interfaces.ITemplateRenderer``
  which was deprecated in Pyramid 1.5.
  [mmerickel]

- #68: Added `model_path_filter`, `route_path_filter` and `static_path_filter` filters
  [Remco]

- #74: Fixed issue with route being converted as_const by jinja2 engine when using btyecode cache
  [Remco]


1.8 (2013-10-03)
================

- #70: Do not pin for py3.2 compatibility unless running under py3.2
  [dairiki]


1.7 (2013-08-07)
================

- #56: python3.3: Non-ASC