1.3a1 (2011-12-09)
|
==================
|
|
Features
|
--------
|
|
- Python 3.2 compatibility.
|
|
- New ``pyramid.compat`` module and API documentation which provides Python
|
2/3 straddling support for Pyramid add-ons and development environments.
|
|
- A ``mako.directories`` setting is no longer required to use Mako templates
|
Rationale: Mako template renderers can be specified using an absolute asset
|
spec. An entire application can be written with such asset specs,
|
requiring no ordered lookup path.
|
|
- ``bpython`` interpreter compatibility in ``pshell``. See the "Command-Line
|
Pyramid" narrative docs chapter for more information.
|
|
- Added ``get_appsettings`` API function to the ``pyramid.paster`` module.
|
This function returns the settings defined within an ``[app:...]`` section
|
in a PasteDeploy ini file.
|
|
- Added ``setup_logging`` API function to the ``pyramid.paster`` module.
|
This function sets up Python logging according to the logging configuration
|
in a PasteDeploy ini file.
|
|
- Configuration conflict reporting is reported in a more understandable way
|
("Line 11 in file..." vs. a repr of a tuple of similar info).
|
|
- A configuration introspection system was added; see the narrative
|
documentation chapter entitled "Pyramid Configuration Introspection" for
|
more information. New APIs: ``pyramid.registry.Introspectable``,
|
``pyramid.config.Configurator.introspector``,
|
``pyramid.config.Configurator.introspectable``,
|
``pyramid.registry.Registry.introspector``.
|
|
- Allow extra keyword arguments to be passed to the
|
``pyramid.config.Configurator.action`` method.
|
|
- New APIs: ``pyramid.path.AssetResolver`` and
|
``pyramid.path.DottedNameResolver``. The former can be used to resolve
|
asset specifications, the latter can be used to resolve dotted names to
|
modules or packages.
|
|
Bug Fixes
|
---------
|
|
- Make test suite pass on 32-bit systems; closes #286. closes #306.
|
See also https://github.com/Pylons/pyramid/issues/286
|
|
- The ``pryamid.view.view_config`` decorator did not accept a ``match_params``
|
predicate argument. See https://github.com/Pylons/pyramid/pull/308
|
|
- The AuthTktCookieHelper could potentially generate Unicode headers
|
inappropriately when the ``tokens`` argument to remember was used. See
|
https://github.com/Pylons/pyramid/pull/314.
|
|
- The AuthTktAuthenticationPolicy did not use a timing-attack-aware string
|
comparator. See https://github.com/Pylons/pyramid/pull/320 for more info.
|
|
- The DummySession in ``pyramid.testing`` now generates a new CSRF token if
|
one doesn't yet exist.
|
|
- ``request.static_url`` now generates URL-quoted URLs when fed a ``path``
|
argument which contains characters that are unsuitable for URLs. See
|
https://github.com/Pylons/pyramid/issues/349 for more info.
|
|
- Prevent a scaffold rendering from being named ``site`` (conflicts with
|
Python internal site.py).
|
|
- Support for using instances as targets of the ``pyramid.wsgi.wsgiapp`` and
|
``pryramid.wsgi.wsgiapp2`` functions.
|
See https://github.com/Pylons/pyramid/pull/370 for more info.
|
|
Backwards Incompatibilities
|
---------------------------
|
|
- Pyramid no longer runs on Python 2.5 (which includes the most recent
|
release of Jython and the Python 2.5 version of GAE as of this writing).
|
|
- The ``paster`` command is no longer the documented way to create projects,
|
start the server, or run debugging commands. To create projects from
|
scaffolds, ``paster create`` is replaced by the ``pcreate`` console script.
|
To serve up a project, ``paster serve`` is replaced by the ``pserve``
|
console script. New console scripts named ``pshell``, ``pviews``,
|
``proutes``, and ``ptweens`` do what their ``paster <commandname>``
|
equivalents used to do. Rationale: the Paste and PasteScript packages do
|
not run under Python 3.
|
|
- The default WSGI server run as the result of ``pserve`` from newly rendered
|
scaffolding is now the ``wsgiref`` WSGI server instead of the
|
``paste.httpserver`` server. Rationale: Rationale: the Paste and
|
PasteScript packages do not run under Python 3.
|
|
- The ``pshell`` command (see "paster pshell") no longer accepts a
|
``--disable-ipython`` command-line argument. Instead, it accepts a ``-p``
|
or ``--python-shell`` argument, which can be any of the values ``python``,
|
``ipython`` or ``bpython``.
|
|
- Removed the ``pyramid.renderers.renderer_from_name`` function. It has been
|
deprecated since Pyramid 1.0, and was never an API.
|
|
- To use ZCML with versions of Pyramid >= 1.3, you will need ``pyramid_zcml``
|
version >= 0.8 and ``zope.configuration`` version >= 3.8.0. The
|
``pyramid_zcml`` package version 0.8 is backwards compatible all the way to
|
Pyramid 1.0, so you won't be warned if you have older versions installed
|
and upgrade Pyramid "in-place"; it may simply break instead.
|
|
Dependencies
|
------------
|
|
- Pyramid no longer depends on the ``zope.component`` package, except as a
|
testing dependency.
|
|
- Pyramid now depends on a zope.interface>=3.8.0, WebOb>=1.2dev,
|
repoze.lru>=0.4, zope.deprecation>=3.5.0, translationstring>=0.4 (for
|
Python 3 compatibility purposes). It also, as a testing dependency,
|
depends on WebTest>=1.3.1 for the same reason.
|
|
- Pyramid no longer depends on the Paste or PasteScript packages.
|
|
Documentation
|
-------------
|
|
- The SQLAlchemy Wiki tutorial has been updated. It now uses
|
``@view_config`` decorators and an explicit database population script.
|
|
- Minor updates to the ZODB Wiki tutorial.
|
|
- A narrative documentation chapter named "Extending Pyramid Configuration"
|
was added; it describes how to add a new directive, and how use the
|
``pyramid.config.Configurator.action`` method within custom directives. It
|
also describes how to add introspectable objects.
|
|
- A narrative documentation chapter named "Pyramid Configuration
|
Introspection" was added. It describes how to query the introspection
|
system.
|
|
Scaffolds
|
---------
|
|
- Rendered scaffolds have now been changed to be more relocatable (fewer
|
mentions of the package name within files in the package).
|
|
- The ``routesalchemy`` scaffold has been renamed ``alchemy``, replacing the
|
older (traversal-based) ``alchemy`` scaffold (which has been retired).
|
|
- The ``starter`` scaffold now uses URL dispatch by default.
|