summaryrefslogtreecommitdiff
path: root/CHANGES.txt
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-06-18 21:49:33 +0000
committerChris McDonough <chrism@agendaless.com>2009-06-18 21:49:33 +0000
commitf5c25ef97393f7b4bf1353b11eeb841c53e2feaf (patch)
tree7c820aaa1a769dfc096aed05c50116821e89707a /CHANGES.txt
parent7687344b77fbc9c4bf998d20828b10a339b90eed (diff)
downloadpyramid-f5c25ef97393f7b4bf1353b11eeb841c53e2feaf.tar.gz
pyramid-f5c25ef97393f7b4bf1353b11eeb841c53e2feaf.tar.bz2
pyramid-f5c25ef97393f7b4bf1353b11eeb841c53e2feaf.zip
- Allow views to be *optionally* defined as callables that accept only
a request object, instead of both a context and a request (which still works, and always will). The following types work as views in this style: - functions that accept a single argument ``request``, e.g.:: def aview(request): pass - new and old-style classes that have an ``__init__`` method that accepts ``self, request``, e.g.:: def View(object): __init__(self, request): pass - Arbitrary callables that have a ``__call__`` method that accepts ``self, request``, e.g.:: def AView(object): def __call__(self, request): pass view = AView() This likely should have been the calling convention all along, as the request has ``context`` as an attribute already, and with views called as a result of URL dispatch, having the context in the arguments is not very useful. C'est la vie.
Diffstat (limited to 'CHANGES.txt')
-rw-r--r--CHANGES.txt30
1 files changed, 30 insertions, 0 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index c54385b3c..476048dc5 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -4,6 +4,36 @@ Next release
Features
--------
+- Allow views to be *optionally* defined as callables that accept only
+ a request object, instead of both a context and a request (which
+ still works, and always will). The following types work as views in
+ this style:
+
+ - functions that accept a single argument ``request``, e.g.::
+
+ def aview(request):
+ pass
+
+ - new and old-style classes that have an ``__init__`` method that
+ accepts ``self, request``, e.g.::
+
+ def View(object):
+ __init__(self, request):
+ pass
+
+ - Arbitrary callables that have a ``__call__`` method that accepts
+ ``self, request``, e.g.::
+
+ def AView(object):
+ def __call__(self, request):
+ pass
+ view = AView()
+
+ This likely should have been the calling convention all along, as
+ the request has ``context`` as an attribute already, and with views
+ called as a result of URL dispatch, having the context in the
+ arguments is not very useful. C'est la vie.
+
- Cache the absolute path in the caller's package globals within
``repoze.bfg.path`` to get rid of repeated (expensive) calls to
os.path.abspath.