forked from Pylons/pyramid
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO.txt
132 lines (88 loc) · 4.43 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
Pyramid TODOs
=============
Must-Have (before 1.0)
----------------------
- Add a ``handler`` ZCML directive. This implies some slightly dicey
refactoring of the configurator to allow it to generate ZCML
"discriminators" for views and routes.
- Provide a .flash API on session object.
- Make default renderer work (renderer registered with no name, which is
active for every view unless the view names a specific renderer).
- Use ``@register_view`` instead of ``@view_config`` and change view docs to
use "view registration" instead of "view configuration".
- SQLAlchemy idiomatics:
<RaFromBRC> mcdonc: those paster templates all look pretty good... the
only thing i'd consider is adjusting your config variable names to match
exactly what sqlalchemy uses as parameter names, see here:
http://www.sqlalchemy.org/docs/core/engines.html
<RaFromBRC> mcdonc: especially in the pylons_sqla ini file, where the db
initialization is mixed in w/ the app config...
<RaFromBRC> ... i'd use "sqlalchemy.PARAMETER" for all of the sqla
settings, so it could easily be handed to engine_from_config w/o any need
to parse by hand
<RaFromBRC> mcdonc: in the other ini files, where sqlalchemy is given its
own part, the "sqlalchemy." prefix probably isn't necessary, but matching
the parameter names (e.g. 'url' instead of 'db_string') is still probably
a good idea
- Non-bwcompat use of threadlocals that need to be documented or ameliorated:
security.principals_allowed_by_permission
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.
- Better ``config.add_handler`` documentation.
- Fix DottedNameResolver to not convert ImportError to ConfigurationError if
the import that failed was unrelated to the import requested via a dotted
name.
Should-Have
-----------
- Try to make test suite pass on IronPython.
- Add docs for httpexceptions module for each webob.exc class that inherits
from WSGIHTTPException.
- Create a ``docs`` directory for each paster template.
- Remove "BFG" from Pyramid-specific environ variables.
- translationdir ZCML directive use of ``path_spec`` should maybe die.
- Add CRSF token creation/checking machinery (only "should have" vs. "must
have" because I'm not sure it belongs in Pyramid.. it definitely must exist
in formgen libraries, and *might* belong in Pyramid).
- Change "Cleaning up After a Request" in the urldispatch chapter to
use ``request.add_response_callback``.
Nice-to-Have
------------
- Supply ``X-Vhm-Host`` support.
- Basic WSGI documentation (pipeline / app / server).
- Fix message catalog extraction / compilation documentation.
- Change docs about creating a venusian decorator to not use ZCA.
- ``decorator=`` parameter to bfg_view.
- 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).
- Create a ``render_view`` that works by using config.derive_view
against an existing view instead of querying the registry.
- Create a function which performs a recursive request.
- Debug option to print route matching decision.
- Debug option to print view matching decision.
- Script or paster command that prints, for a given URL, the views
that might match. Underneath each potentially matching route, list
the predicates required. Underneath each route+predicate set, print
each view that might match and its predicates. E.g. with the input
URL ``/foo``::
'/foo' (foo_xhr)
xhr = True
(no view predicates)
mypackage.views.MyXHRFooView.__call__
'/{action}' (action_route)
request_method = 'POST'
action = '^foo$'
mypackage.views.MyView.foo_POST
request_method = 'GET'
action = '^foo$'
mypackage.views.MyView.foo_GET
- Provide a response_cookies attribute on the request for rendered
responses that can be used as input to response.set_cookie.
- Raise an exception when a value in response_headerlist is not a
string or decide to encode.
- Update App engine chapter with less creaky directions.
- Add functionality that mocks the behavior of ``repoze.browserid``.