Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
180 lines (122 sloc) 5.72 KB
Pyramid TODOs
- config.set_registry_attr (with conflict detection).
- _fix_registry should dictify the registry being fixed.
- Provide the presumed renderer name to the called view as an attribute of
the request.
- Have action methods return their discriminators.
- Add docs about upgrading between Pyramid versions (e.g. how to see
deprecation warnings).
- Fix renderers chapter to better document system values passed to template
- Modify view mapper narrative docs to not use pyramid_handlers.
- Modify the urldispatch chapter examples to assume a scan rather than
- Introspection:
* ``default root factory`` category (prevent folks from needing to searh
"root factories" category)?
* ``default view mapper`` category (prevent folks from needing to search
"view mappers" category)?
* get rid of "tweens" category (can't sort properly?)
- Fix deployment recipes in cookbook (discourage proxying without changing
- Try "with transaction.manager" in an exception view with SQLA (preempt
homina homina response about how to write "to the database" from within in
an exception view). Note: tried this and couldn't formulate the right
situation where the database could not be written to within an exception
view (but didn't try exhaustively).
- Add narrative docs for wsgiapp and wsgiapp2.
- Flesh out "Paste" narrative docs chapter.
- Basic WSGI documentation (pipeline / app / server).
- Change docs about creating a venusian decorator to not use ZCA (use
configurator methods instead).
- Try to better explain the relationship between a renderer and a template in
the templates chapter and elsewhere. Scan the documentation for reference
to a renderer as *only* view configuration (it's a larger concept now).
- Add better docs about what-to-do-when-behind-a-proxy: paste.urlmap ("/foo =
app1" and "domain app1.localhost = app1"), ProxyPreserveHost and the nginx
equivalent, preserving HTTPS URLs.
- Make "localizer" a property of request (instead of requiring
- Alias the stupid long default session factory name.
- Debug option to print view matching decision (e.g. debug_viewlookup or so).
- Non-bwcompat use of threadlocals that need to be documented or ameliorated:
resource.OverrideProvider._get_overrides: can't credibly be removed,
because it stores an overrideprovider as a module-scope global.
traversal.traverse: this API is a stepchild, and needs to be changed.
Configurator.add_translation_dirs: not passed any context but a message,
can't credibly be removed.
- Deprecate (it only works for
- Provide a ``has_view`` function.
- Update App engine chapter with less creaky directions.
- Idea from Zart:
diff --git a/pyramid/ b/pyramid/
index b0e4d79..b3bd82a 100644
--- a/pyramid/
+++ b/pyramid/
@@ -8,6 +8,7 @@ from paste.deploy import (
from pyramid.compat import configparser
from logging.config import fileConfig
from pyramid.scripting import prepare
+from pyramid.config import Configurator
def get_app(config_uri, name=None, loadapp=loadapp):
""" Return the WSGI application named ``name`` in the PasteDeploy
@@ -111,3 +112,10 @@ def bootstrap(config_uri, request=None):
env['app'] = app
return env
+def make_pyramid_app(global_conf, app=None, **settings):
+ """Return pyramid application configured with provided settings"""
+ config = Configurator(package='pyramid', settings=settings)
+ if app:
+ config.include(app)
+ app = config.make_wsgi_app()
+ return app
diff --git a/ b/
index 03ebb42..91e0e21 100644
--- a/
+++ b/
@@ -118,6 +118,8 @@ setup(name='pyramid',
wsgiref = pyramid.scripts.pserve:wsgiref_server_runner
cherrypy = pyramid.scripts.pserve:cherrypy_server_runner
+ [paster.app_factory]
+ main = pyramid.paster:make_pyramid_app
- 1.5: remove ``pyramid.view.static`` and ``pyramid.view.is_response``.
- 1.5: turn ``pyramid.settings.Settings`` into a function that returns the
original dict (after ``__getattr__`` deprecation period, it was deprecated
in 1.2).
- 1.5: Remove ``pyramid.requests.DeprecatedRequestMethodsMixin`` and code in
renderers module that looks for _response_content_type, et. al.
- 1.5: Maybe? deprecate set_request_property in favor of pointing people at
add_request_method, schedule removal for 1.8?
- 1.5: Remove pyramid.config.rendering set_renderer_globals_factory maybe.
- 1.5: remove pyramid.config.route _add_view_from_route function.
- 1.6: Remove IContextURL and TraversalContextURL.
Probably Bad Ideas
- Add functionality that mocks the behavior of ``repoze.browserid``.
- Consider implementing the API outlined in, phasing out the
current auth-n-auth abstractions in a backwards compatible way.
- Maybe add ``add_renderer_globals`` method to Configurator.
- Supply ``X-Vhm-Host`` support (probably better to do what paste#prefix
middleware does).
- Have ``remember`` and ``forget`` actually set headers on the response using
a response callback (and return the empty list)?
instead of thread locals
- Context manager for creating a new configurator (replacing
``with_package``). E.g.::
with config.partial(package='bar') as c:
with config.partial(introspection=False) as c:
Something went wrong with that request. Please try again.