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.