Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Jun 26, 2011
  1. @mcdonc

    prep for 1.1a3

    mcdonc authored
  2. @mcdonc

    - Added ``mako.preprocessor`` config file parameter; allows for a Mako

    mcdonc authored
      preprocessor to be specified as a Python callable or Python dotted name.
      See #183 for rationale.
    Closes #183.
  3. @mcdonc

    - Accessing or setting deprecated response_* attrs on request

    mcdonc authored
      (e.g. ``response_content_type``) now issues a deprecation warning at access
      time rather than at rendering time.
Commits on Jun 23, 2011
  1. @mcdonc


    mcdonc authored
Commits on Jun 22, 2011
  1. @mcdonc

    prep for 1.1a2

    mcdonc authored
  2. @mcdonc

    leave undefined

    mcdonc authored
  3. @mcdonc

    take robert forkels advice

    mcdonc authored
  4. @mcdonc

    - If multiple specs were provided in a single call to

    mcdonc authored
      ``config.add_translation_dirs``, the directories were inserted into the
      beginning of the directory list in the wrong order: they were inserted in
      the reverse of the order they were provided in the ``*specs`` list (items
      later in the list trumped ones earlier in the list).  This is now fixed.
      Note however, that later calls to ``config.add_translation_dirs`` continue
      to insert directories into the beginning of the list of translation
      directories created by earlier calls.  This means that the same translation
      found in a directory added via ``add_translation_dirs`` later in the
      configuration process will be found before one added earlier via a separate
      call to ``add_translation_dirs`` in the configuration process.
  5. @mcdonc

    suggestions from sluggo

    mcdonc authored
Commits on Jun 21, 2011
  1. @mcdonc


    mcdonc authored
  2. @mcdonc

    - The pyramid Router attempted to set a value into the key

    mcdonc authored
      ``environ['repoze.bfg.message']`` when it caught a view-related exception
      for backwards compatibility with :mod:`repoze.bfg` during error handling.
      It did this by using code that looked like so::
                        # "why" is an exception object
                            msg = why[0]
                            msg = ''
                        environ['repoze.bfg.message'] = msg
      Use of the value ``environ['repoze.bfg.message']`` was docs-deprecated in
      Pyramid 1.0.  Our standing policy is to not remove features after a
      deprecation for two full major releases, so this code was originally slated
      to be removed in Pyramid 1.2.  However, computing the
      ``repoze.bfg.message`` value was the source of at least one bug found in
      the wild (#199), and there isn't a
      foolproof way to both preserve backwards compatibility and to fix the bug.
      Therefore, the code which sets the value has been removed in this release.
      Code in exception views which relies on this value's presence in the
      environment should now use the ``exception`` attribute of the request
      (e.g. ``request.exception[0]``) to retrieve the message instead of relying
      on ``request.environ['repoze.bfg.message']``.
    Closes #199.
Commits on Jun 20, 2011
  1. @mcdonc

    prep for 1.1a1

    mcdonc authored
  2. @mcdonc

    bring whatsnew up to date

    mcdonc authored
  3. @mcdonc
  4. @mcdonc
  5. @mcdonc

    - Base exception response content type again on accept header.

    mcdonc authored
    - The ``pyramid.httpexceptions`` classes named ``HTTPFound``,
      ``HTTPMultipleChoices``, ``HTTPMovedPermanently``, ``HTTPSeeOther``,
      ``HTTPUseProxy``, and ``HTTPTemporaryRedirect`` now accept ``location`` as
      their first positional argument rather than ``detail``.  This means that
      you can do, e.g. ``return pyramid.httpexceptions.HTTPFound('http://foo')``
      rather than ``return
      pyramid.httpexceptions.HTTPFound(location='http//foo')`` (the latter will
      of course continue to work).
Commits on Jun 19, 2011
  1. @mcdonc
Commits on Jun 14, 2011
  1. @mcdonc

    we no longer support 2.4

    mcdonc authored
  2. @mcdonc
  3. @mcdonc

    - Move default app_iter generation logic into __call__ for

    mcdonc authored
      exception responses.
    - Add note about why we've created a shadow exception hierarchy
      parallel to that of webob.exc.
  4. @mcdonc

    - New method named ``pyramid.request.Request.is_response``. This method

    mcdonc authored
      should be used instead of the ``pyramid.view.is_response`` function, which
      has been deprecated.
    - Deprecated ``pyramid.view.is_response`` function in favor of (newly-added)
      ``pyramid.request.Request.is_response`` method.  Determining if an object
      is truly a valid response object now requires access to the registry, which
      is only easily available as a request attribute.  The
      ``pyramid.view.is_response`` function will still work until it is removed,
      but now may return an incorrect answer under some (very uncommon)
  5. @mcdonc

    - Added new add_response_adapter method to Configurator.

    mcdonc authored
    - Fix Configurator docstring wrt exception responses.
    - Speed up registry.queryAdapterOrSelf
Commits on Jun 13, 2011
  1. @mcdonc

    - Remove IResponder abstraction in favor of more general IResponse

    mcdonc authored
    - It is now possible to return an arbitrary object from a Pyramid view
      callable even if a renderer is not used, as long as a suitable adapter to
      ``pyramid.interfaces.IResponse`` is registered for the type of the returned
      object.  See the section in the Hooks chapter of the documentation entitled
      "Changing How Pyramid Treats View Responses".
    - The Pyramid router now, by default, expects response objects returned from
      view callables to implement the ``pyramid.interfaces.IResponse`` interface.
      Unlike the Pyramid 1.0 version of this interface, objects which implement
      IResponse now must define a ``__call__`` method that accepts ``environ``
      and ``start_response``, and which returns an ``app_iter`` iterable, among
      other things.  Previously, it was possible to return any object which had
      the three WebOb ``app_iter``, ``headerlist``, and ``status`` attributes as
      a response, so this is a backwards incompatibility.  It is possible to get
      backwards compatibility back by registering an adapter to IResponse from
      the type of object you're now returning from view callables.  See the
      section in the Hooks chapter of the documentation entitled "Changing How
      Pyramid Treats View Responses".
    - The ``pyramid.interfaces.IResponse`` interface is now much more extensive.
      Previously it defined only ``app_iter``, ``status`` and ``headerlist``; now
      it is basically intended to directly mirror the ``webob.Response`` API,
      which has many methods and attributes.
    - Documentation changes to support above.
Commits on Jun 11, 2011
  1. @mcdonc

    - Pyramid now expects Response objects to have a __call__

    mcdonc authored
      method which implements the WSGI application interface
      instead of the three webob attrs status, headerlist
      and app_iter.  Backwards compatibility exists for
      code which returns response objects that do not
      have a __call__.
    - pyramid.response.Response is no longer an exception
      (and therefore cannot be raised in order to generate
      a response).
    - Changed my mind about moving stuff from pyramid.httpexceptions
      to pyramid.response.  The stuff I moved over has been moved
      back to pyramid.httpexceptions.
Commits on Jun 6, 2011
  1. @wichert
Commits on Jun 4, 2011
  1. @mcdonc

    - It is now possible to control how the Pyramid router calls the WSGI

    mcdonc authored
      ``start_response`` callable and obtains the WSGI ``app_iter`` based on
      adapting the response object to the new ``pyramid.interfaces.IResponder``
      interface.  The default ``IResponder`` uses Pyramid 1.0's logic to do this.
      To override the responder::
         from pyramid.interfaces import IResponder
         from pyramid.response import Response
         from myapp import MyResponder
         config.registry.registerAdapter(MyResponder, (Response,),
                                         IResponder, name='')
      This makes it possible to reuse response object implementations which have,
      for example, their own ``__call__`` expected to be used as a WSGI
      application (like ``pyramid.response.Response``), e.g.:
         class MyResponder(object):
             def __init__(self, response):
                 """ Obtain a reference to the response """
                 self.response = response
             def __call__(self, request, start_response):
                 """ Call start_response and return an app_iter """
                 app_iter = self.response(request.environ, start_response)
                 return app_iter
Commits on May 30, 2011
  1. @mcdonc

    - Fix older CHANGES entries.

    mcdonc authored
    - The ``pyramid.request.Request`` class now has a ``ResponseClass`` interface
      which points at ``pyramid.response.Response``.
    - The ``pyramid.request.Response`` class now has a ``RequestClass`` interface
      which points at ``pyramid.response.Request``.
    - ``pyramid.response.Response`` is now a *subclass* of
      ``webob.response.Response``.  It also inherits from the built-in Python
      ``Exception`` class and implements the
      ``pyramid.interfaces.IExceptionResponse`` class so it can be raised as an
      exception from view code.
Commits on May 27, 2011
  1. @mmerickel
Commits on May 26, 2011
  1. @mcdonc
Commits on May 16, 2011
  1. @mcdonc

    - Added API docs for ``pyramid.httpexceptions.abort`` and

    mcdonc authored
    - Added "HTTP Exceptions" section to Views narrative chapter including a
      description of ``pyramid.httpexceptions.abort``; adjusted redirect section
      to note ``pyramid.httpexceptions.redirect``.
    - A default exception view for the context ``webob.exc.HTTPException`` (aka
      ``pyramid.httpexceptions.HTTPException``) is now registered by default.
      This means that an instance of any exception class imported from
      ``pyramid.httpexceptions`` (such as ``HTTPFound``) can now be raised from
      within view code; when raised, this exception view will render the
      exception to a response.
    - New functions named ``pyramid.httpexceptions.abort`` and
      ``pyramid.httpexceptions.redirect`` perform the equivalent of their Pylons
      brethren when an HTTP exception handler is registered.  These functions
      take advantage of the newly registered exception view for
    - The Configurator now accepts an additional keyword argument named
      ``httpexception_view``.  By default, this argument is populated with a
      default exception view function that will be used when an HTTP exception is
      raised.  When ``None`` is passed for this value, an exception view for HTTP
      exceptions will not be registered.  Passing ``None`` returns the behavior
      of raising an HTTP exception to that of Pyramid 1.0 (the exception will
      propagate to middleware and to the WSGI server).
Commits on May 15, 2011
  1. @mcdonc


    mcdonc authored
Commits on May 13, 2011
  1. @mcdonc

    - The ``add_route`` method of the Configurator now accepts a ``static``

    mcdonc authored
      argument.  If this argument is ``True``, the added route will never be
      considered for matching when a request is handled.  Instead, it will only
      be useful for URL generation via ``route_url`` and ``route_path``.  See the
      section entitled "Static Routes" in the URL Dispatch narrative chapter for
      more information.
  2. @mcdonc

    - Added documentation for a "multidict" (e.g. the API of ``request.PO…

    mcdonc authored
    …ST``) as
      interface API documentation.
Commits on May 5, 2011
  1. @mcdonc

    note pviews

    mcdonc authored
Commits on Apr 27, 2011
  1. @mcdonc

    - Passing an ``environ`` dictionary to the ``__call__`` method of a

    mcdonc authored
      "traverser" (e.g. an object that implements
      ``pyramid.interfaces.ITraverser`` such as an instance of
      ``pyramid.traversal.ResourceTreeTraverser``) as its ``request`` argument
      now causes a deprecation warning to be emitted.  Consumer code should pass a
      ``request`` object instead.  The fact that passing an environ dict is
      permitted has been documentation-deprecated since ``repoze.bfg`` 1.1, and
      this capability will be removed entirely in a future version.
    - The following (undocumented, dictionary-like) methods of the
      ``pyramid.request.Request`` object have been deprecated: ``__contains__``,
      ``__delitem__``, ``__getitem__``, ``__iter__``, ``__setitem__``, ``get``,
      ``has_key``, ``items``, ``iteritems``, ``itervalues``, ``keys``, ``pop``,
      ``popitem``, ``setdefault``, ``update``, and ``values``.  Usage of any of
      these methods will cause a deprecation warning to be emitted.  These
      methods were added for internal compatibility in ``repoze.bfg`` 1.1 (code
      that currently expects a request object expected an environ object in BFG
      1.0 and before).  In a future version, these methods will be removed
Something went wrong with that request. Please try again.