Chris McDonough
2015-03-16 32d9a193c3e3caa2582dbb9c277f5c3a5e55973b
commit | author | age
051143 1 Pyramid TODOs
CM 2 =============
69364d 3
699da1 4 Should-Have
CM 5 -----------
63c1e0 6
CM 7 - https://github.com/Pylons/pyramid/issues#issue/67 (fixing would make it
8   possible to render a static site from a static dir).
14e91b 9
9afa52 10 - Consider per-form_id CSRF instead of per-session global CSRF token.
CM 11
ddf07e 12 - I18N support for pyramid_jinja2.  See also -
CM 13   http://groups.google.com/group/pylons-devel/msg/ab58353594b135c9 and
14   https://github.com/Pylons/pyramid_jinja2/pull/14 
15
019ece 16 - Speed up startup time (defer _bootstrap and registerCommonDirectives()
CM 17   until needed by ZCML, as well as unfound speedups).
18
38ddde 19 - Reversing (context, request) in function view callable arglist produces
CM 20   incomprehensible traceback::
21
22    def aview(request, context):
23        return {}
24
25    if __name__ == '__main__':
26        from pyramid.config import Configurator
27        from paste.httpserver import serve
28        c = Configurator()
29        c.add_view(aview, renderer='__main__:foo.pt')
30        serve(c.make_wsgi_app())
31
32    File "/home/chrism/projects/pyramid/pyramid/config.py", line 2981, in map_nonclass
33    ronly = requestonly(view, self.attr)
34    File "/home/chrism/projects/pyramid/pyramid/config.py", line 3071, in requestonly
35    if len(args) - len(defaults) == 1:
36    zope.configuration.config.ConfigurationExecutionError: <type 'exceptions.TypeError'>: object of type 'NoneType' has no len()                                    in:
37     ('reversed.py', 14, '<module>', "c.add_view(aview, renderer='__main__:foo.pt')")
6aa2b1 38
4ceb43 39 - Fix misleading conflict error reports for static views ala
CM 40   http://cluebin.appspot.com/pasted/7242843
41
cf0c36 42 - Nicer Mako exceptions in WebError.
CM 43
13d0e1 44 - Consider adding a default exception view for HTTPException and attendant
CM 45   ``redirect`` and ``abort`` functions ala Pylons.
46
e36332 47 - Add notes about renderer response attrs to request docs.
CM 48
8a93b2 49 - Add an example of using a cascade to serve static assets from the root.
CM 50
c93208 51 - Explore static file return from handler action using wsgiapp2 + fileapp.
83efb2 52
dc475b 53 - Static (URL-generation only) routes.
485ef6 54
3283ef 55 - Add narrative docs for wsgiapp and wsgiapp2.
165020 56
485ef6 57 - translationdir ZCML directive use of ``path_spec`` should maybe die.
8a93b2 58
CM 59 - Provide a response_set_cookie method on the request for rendered responses
60   that can be used as input to response.set_cookie?
98b0af 61
4c929e 62 - Make it possible to get at ACLDenied data from Forbidden response in
CM 63   exceptionview.
206188 64
CM 65 Nice-to-Have
66 ------------
75ca58 67
d1432f 68 - Better "Extending" chapter.
CM 69
94a527 70 - Try to make test suite pass on IronPython.
CM 71
f765a6 72 - Non-bwcompat use of threadlocals that need to be documented or ameliorated:
CM 73
74   security.principals_allowed_by_permission
75
76   resource.OverrideProvider._get_overrides: can't credibly be removed,
77   because it stores an overrideprovider as a module-scope global.
78
79   traversal.traverse: this API is a stepchild, and needs to be changed.
80
81   Configurator.add_translation_dirs: not passed any context but a message,
82   can't credibly be removed.
83
69364d 84 - Supply ``X-Vhm-Host`` support.
6fd5e1 85
9ec2d6 86 - Basic WSGI documentation (pipeline / app / server).
ff1213 87
0b3260 88 - Fix message catalog extraction / compilation documentation.
CM 89
84c5ec 90 - Change docs about creating a venusian decorator to not use ZCA.
a91594 91
250c02 92 - Try to better explain the relationship between a renderer and a
CM 93   template in the templates chapter and elsewhere.  Scan the
94   documentation for reference to a renderer as *only* view
95   configuration (it's a larger concept now).
388f9d 96
f07765 97 - Create a ``render_view`` that works by using config.derive_view
CM 98   against an existing view instead of querying the registry.
99
100 - Create a function which performs a recursive request.
101
baa634 102 - Debug option to print view matching decision.
303c16 103
345474 104 - Script or paster command that prints, for a given URL, the views
CM 105   that might match.  Underneath each potentially matching route, list
106   the predicates required.  Underneath each route+predicate set, print
107   each view that might match and its predicates.  E.g. with the input
108   URL ``/foo``::
109
110     '/foo' (foo_xhr)
111        xhr = True
112          (no view predicates)
113            mypackage.views.MyXHRFooView.__call__
114
115     '/{action}' (action_route)
116        request_method = 'POST'
117          action = '^foo$'
118            mypackage.views.MyView.foo_POST
119        request_method = 'GET'
120          action = '^foo$'
121            mypackage.views.MyView.foo_GET
5951ab 122
6d9191 123 - Raise an exception when a value in response_headerlist is not a
CM 124   string or decide to encode.
125
485ef6 126 - Update App engine chapter with less creaky directions.
d89aee 127
485ef6 128 - Add functionality that mocks the behavior of ``repoze.browserid``.
c8e78c 129
5f3fc0 130 - Consider implementing the API outlined in
CM 131   http://plope.com/pyramid_auth_design_api_postmortem, phasing out the
132   current auth-n-auth abstractions in a backwards compatible way.
133
9d3bd8 134 - Add doc string for BeforeRender event with more details.
BB 135