Pyramid 1.0a9 has been released.  It is a bugfix and feature release.

It can be installed via:

  easy_install pyramid

Existing installations can be updated by running:

  easy_install -U pyramid

The documentation at http://docs.pylonshq.com/pyramid/dev/index.html has
been updated.  The change log follows.

1.0a9 (2011-01-08)
==================

Bug Fixes
---------

- The ``proutes`` command tried too hard to resolve the view for
  printing, resulting in exceptions when an exceptional root factory
  was encountered.  Instead of trying to resolve the view, if it
  cannot, it will now just print ``<unknown>``.

- The `self` argument was included in new methods of the ``ISession``
  interface signature, causing ``pyramid_beaker`` tests to fail.

- Readd ``pyramid.traversal.model_path_tuple`` as an alias for
  ``pyramid.traversal.resource_path_tuple`` for backwards
  compatibility.

Features
--------

- Add a new API ``pyramid.url.current_route_url``, which computes a
  URL based on the "current" route (if any) and its matchdict values.

- ``config.add_view`` now accepts a ``decorator`` keyword argument, a
  callable which will decorate the view callable before it is added to
  the registry.

- If a handler class provides an ``__action_decorator__`` attribute
  (usually a classmethod or staticmethod), use that as the decorator
  for each view registration for that handler.

- The ``pyramid.interfaces.IAuthenticationPolicy`` interface now
  specifies an ``unauthenticated_userid`` method.  This method
  supports an important optimization required by people who are using
  persistent storages which do not support object caching and whom
  want to create a "user object" as a request attribute.

- A new API has been added to the ``pyramid.security`` module named
  ``unauthenticated_userid``.  This API function calls the
  ``unauthenticated_userid`` method of the effective security policy.

- An ``unauthenticated_userid`` method has been added to the dummy
  authentication policy returned by
  ``pyramid.config.Configurator.testing_securitypolicy``.  It returns
  the same thing as that the dummy authentication policy's
  ``authenticated_userid`` method.

- The class ``pyramid.authentication.AuthTktCookieHelper`` is now an
  API.  This class can be used by third-party authentication policy
  developers to help in the mechanics of authentication
  cookie-setting.

- New constructor argument to Configurator: ``default_view_mapper``.
  Useful to create systems that have alternate view calling
  conventions.  A view mapper allows objects that are meant to be used
  as view callables to have an arbitrary argument list and an
  arbitrary result.  The object passed as ``default_view_mapper``
  should implement the ``pyramid.interfaces.IViewMapperFactory``
  interface.

- add a ``set_view_mapper`` API to Configurator.  Has the same result
  as passing ``default_view_mapper`` to the Configurator constructor.

- ``config.add_view`` now accepts a ``mapper`` keyword argument, which
  should either be ``None``, a string representing a Python dotted
  name, or an object which is an ``IViewMapperFactory``.  This feature
  is not useful for "civilians", only for extension writers.

- Allow static renderer provided during view registration to be
  overridden at request time via a request attribute named
  ``override_renderer``, which should be the name of a previously
  registered renderer.  Useful to provide "omnipresent" RPC using
  existing rendered views.

- Instances of ``pyramid.testing.DummyRequest`` now have a ``session``
  object, which is mostly a dictionary, but also implements the other
  session API methods for flash and CSRF.

Backwards Incompatibilities
---------------------------

- Since the ``pyramid.interfaces.IAuthenticationPolicy`` interface now
  specifies that a policy implementation must implement an
  ``unauthenticated_userid`` method, all third-party custom
  authentication policies now must implement this method.  It,
  however, will only be called when the global function named
  ``pyramid.security.unauthenticated_userid`` is invoked, so if you're
  not invoking that, you will not notice any issues.

- ``pyramid.interfaces.ISession.get_csrf_token`` now mandates that an
  implementation should return a *new* token if one doesn't already
  exist in the session (previously it would return None).  The
  internal sessioning implementation has been changed.

Documentation
-------------

- The (weak) "Converting a CMF Application to Pyramid" tutorial has
  been removed from the tutorials section.  It was moved to the
  ``pyramid_tutorials`` Github repository.

- The "Resource Location and View Lookup" chapter has been replaced
  with a variant of Rob Miller's "Much Ado About Traversal"
  (originally published at
  http://blog.nonsequitarian.org/2010/much-ado-about-traversal/).

- Many minor wording tweaks and refactorings (merged Casey Duncan's
  docs fork, in which he is working on general editing).

- Added (weak) description of new view mapper feature to Hooks
  narrative chapter.

- Split views chapter into 2: View Callables and View Configuration.

- Reorder Renderers and Templates chapters after View Callables but
  before View Configuration.

- Merge Session Objects, Cross-Site Request Forgery, and Flash
  Messaging chapter into a single Sessions chapter.

- The Wiki and Wiki2 tutorials now have much nicer CSS and graphics.

Internals
---------

- The "view derivation" code is now factored into a set of classes
  rather than a large number of standalone functions (a side effect of
  the view mapper refactoring).

- The ``pyramid.renderer.RendererHelper`` class has grown a
  ``render_view`` method, which is used by the default view mapper (a
  side effect of the view mapper refactoring).

- The object passed as ``renderer`` to the "view deriver" is now an
  instance of ``pyramid.renderers.RendererHelper`` rather than a
  dictionary (a side effect of view mapper refactoring).

- The class used as the "page template" in ``pyramid.chameleon_text``
  was removed, in preference to using a Chameleon-inbuilt version.

- A view callable wrapper registered in the registry now contains an
  ``__original_view__`` attribute which references the original view
  callable (or class).

- The (non-API) method of all internal authentication policy
  implementations previously named ``_get_userid`` is now named
  ``unauthenticated_userid``, promoted to an API method.  If you were
  overriding this method, you'll now need to override it as
  ``unauthenticated_userid`` instead.

- Remove (non-API) function of config.py named _map_view.



-- 
You received this message because you are subscribed to the Google Groups 
"pylons-devel" group.
To post to this group, send email to pylons-de...@googlegroups.com.
To unsubscribe from this group, send email to 
pylons-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/pylons-devel?hl=en.

Reply via email to