summaryrefslogtreecommitdiff
path: root/docs/api
AgeCommit message (Collapse)Author
2011-07-31- A new attribute is available on request objects: ``exc_info``. Its valueChris McDonough
will be ``None`` until an exception is caught by the Pyramid router, after which it will be the result of ``sys.exc_info()``.
2011-07-28mergeChris McDonough
2011-07-24fix merge conflictsChris McDonough
2011-07-24back this feature out; we'll try a different approachChris McDonough
2011-07-24first cutChris McDonough
2011-07-23- New method: ``pyramid.request.Request.add_view_mapper``. A view wrapper isChris McDonough
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.
2011-07-21- Added the ``pyramid.renderers.null_renderer`` object as an API. The nullChris McDonough
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.
2011-07-16Reworked pyramid.scripting. Modified docs and made make_request private.Michael Merickel
Renamed make_request to _make_request to make clear that it's not a private API. p.scripting.prepare now raises an exception if no valid pyramid app can be found to avoid obscure errors later on.
2011-07-15remove bogus information about route_name, refer to the right method of ↵Chris McDonough
Configurator when describing global_registries, add http_cache newness warning
2011-07-15- get_root2 -> prepareChris McDonough
- change prepare return value to a dict, and return the registry, request, etc - various docs and changelog entries.
2011-07-14Added test coverage for p.paster.bootstrap.Michael Merickel
2011-07-14Added p.paster.bootstrap for handling simple loading of INI files.Michael Merickel
2011-07-14Added p.scripting.get_root2 that doesn't require an app arg.Michael Merickel
2011-07-14Added some docs for make_request and global_registries.Michael Merickel
2011-07-14- New API class: ``pyramid.static.static_view``. This supersedes theChris McDonough
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.
2011-07-11Decorator version of config.add_response_adapter.Manuel Hermann
2011-07-10Merge branch 'feature.pshell' of https://github.com/mmerickel/pyramid into ↵Chris McDonough
mmerickel-feature.pshell
2011-07-09request.json -> request.json_body; add some docs for json_bodyChris McDonough
2011-07-07Added/updated documentation for the new interactive shell.Michael Merickel
2011-07-04- New request attribute: ``json``. If the request's ``content_type`` isChris McDonough
``application/json``, this attribute will contain the JSON-decoded variant of the request body. If the request's ``content_type`` is not ``application/json``, this attribute will be ``None``.
2011-07-01- Deprecated the ``set_renderer_globals_factory`` method of the ConfiguratorChris McDonough
and the ``renderer_globals`` Configurator constructor parameter.
2011-07-01Add JSONP rendererChris McDonough
2011-06-20responsecode -> exception_responseChris McDonough
2011-06-14merge httpexception-utils branchChris McDonough
2011-06-14- Added new add_response_adapter method to Configurator.Chris McDonough
- Fix Configurator docstring wrt exception responses. - Speed up registry.queryAdapterOrSelf
2011-06-13- Remove IResponder abstraction in favor of more general IResponseChris McDonough
abstraction. - 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.
2011-06-11- Pyramid now expects Response objects to have a __call__Chris McDonough
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.
2011-06-04- It is now possible to control how the Pyramid router calls the WSGIChris McDonough
``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
2011-05-25Added a simple session-based authentication policy.Michael Merickel
2011-05-16- Added API docs for ``pyramid.httpexceptions.abort`` andChris McDonough
``pyramid.httpexceptions.redirect``. - 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 ``webob.exc.HTTPException``. - 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).
2011-05-13- Added documentation for a "multidict" (e.g. the API of ``request.POST``) asChris McDonough
interface API documentation.
2011-04-19renderingChris McDonough
2011-04-19renderingChris McDonough
2011-04-19clarifyChris McDonough
2011-04-18- Deprecated all assignments to ``request.response_*`` attributes such asChris McDonough
``request.response_content_type = 'foo'``. Assignments and mutations of the following request attributes that were considered by the framework for response influence are now deprecated: ``response_content_type``, ``response_headerlist``, ``response_status``, ``response_charset``, and ``response_cache_for``. Instead of assigning these to the request object for detection by the rendering machinery, users should use the appropriate API of the Response object created by accessing ``request.response`` (e.g. ``request.response_content_type = 'abc'`` -> ``request.response.content_type = 'abc'``). - Custom request objects are now required to have a ``response`` attribute (or reified property) if they are meant to be used with renderers. This ``response`` attribute should be an instance of the class ``pyramid.response.Response``. - The JSON and string renderer factories now use ``request.response.content_type`` rather than ``request.response_content_type``. They determine whether they should set the content type of the response by comparing the response's content type against the default (usually ``text/html``); if the content type is not the default, the renderer changes the content type (to ``application/json`` or ``text/plain`` for JSON and string renderers respectively). - Made it possible to assign to and delete ``pyramid.testing.DummyRequest.registry`` (bugfix).
2011-04-13- Add missing docs reference toChris McDonough
``pyramid.config.Configurator.set_view_mapper`` and refer to it within Hooks chapter section named "Using a View Mapper".
2011-04-13- Make ``pyramid.interfaces.IAuthenticationPolicy`` andChris McDonough
``pyramid.interfaces.IAuthorizationPolicy`` public interfaces, and refer to them within the ``pyramid.authentication`` and ``pyramid.authorization`` API docs. - Render the function definitions for each exposed interface in ``pyramid.interfaces``. Closes #167.
2011-03-28branch coverageChris McDonough
2011-03-09leave some breadcrumbs for finding renderered response attribute settingsChris McDonough
2011-02-12Add make_localizer function & docs & testsChristopher Lambacher
2011-01-29extend description of settingsChris McDonough
2011-01-28- Removed API documentation for ``pyramid.testing`` APIs namedChris McDonough
``registerDummySecurityPolicy``, ``registerResources``, ``registerModels``, ``registerEventListener``, ``registerTemplateRenderer``, ``registerDummyRenderer``, ``registerView``, ``registerUtility``, ``registerAdapter``, ``registerSubscriber``, ``registerRoute``, and ``registerSettings``. - Deprecated-since-BFG-1.2 APIs from ``pyramid.testing`` now properly emit deprecation warnings.
2011-01-21- Add docs for ``add_finished_callback``, ``add_response_callback``,Chris McDonough
``route_path``, ``route_url``, and ``static_url`` methods to ``pyramid.request.Request`` API docs.
2011-01-19- Added "Adding Methods to the Configurator via ``add_directive``" section toChris McDonough
Advanced Configuration narrative chapter.
2011-01-18- The ``make_app`` function has been removed from the ``pyramid.router``Chris McDonough
module. It continues life within the ``pyramid_zcml`` package. This leaves the ``pyramid.router`` module without any API functions. - The ``configure_zcml`` setting within the deployment settings (within ``**settings`` passed to a Pyramid ``main`` function) has ceased to have any meaning. - The ``starter_zcml`` paster template has been moved to the ``pyramid_zcml`` package. - The ``bfg2pyramid`` script now converts ZCML include tags that have ``repoze.bfg.includes`` as a package attribute to the value ``pyramid_zcml``. For example, ``<include package="repoze.bfg.includes">`` will be converted to ``<include package="pyramid_zcml">``. - The ``load_zcml`` method of a Configurator has been removed from the Pyramid core. Loading ZCML is now a feature of the ``pyramid_zcml`` package, which can be downloaded from PyPI. Documentation for the package should be available via http://pylonsproject.org, which describes how to get this method back after depending upon ``pyramid_zcml`` as an ``install_requires`` dependency. - The ``pyramid.includes`` subpackage has been removed. ZCML files which use include the package ``pyramid.includes`` (e.g. ``<include package="pyramid.includes">``) now must include the ``pyramid_zcml`` package instead (e.g. ``<include package="pyramid_zcml"/>). - The "Declarative Configuration" narrative chapter has been removed (it was moved to the ``pyramid_zcml`` pakcage). - The add_directive method now accepts an "action_wrap" flag. - Fix some orphaned references. - Remove some docstring references to ZCML directives. - All integration test fixtures have been changed to use imperative configuration rather than ZCML configuration.
2011-01-16Remove configurator.add_handler, handler-related functions and methods from ↵Chris McDonough
pyramid.view, handler ZCML directive. This functionality is to be moved to a "pyramid_handlers" package. Fix add_directive to properly persist directives across configurator creations.
2011-01-16simplify slightlyChris McDonough
2011-01-03- Add a new API ``pyramid.url.current_route_url``, which computes a URL basedChris McDonough
on the "current" route (if any) and its matchdict values.
2011-01-01- The class ``pyramid.authentication.AuthTktCookieHelper`` is now an API.Chris McDonough
This class can be used by third-party authentication policy developers to help in the mechanics of authentication cookie-setting.
2010-12-31- The ``pyramid.interfaces.IAuthenticationPolicy`` interface now specifies anChris McDonough
``unauthenticated_userid`` method. This method supports an important optimization required by people who are using persistent storages which do not support object caching and whom want to create a "user object" as a request attribute. - A new API has been added to the ``pyramid.security`` module named ``unauthenticated_userid``. This API function calls the ``unauthenticated_userid`` method of the effective security policy. - An ``unauthenticated_userid`` method has been added to the dummy authentication policy returned by ``pyramid.config.Configurator.testing_securitypolicy``. It returns the same thing as that the dummy authentication policy's ``authenticated_userid`` method. - Since the ``pyramid.interfaces.IAuthenticationPolicy`` interface now specifies that a policy implementation must implement an ``unauthenticated_userid`` method, all third-party custom authentication policies now must implement this method. It, however, will only be called when the global function named ``pyramid.security.unauthenticated_userid`` is invoked, so if you're not invoking that, you will not notice any issues. - The (non-API) method of all internal authentication policy implementations previously named ``_get_userid`` is now named ``unauthenticated_userid``, promoted to an API method. If you were overriding this method, you'll now need to override it as ``unauthenticated_userid`` instead.