summaryrefslogtreecommitdiff
path: root/CHANGES.txt
AgeCommit message (Collapse)Author
2012-02-22- New API: ``pyramid.config.Configurator.add_forbidden_view``. This is aChris McDonough
wrapper for ``pyramid.Config.configurator.add_view`` which does the right thing about permissions. It should be preferred over calling ``add_view`` directly with ``context=HTTPForbidden`` as was previously recommended. - New API: ``pyramid.view.forbidden_view_config``. This is a decorator constructor like ``pyramid.view.view_config`` that calls ``pyramid.config.Configurator.add_forbidden_view`` when scanned. It should be preferred over using ``pyramid.view.view_config`` with ``context=HTTPForbidden`` as was previously recommended. - Updated the "Creating a Not Forbidden View" section of the "Hooks" chapter, replacing explanations of registering a view using ``add_view`` or ``view_config`` with ones using ``add_forbidden_view`` or ``forbidden_view_config``. - Updated all tutorials to use ``pyramid.view.forbidden_view_config`` rather than ``pyramid.view.view_config`` with an HTTPForbidden context.
2012-02-22- New API: ``pyramid.config.Configurator.add_notfound_view``. This is aChris McDonough
wrapper for ``pyramid.Config.configurator.add_view`` which provides easy append_slash support. It should be preferred over calling ``add_view`` directly with ``context=HTTPNotFound`` as was previously recommended. - New API: ``pyramid.view.notfound_view_config``. This is a decorator constructor like ``pyramid.view.view_config`` that calls ``pyramid.config.Configurator.add_notfound_view`` when scanned. It should be preferred over using ``pyramid.view.view_config`` with ``context=HTTPNotFound`` as was previously recommended. - The older deprecated ``set_notfound_view`` Configurator method is now an alias for the new ``add_notfound_view`` Configurator method. This has the following impact: the ``context`` sent to views with a ``(context, request)`` call signature registered via the deprecated ``add_notfound_view``/``set_notfound_view`` will now be the HTTPNotFound exception object instead of the actual resource context found. Use ``request.context`` to get the actual resource context. It's also recommended to disuse ``set_notfound_view`` in favor of ``add_notfound_view``, despite the aliasing. - The API documentation for ``pyramid.view.append_slash_notfound_view`` and ``pyramid.view.AppendSlashNotFoundViewFactory`` was removed. These names still exist and are still importable, but they are no longer APIs. Use ``pyramid.config.Configurator.add_notfound_view(append_slash=True)`` or ``pyramid.view.notfound_view_config(append_slash=True)`` to get the same behavior. - The ``set_forbidden_view`` method of the Configurator was removed from the documentation. It has been deprecated since Pyramid 1.1. - The AppendSlashNotFoundViewFactory used request.path to match routes. This was wrong because request.path contains the script name, and this would cause it to fail in circumstances where the script name was not empty. It should have used request.path_info, and now does. - Updated the "Registering a Not Found View" section of the "Hooks" chapter, replacing explanations of registering a view using ``add_view`` or ``view_config`` with ones using ``add_notfound_view`` or ``notfound_view_config``. - Updated the "Redirecting to Slash-Appended Routes" section of the "URL Dispatch" chapter, replacing explanations of registering a view using ``add_view`` or ``view_config`` with ones using ``add_notfound_view`` or ``notfound_view_config``
2012-02-20- The static file response object used by ``config.add_static_view`` openedChris McDonough
the static file twice, when it only needed to open it once.
2012-02-20gardenChris McDonough
2012-02-20provide version numberChris McDonough
2012-02-20FeaturesChris McDonough
-------- - Add an ``introspection`` boolean to the Configurator constructor. If this is ``True``, actions registered using the Configurator will be registered with the introspector. If it is ``False``, they won't. The default is ``True``. Setting it to ``False`` during action processing will prevent introspection for any following registration statements, and setting it to ``True`` will start them up again. This addition is to service a requirement that the debug toolbar's own views and methods not show up in the introspector. Backwards Incompatibilities --------------------------- - Remove ``pyramid.config.Configurator.with_context`` class method. It was never an API, it is only used by ``pyramid_zcml`` and its functionality has been moved to that package's latest release. This means that you'll need to use the latest release of ``pyramid_zcml`` with this release of Pyramid. - The ``introspector`` argument to the ``pyramid.config.Configurator`` constructor API has been removed. It has been replaced by the boolean ``introspection`` flag. - The ``pyramid.registry.noop_introspector`` API object has been removed.
2012-02-19prep for 1.3a8Chris McDonough
2012-02-19- Create a "MakoRendererFactoryHelper" that provides customizable settingsChris McDonough
key prefixes. Allows settings prefixes other than "mako." to be used to create different factories that don't use the global mako settings. This will be useful for the debug toolbar, which can currently be sabotaged by someone using custom mako configuration settings.
2012-02-19- Put ``pyramid.includes`` targets within ini files in scaffolds on separateChris McDonough
lines in order to be able to tell people to comment out only the ``pyramid_debugtoolbar`` line when they want to disable the toolbar.
2012-02-17FeaturesChris McDonough
-------- - Add ``pyramid.config.Configurator.add_resource_url_adapter`` API method. See the Hooks narrative documentation section entitled "Changing How pyramid.request.Request.resource_url Generates a URL" for more information. This is not a new feature, it just provides an API for adding a resource url adapter without needing to use the ZCA API. - A new interface was added: ``pyramid.interfaces.IResourceURL``. An adapter implementing its interface can be used to override resource URL generation when ``request.resource_url`` is called. This interface replaces the now-deprecated ``pyramid.interfaces.IContextURL`` interface. - The dictionary passed to a resource's ``__resource_url__`` method (see "Overriding Resource URL Generation" in the "Resources" chapter) now contains an ``app_url`` key, representing the application URL generated during ``request.resource_url``. It represents a potentially customized URL prefix, containing potentially custom scheme, host and port information passed by the user to ``request.resource_url``. It should be used instead of ``request.application_url`` where necessary. - The ``request.resource_url`` API now accepts these arguments: ``app_url``, ``scheme``, ``host``, and ``port``. The app_url argument can be used to replace the URL prefix wholesale during url generation. The ``scheme``, ``host``, and ``port`` arguments can be used to replace the respective default values of ``request.application_url`` partially. - A new API named ``request.resource_path`` now exists. It works like ``request.resource_url`` but produces a relative URL rather than an absolute one. - The ``request.route_url`` API now accepts these arguments: ``_app_url``, ``_scheme``, ``_host``, and ``_port``. The ``_app_url`` argument can be used to replace the URL prefix wholesale during url generation. The ``_scheme``, ``_host``, and ``_port`` arguments can be used to replace the respective default values of ``request.application_url`` partially. Backwards Incompatibilities --------------------------- - The ``pyramid.interfaces.IContextURL`` interface has been deprecated. People have been instructed to use this to register a resource url adapter in the "Hooks" chapter to use to influence ``request.resource_url`` URL generation for resources found via custom traversers since Pyramid 1.0. The interface still exists and registering such an adapter still works, but this interface will be removed from the software after a few major Pyramid releases. You should replace it with an equivalent ``pyramid.interfaces.IResourceURL`` adapter, registered using the new ``pyramid.config.Configurator.add_resource_url_adapter`` API. A deprecation warning is now emitted when a ``pyramid.interfaces.IContextURL`` adapter is found when ``request.resource_url`` is called. Misc ---- - Change ``set_traverser`` API name to ``add_traverser``. Ref #438.
2012-02-15Use req instead of r for #413. It's more likely that somebody is already ↵Chris McDonough
passing something named r, and a template may depend on its existence or nonexistence to conditionalize rendering a bit of html.
2012-02-15add sentenceChris McDonough
2012-02-15- The system value ``r`` is now supplied to renderers as an alias forChris McDonough
``request``. This means that you can now, for example, in a template, do ``r.route_url(...)`` instead of ``request.route_url(...)``. Fixes #413.
2012-02-15- Add ``pyramid.config.Configurator.set_traverser`` API method. See theChris McDonough
Hooks narrative documentation section entitled "Changing the Traverser" for more information. This is not a new feature, it just provides an API for adding a traverser without needing to use the ZCA API.
2012-02-14- Don't create a ``session`` instance in SQLA Wiki tutorial, use rawChris McDonough
``DBSession`` instead (this is more common in real SQLA apps).
2012-02-14- Better error message when a .pyc-only module is ``config.include`` -ed.Chris McDonough
This is not permitted due to error reporting requirements, and a better error message is shown when it is attempted. Previously it would fail with something like "AttributeError: 'NoneType' object has no attribute 'rfind'". Fixed #420.
2012-02-14- Better error messages when a view callable returns a value that cannot beChris McDonough
converted to a response (for example, when a view callable returns a dictionary without a renderer defined, or doesn't return any value at all). The error message now contains information about the view callable itself as well as the result of calling it.
2012-02-09FeaturesChris McDonough
-------- - The ``scan`` method of a ``Configurator`` can be passed an ``ignore`` argument, which can be a string, a callable, or a list consisting of strings and/or callables. This feature allows submodules, subpackages, and global objects from being scanned. See http://readthedocs.org/docs/venusian/en/latest/#ignore-scan-argument for more information about how to use the ``ignore`` argument to ``scan``. Dependencies ------------ - Depend on ``venusian`` >= 1.0a3 to provide scan ``ignore`` support.
2012-02-08prep for 1.3a7Chris McDonough
2012-02-07Modified match_param to accept a tuple. Fixes #425.Michael Merickel
2012-02-07- Internal: catch unhashable discriminators early (raise an error instead ofChris McDonough
allowing them to find their way into resolveConflicts).
2012-01-30gardenChris McDonough
2012-01-22- More informative error message when a ``config.include`` cannot find anChris McDonough
``includeme``. See https://github.com/Pylons/pyramid/pull/392. Closes #392.
2012-01-21gardenChris McDonough
2012-01-21- The ``prequest`` script would fail when used against URLs which did notChris McDonough
return HTML or text. See https://github.com/Pylons/pyramid/issues/381 Fixes #381.
2012-01-21- The process will now restart when ``pserve`` is used with the ``--reload``Chris McDonough
flag when the ``development.ini`` file (any any other .ini file in use) is changed. See https://github.com/Pylons/pyramid/issues/377 and https://github.com/Pylons/pyramid/pull/411 Fixes #377.
2012-01-20prep for 1.3a6Chris McDonough
2012-01-19Backport fix for issue #407 to 1.3 branch.Chris McDonough
2012-01-19- When using a dotted name for a ``view`` argument toChris McDonough
``Configurator.add_view`` that pointed to a class with a ``view_defaults`` decorator, the view defaults would not be applied. See https://github.com/Pylons/pyramid/issues/396 . Fixes #396.
2012-01-19gardenChris McDonough
2012-01-16- Responses generated by Pyramid's ``static_view`` now useChris McDonough
a ``wsgi.file_wrapper`` (see http://www.python.org/dev/peps/pep-0333/#optional-platform-specific-file-handling) when one is provided by the web server.
2012-01-11Updated the changelogs.Michael Merickel
2012-01-09prep for 1.3a5Chris McDonough
2012-01-06- The ``path_info`` route and view predicates now match againstChris McDonough
``request.upath_info`` (Unicode) rather than ``request.path_info`` (indeterminate value based on Python 3 vs. Python 2). This has to be done to normalize matching on Python 2 and Python 3.
2012-01-06- The ``pyramid.view.view_defaults`` decorator did not work properly whenChris McDonough
more than one view relied on the defaults being different for configuration conflict resolution. See https://github.com/Pylons/pyramid/issues/394. Closes #394.
2012-01-05prep for 1.3a4Chris McDonough
2012-01-05gardenChris McDonough
2012-01-05- Using a dynamic segment named ``traverse`` in a route pattern like this::Chris McDonough
config.add_route('trav_route', 'traversal/{traverse:.*}') Would cause a ``UnicodeDecodeError`` when the route was matched and the matched portion of the URL contained any high-order characters. See also https://github.com/Pylons/pyramid/issues/385 .
2012-01-05gardenChris McDonough
2012-01-03- The documentation of ``pyramid.events.subscriber`` indicated that using itChris McDonough
as a decorator with no arguments like this:: @subscriber() def somefunc(event): pass Would register ``somefunc`` to receive all events sent via the registry, but this was untrue. Instead, it would receive no events at all. This has now been fixed and the code matches the documentation. See also https://github.com/Pylons/pyramid/issues/386 Closes #386
2012-01-02- Use the ``waitress`` WSGI server instead of ``wsgiref`` in scaffolding.Chris McDonough
2011-12-30Updated the changelog for Request.set_property.Michael Merickel
2011-12-21prep for 1.3a3Chris McDonough
2011-12-21- Add undocumented ``__discriminator__`` API to derived view callables.Chris McDonough
e.g. ``adapters.lookup(...).__discriminator__(context, request)``. It will be used by superdynamic systems that require the discriminator to be used for introspection after manual view lookup.
2011-12-16- Removed the "Running Pyramid on Google App Engine" tutorial from the mainChris McDonough
docs. It survives on in the Cookbook (http://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/gae.html). Rationale: it provides the correct info for the Python 2.5 version of GAE only, and this version of Pyramid does not support Python 2.5.
2011-12-15- Added a section named "Making Your Script into a Console Script" in theChris McDonough
"Command-Line Pyramid" chapter.
2011-12-15- Normalized exit values and ``-h`` output for all ``p*`` scriptsChris McDonough
(``pviews``, ``proutes``, etc).
2011-12-15finish prequest featureChris McDonough
2011-12-14prep for 1.3a2Chris McDonough
2011-12-14- Changed scaffolding machinery around a bit to make it easier for people whoChris McDonough
want to have extension scaffolds that can work across Pyramid 1.0.X, 1.1.X, 1.2.X and 1.3.X. See the new "Creating Pyramid Scaffolds" chapter in the narrative documentation for more info. - Added an API docs chapter for ``pyramid.scaffolds``. - Added a narrative docs chapter named "Creating Pyramid Scaffolds". - The ``template_renderer`` method of ``pyramid.scaffolds.PyramidScaffold`` was renamed to ``render_template``. If you were overriding it, you're a bad person, because it wasn't an API before now. But we're nice so we're letting you know.