Metadata-Version: 2.1
Name: zope.pagetemplate
Version: 5.0
Summary: Zope Page Templates
Home-page: https://github.com/zopefoundation/zope.pagetemplate
Author: Zope Foundation and Contributors
Author-email: zope-dev@zope.dev
License: ZPL 2.1
Keywords: zope3 page template
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Zope Public License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Framework :: Zope :: 3
Requires-Python: >=3.7
Provides-Extra: test
Provides-Extra: untrusted
Provides-Extra: docs
License-File: LICENSE.txt

===================
 zope.pagetemplate
===================

.. image:: https://img.shields.io/pypi/v/zope.pagetemplate.svg
        :target: https://pypi.python.org/pypi/zope.pagetemplate/
        :alt: Latest release

.. image:: https://img.shields.io/pypi/pyversions/zope.pagetemplate.svg
        :target: https://pypi.org/project/zope.pagetemplate/
        :alt: Supported Python versions

.. image:: https://github.com/zopefoundation/zope.pagetemplate/actions/workflows/tests.yml/badge.svg
        :target: https://github.com/zopefoundation/zope.pagetemplate/actions/workflows/tests.yml

.. image:: https://coveralls.io/repos/github/zopefoundation/zope.pagetemplate/badge.svg?branch=master
        :target: https://coveralls.io/github/zopefoundation/zope.pagetemplate?branch=master

.. image:: https://readthedocs.org/projects/zopepagetemplate/badge/?version=latest
        :target: https://zopepagetemplate.readthedocs.org/en/latest/
        :alt: Documentation Status


Page Templates provide an elegant templating mechanism that achieves a
clean separation of presentation and application logic while allowing
for designers to work with templates in their visual editing tools
(FrontPage, Dreamweaver, GoLive, etc.).

Page Templates are based on `a Template Attribute Language
<https://pypi.python.org/pypi/zope.tal>`_ with expressions provided by
`TALES <https://pypi.python.org/pypi/zope.tales>`_. For a description
of their syntax, see `the reference documentation
<https://pagetemplates.readthedocs.io/en/latest/>`_.

For detailed documentation on the usage of this package, see
https://zopepagetemplate.readthedocs.io


=========
 Changes
=========

5.0 (2023-02-07)
================

- Add support for ``zope.untrustedpython`` on Python 3. With it, Python
  expressions are now protected. It is activated using the ``untrusted`` extra.

- Add support for Python 3.11.

- Drop support for Python 2.7, 3.5, 3.6.


4.6.0 (2021-11-04)
==================

- Avoid traceback reference cycle in ``PageTemplate._cook``.

- Add support for Python 3.9 and 3.10.


4.5.0 (2020-02-10)
==================

- Add support for Python 3.8.

- Drop support for Python 3.4.


4.4.1 (2018-10-16)
==================

- Fix DeprecationWarnings for ``ComponentLookupError`` by
  importing them from ``zope.interface.interfaces``. See `issue 17
  <https://github.com/zopefoundation/zope.pagetemplate/issues/17>`_.

4.4 (2018-10-05)
================

- Add support for Python 3.7.

- Host documentation at https://zopepagetemplate.readthedocs.io/

4.3.0 (2017-09-04)
==================

- Add support for Python 3.5 and 3.6.

- Drop support for Python 2.6, 3.2 and 3.3.

- Certain internal test support objects in the ``tests`` package were
  removed or modified.

- The ``TraversableModuleImporter`` properly turns ``ImportError``
  into ``TraversalError``. Previously it was catching ``KeyError``,
  which cannot be raised.

- Reach 100% code coverage and maintain it through automated testing.

4.2.1 (2015-06-06)
==================

- Add support for Python 3.2.

4.2.0 (2015-06-02)
==================

- Allow short-circuit traversal for non-proxied dict subclasses.  See:
  https://github.com/zopefoundation/zope.pagetemplate/pull/3 .

- Add support for PyPy / PyPy3.

4.1.0 (2014-12-27)
==================

- Add support for Python 3.4.

- Add support for testing on Travis.

4.0.4 (2013-03-15)
==================

- Ensure that ``ZopePythonExpr`` and ``PythonExpr`` are separate classes even
  when ``zope.untrustedpython`` is not available.  Fixes a ZCML conflict error
  in ``zope.app.pagetemplate``.

4.0.3 (2013-02-28)
==================

- Only allow ``zope.untrustedpython`` to be a dependency in Python 2.

- Fix buildout to work properly.

4.0.2 (2013-02-22)
==================

- Migrate from ``zope.security.untrustedpython`` to ``zope.untrustedpython``.

- Make ``zope.untrustedpython`` an extra dependency.  Without it, python
  expressions are not protected, even though path expressions are still
  security wrapped.

- Add support for Python 3.3.

4.0.1 (2012-01-23)
==================

- LP#732972:  PageTemplateTracebackSupplement no longer passes
  ``check_macro_expansion=False`` to old templates which do not
  accept this argument.

4.0.0 (2012-12-13)
==================

- Replace deprecated ``zope.interface.classProvides`` usage with equivalent
  ``zope.interface.provider`` decorator.

- Replace deprecated ``zope.interface.implements`` usage with equivalent
  ``zope.interface.implementer`` decorator.

- Drop support for Python 2.4 and 2.5.

- PageTemplate.pt_render() has a new argument, ``check_macro_expansion``,
  defaulting to True.

- PageTemplateTracebackSupplement passes ``check_macro_expansion=False``, to
  avoid LP#732972.

3.6.3 (2011-09-21)
==================

- Fix test assertions to be compatible with ``zope.tal`` 3.6.

3.6.2 (2011-09-21)
==================

- Change interface for engine and program such that the return type of
  the ``cook`` method is a tuple ``(program, macros)``. This follows
  the interface for the TAL parser's ``getCode`` method.

  Fixes a legacy compatibility issue where code would expect an
  ``_v_macros`` volatile attribute which was missing.

3.6.1 (2011-08-23)
==================

- Fix issue with missing default value for ``strictinsert``.

3.6.0 (2011-08-20)
==================

- Replace StringIO stream class with a faster list-based implementation.

- Abstract out the template engine and program interfaces and allow
  implementation replacement via a utility registration.

- Remove ancient copyright from test files (LP: #607228)

3.5.2 (2010-07-08)
==================

- Fix ``PTRuntimeError`` exception messages to be consistent across Python
  versions, and compatibile with the output under Python 2.4.  (More
  readable than the previous output under Python 2.6 as well.)

3.5.1 (2010-04-30)
==================

- Remove use of ``zope.testing.doctestunit`` in favor of stdlib's doctest.

- Add dependency on "zope.security [untrustedpython]" because the ``engine``
  module uses it.

3.5.0 (2009-05-25)
==================

- Add test coverage reporting support.

- Move 'engine' module and related test scaffolding here from
  ``zope.app.pagetemplate`` package.

3.4.2 (2009-03-17)
==================

- Remove old zpkg-related DEPENDENCIES.cfg file.

- Change package's mailing list address to zope-dev at zope.org, as
  zope3-dev at zope.org is now retired.

- Change `cheeseshop` to `pypi` in the packages' homepage url.

3.4.1 (2009-01-27)
==================

- Fix test due to recent changes in zope.tal.


3.4.0 (2007-10-02)
==================

- Initial release independent of the Zope 3 tree.


3.2.0 (2006-01-05)
==================

- Corresponds to the version of the zope.pagetemplate package shipped
  as part of the Zope 3.2.0 release.

- ZPTPage macro expansion:  changed label text to match the corresponding
  label in Zope 2 and activated the name spaces for macro expansion
  in 'read'.  See http://www.zope.org/Collectors/Zope3-dev/199

- Coding style cleanups.


3.1.0 (2005-10-03)
==================

- Corresponds to the version of the zope.pagetemplate package shipped
  as part of the Zope 3.1.0 release.

- Fixed apidoc and Cookie, which were using wrong descriptor class
  (changed to 'property').  See http://www.zope.org/Collectors/Zope3-dev/387

- Documentation / style / testing cleanups.


3.0.0 (2004-11-07)
==================

- Corresponds to the version of the zope.pagetemplate package shipped
  as part of the Zope X3.0.0 release.
