| Age | Commit message (Collapse) | Author |
|
"prepare" which renders the body and content type when it is provided with
a WSGI environ. Required for debug toolbar.
- Once ``__call__`` or ``prepare`` is called on a WSGIHTTPException, the body
will be set, and subsequent calls to ``__call__`` will always return the
same body. Delete the body attribute to rerender the exception body.
|
|
docs, thanks Phil).
|
|
package at all; configuration in the ``production.ini`` file which used to
require its ``error_catcher`` middleware has been removed. Configuring
error catching / email sending is now the domain of the ``pyramid_exclog``
package (see https://docs.pylonsproject.org/projects/pyramid_exclog/dev/).
|
|
feature important for allowing flexible logging configuration.
|
|
|
|
``pyramid.config.Configurator.include`` method. This argument allows you
to compose URL dispatch applications together. See the section entitled
"Using a Route Prefix to Compose Applications" in the "URL Dispatch"
narrative documentation chapter.
- Added a section entitled "Using a Route Prefix to Compose Applications" to
the "URL Dispatch" narrative documentation chapter.
|
|
https://github.com/Pylons/pyramid/issues/249
Closes #249.
|
|
|
|
|
|
will be ``None`` until an exception is caught by the Pyramid router, after
which it will be the result of ``sys.exc_info()``.
|
|
|
|
|
|
|
|
(usually set up by Paste as part of startup). This means that output from
e.g. ``debug_notfound``, ``debug_authorization``, etc. will go to the
normal logging channels. The logger name of the debug logger will be the
package name of the *caller* of the Configurator's constructor.
- If a string is passed as the ``debug_logger`` parameter to a Configurator,
that string is considered to be the name of a global Python logger rather
than a dotted name to an instance of a logger.
|
|
|
|
|
|
|
|
|
|
used to wrap the found view callable before it is called by Pyramid's
router. This is a feature usually only used by framework extensions, to
provide, for example, view timing support.
A view wrapper factory must be a callable which accepts three arguments:
``view_callable``, ``request``, and ``exc``. It must return a view
callable. The view callable returned by the factory must implement the
``context, request`` view callable calling convention. For example::
import time
def wrapper_factory(view_callable, request, exc):
def wrapper(context, request):
start = time.time()
result = view_callable(context, request)
end = time.time()
request.view_timing = end - start
return result
return wrapper
The ``view_callable`` argument to the factory will be the view callable
found by Pyramid via view lookup. The ``request`` argument to the factory
will be the current request. The ``exc`` argument to the factory will be
an Exception object if the found view is an exception view; it will be
``None`` otherwise.
View wrappers only last for the duration of a single request. You can add
such a factory for every request by using the
``pyramid.events.NewRequest`` subscriber::
from pyramid.events import subscriber, NewRequest
@subscriber(NewRequest)
def newrequest(event):
event.request.add_view_wrapper(wrapper_factory)
If more than one view wrapper is registered during a single request,
a 'later' view wrapper factory will be called with the result of its
directly former view wrapper factory as its ``view_callable``
argument; this chain will be returned to Pyramid as a single view
callable.
|
|
``rendering_val``. This can be used to introspect the value returned by a
view in a BeforeRender subscriber.
|
|
|
|
use ``/projects/pyramid/current`` rather than ``/projects/pyramid/dev``.
|
|
renderer is an object that can be used in advanced integration cases as
input to the view configuration ``renderer=`` argument. When the null
renderer is used as a view renderer argument, Pyramid avoids converting the
view callable result into a Response object. This is useful if you want to
reuse the view configuration and lookup machinery outside the context of
its use by the Pyramid router. This feature was added for consumption by
the ``pyramid_rpc`` package, which uses view configuration and lookup
outside the context of a router in exactly this way. ``pyramid_rpc`` has
been broken under 1.1 since 1.1b1; adding it allows us to make it work
again.
|
|
``pyramid.renderers.renderer_from_name`` which has seen use in the wild.
- Add a ``clone`` method to ``pyramid.renderers.RendererHelper`` for use by
the ``pyramid.view.view_config`` decorator.
|
|
compatibility with Python 2.4.
|
|
- Added more indexing markers to sections in documentation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
``pyramid.httpexceptions.WSGIHTTPException._set_default_attrs``;
stringifying thse may trigger code that should not be executed; see
https://github.com/Pylons/pyramid/issues/239
Closes #239
|
|
chapter.
|
|
|
|
- change prepare return value to a dict, and return the registry,
request, etc
- various docs and changelog entries.
|
|
|
|
``pyramid.i18n.Localizer.pluralize`` run using that domain/locale
combination raised an inscrutable "translations object has no attr 'plural'
error. Now, instead it "works" (it uses a germanic pluralization by
default). This is not the "right" thing really (it's nonsensical to try to
pluralize something without translations for that locale/domain available),
but it matches the behavior of ``pyramid.i18n.Localizer.translate`` so it's
at least consistent; see https://github.com/Pylons/pyramid/issues/235.
Closes #235.
|
|
|
|
|
|
deprecated ``pyramid.view.static`` class. ``pyramid.satic.static_view`` by
default serves up documents as the result of the request's ``path_info``,
attribute rather than it's ``subpath`` attribute (the inverse was true of
``pyramid.view.static``, and still is). ``pyramid.static.static_view``
exposes a ``use_subpath`` flag for use when you don't want the static view
to behave like the older deprecated version.
- The ``pyramid.view.static`` class has been deprecated in favor of the newer
``pyramid.static.static_view`` class. A deprecation warning is raised when
it is used. You should replace it with a reference to
``pyramid.static.static_view`` with the ``use_subpath=True`` argument.
|
|
rendererinfo to clear out old registry on a rescan. See
https://github.com/Pylons/pyramid/pull/234.
Closes #234.
|
|
|
|
been looked up correctly when using Pyramid with ``zope.interface`` 3.6.4
and better.
Closes #232.
|
|
exception view will be working with a request.response that has not been
touched by any code prior to the exception.
|
|
configuration file value ``prevent_http_cache``. These are synomymous and
allow you to prevent HTTP cache headers from being set by Pyramid's
``http_cache`` machinery globally in a process. see the "Influencing HTTP
Caching" section of the "View Configuration" narrative chapter and the
detailed documentation for this setting in the "Environment Variables and
Configuration Settings" narrative chapter.
- New documentation section in View Configuration narrative chapter:
"Influencing HTTP Caching".
|
|
inappropriately used ``DBSession.rollback()`` instead of
``transaction.abort()`` in one place.
- Wiki2 (SQLAlchemy + URL Dispatch) tutorial ``models.initialize_sql`` didn't
match the ``pyramid_routesalchemy`` scaffold function of the same name; it
didn't get synchronized when it was changed in the scaffold.
|
|
route to be added without an intermediate ``config.commit()``. If you now
receive a ``ConfigurationError`` at startup time that appears to be
``add_route`` related, you'll need to either a) ensure that all of your
route names are unique or b) call ``config.commit()`` before adding a
second route with the name of a previously added name or c) use a
Configurator that works in ``autocommit`` mode.
|
|
``__setitem__`` or ``update`` methods of the event object with a key that
already existed in the renderer globals dictionary, a ``KeyError`` was
raised. With the deprecation of the "add_renderer_globals" feature of the
configurator, there was no way to override an existing value in the
renderer globals dictionary that already existed. Now, the event object
will overwrite an older value that is already in the globals dictionary
when its ``__setitem__`` or ``update`` is called (as well as the new
``setdefault`` method), just like a plain old dictionary. As a result, for
maximum interoperability with other third-party subscribers, if you write
an event subscriber meant to be used as a BeforeRender subscriber, your
subscriber code will now need to (using ``.get`` or ``__contains__`` of the
event object) ensure no value already exists in the renderer globals
dictionary before setting an overriding value.
|
|
|