Really happy about the convenience of the http_cache view
configuration parameter.  Thanks a bunch for all the hard work.

E

On Jul 9, 10:16 pm, Chris McDonough <chr...@plope.com> wrote:
> 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 
> athttp://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)
> athttp://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 
> athttps://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 pylons-discuss@googlegroups.com.
To unsubscribe from this group, send email to 
pylons-discuss+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en.

Reply via email to