Pyramid 1.1b1 has been released.

Here are the changes:

Features
--------

- It is now possible to invoke ``paster pshell`` even if the paste ini
  file section name pointed to in its argument is not actually a
  Pyramid WSGI application.  The shell will work in a degraded mode,
  and will warn the user.  See "The Interactive Shell" in the
  "Creating a Pyramid Project" narrative documentation section.

- ``paster pshell`` now offers more built-in global variables by
  default (including ``app`` and ``settings``).  See "The Interactive
  Shell" in the "Creating a Pyramid Project" narrative documentation
  section.

- It is now possible to add a ``[pshell]`` section to your
  application's .ini configuration file, which influences the global
  names available to a pshell session.  See "Extending the Shell" in
  the "Creating a Pyramid Project" narrative documentation chapter.

- The ``config.scan`` method has grown a ``**kw`` argument.  ``kw``
  argument represents a set of keyword arguments to pass to the
  Venusian ``Scanner`` object created by Pyramid.  (See the Venusian
  documentation for more information about ``Scanner``).

- New request property: ``json_body``. This property will return the
  JSON-decoded variant of the request body.  If the request body is
  not well-formed JSON, this property will raise an exception.

- A new value ``http_cache`` can be used as a view configuration
  parameter.

  When you supply an ``http_cache`` value to a view configuration, the
  ``Expires`` and ``Cache-Control`` headers of a response generated by
  the associated view callable are modified.  The value for
  ``http_cache`` may be one of the following:

  - A nonzero integer.  If it's a nonzero integer, it's treated as a
    number of seconds.  This number of seconds will be used to compute
    the ``Expires`` header and the ``Cache-Control: max-age``
    parameter of responses to requests which call this view.  For
    example: ``http_cache=3600`` instructs the requesting browser to
    'cache this response for an hour, please'.

  - A ``datetime.timedelta`` instance.  If it's a
    ``datetime.timedelta`` instance, it will be converted into a
    number of seconds, and that number of seconds will be used to
    compute the ``Expires`` header and the ``Cache-Control: max-age``
    parameter of responses to requests which call this view.  For
    example: ``http_cache=datetime.timedelta(days=1)`` instructs the
    requesting browser to 'cache this response for a day, please'.

  - Zero (``0``).  If the value is zero, the ``Cache-Control`` and
    ``Expires`` headers present in all responses from this view will
    be composed such that client browser cache (and any intermediate
    caches) are instructed to never cache the response.

  - A two-tuple.  If it's a two tuple (e.g. ``http_cache=(1,
    {'public':True})``), the first value in the tuple may be a nonzero
    integer or a ``datetime.timedelta`` instance; in either case this
    value will be used as the number of seconds to cache the response.
    The second value in the tuple must be a dictionary.  The values
    present in the dictionary will be used as input to the
    ``Cache-Control`` response header.  For example:
    ``http_cache=(3600, {'public':True})`` means 'cache for an hour,
    and add ``public`` to the Cache-Control header of the response'.
    All keys and values supported by the
    ``webob.cachecontrol.CacheControl`` interface may be added to the
    dictionary.  Supplying ``{'public':True}`` is equivalent to
    calling ``response.cache_control.public = True``.

  Providing a non-tuple value as ``http_cache`` is equivalent to
  calling ``response.cache_expires(value)`` within your view's body.

  Providing a two-tuple value as ``http_cache`` is equivalent to
  calling ``response.cache_expires(value[0], **value[1])`` within your
  view's body.

  If you wish to avoid influencing, the ``Expires`` header, and
  instead wish to only influence ``Cache-Control`` headers, pass a
  tuple as ``http_cache`` with the first element of ``None``, e.g.:
  ``(None, {'public':True})``.

Bug Fixes
---------

- Framework wrappers of the original view (such as http_cached and so
  on) relied on being able to trust that the response they were
  receiving was an IResponse.  It wasn't always, because the response
  was resolved by the router instead of early in the view wrapping
  process.  This has been fixed.

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

- Added a section in the "Webob" chapter named "Dealing With A
  JSON-Encoded Request Body" (usage of ``request.json_body``).

Behavior Changes
----------------

- The ``paster pshell``, ``paster proutes``, and ``paster pviews``
  commands now take a single argument in the form
  ``/path/to/config.ini#sectionname`` rather than the previous
  2-argument spelling ``/path/to/config.ini sectionname``.
  ``#sectionname`` may be omitted, in which case ``#main`` is assumed.

A "What's New In Pyramid 1.1" document exists at
http://docs.pylonsproject.org/projects/pyramid/1.1/whatsnew-1.1.html .

You will be able to see the 1.1 release documentation (across all
alphas and betas, as well as when it eventually gets to final release)
at http://docs.pylonsproject.org/projects/pyramid/1.1/ .

You can install it via PyPI:

  easy_install Pyramid==1.1b1

Enjoy, and please report any issues you find to the issue tracker at
https://github.com/Pylons/pyramid/issues

Special thanks to Mike Merickel (raydeo) for work on this release.

Thanks!

- C


-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en.

Reply via email to