• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Features
2========
3
4Testing
5-------
6
7* A fixture for testing WSGI applications conveniently and in-process,
8  in :class:`paste.fixture.TestApp`
9
10* A fixture for testing command-line applications, also in
11  :class:`paste.fixture.TestFileEnvironment`
12
13* Check components for WSGI-compliance in :mod:`paste.lint`
14
15* Check filesystem changes, with :mod:`paste.debug.fsdiff`
16
17Server
18------
19
20* A threaded HTTP server in :mod:`paste.httpserver`
21
22* A tool for seeing and killing errant threads in the HTTP server, in
23  :mod:`paste.debug.watchthreads`
24
25Dispatching
26-----------
27
28* Chain and cascade WSGI applications (returning the first non-error
29  response) in :mod:`paste.cascade`
30
31* Dispatch to several WSGI applications based on URL prefixes, in
32  :mod:`paste.urlmap`
33
34* Allow applications to make subrequests and forward requests
35  internally, in :mod:`paste.recursive`
36
37* Redirect error pages (e.g., 404 Not Found) to custom error pages, in
38  :mod:`paste.errordocument`.
39
40Web Application
41---------------
42
43* Easily deal with incoming requests and sending a response in
44  :mod:`paste.wsgiwrappers`
45
46* Work directly with the WSGI environment in :mod:`paste.request`
47
48* Run CGI programs as WSGI applications in :mod:`paste.cgiapp`
49
50* Traverse files and load WSGI applications from ``.py`` files (or
51  static files), in :mod:`paste.urlparser`
52
53* Serve static directories of files, also in :mod:`paste.urlparser`; also
54  serve using the Setuptools ``pkg_resources`` resource API.
55
56* Proxy to other servers, treating external HTTP servers as WSGI
57  applications, in :mod:`paste.proxy`.
58
59* Serve files (with support for ``If-Modified-Since``, etc) in
60  :mod:`paste.fileapp`
61
62Tools
63-----
64
65* Catch HTTP-related exceptions (e.g., ``HTTPNotFound``) and turn them
66  into proper responses in :mod:`paste.httpexceptions`
67
68* Manage HTTP header fields with :mod:`paste.httpheaders`
69
70* Handle authentication/identification of requests in :mod:`paste.auth`
71
72* Create sessions in :mod:`paste.session` and :mod:`paste.flup_session`
73
74* Gzip responses in :mod:`paste.gzipper`
75
76* A wide variety of routines for manipulating WSGI requests and
77  producing responses, in :mod:`paste.request`, :mod:`paste.response` and
78  :mod:`paste.wsgilib`.
79
80* Create Apache-style logs in :mod:`paste.translogger`
81
82* Handy request and response wrappers in :mod:`paste.wsgiwrappers`
83
84* Handling of request-local module globals sanely in :mod:`paste.registry`
85
86Authentication
87--------------
88
89* Authentication using cookies in :mod:`paste.auth.cookie` and
90  :mod:`paste.auth.auth_tkt`; login form in :mod:`paste.auth.form`
91
92* Authentication using `OpenID <http://openid.net/>`_ in
93  :mod:`paste.auth.open_id`, using `CAS
94  <http://www.ja-sig.org/products/cas/>`_ in :mod:`paste.auth.cas`
95
96* HTTP authentication in :mod:`paste.auth.basic` and
97  :mod:`paste.auth.digest`
98
99* Dispatch to different authentication methods based on User-Agent, in
100  :mod:`paste.auth.multi`
101
102* Grant roles based on IP addresses, in :mod:`paste.auth.grantip`
103
104Debugging Filters
105-----------------
106
107* Catch (optionally email) errors with extended tracebacks (using
108  Zope/ZPT conventions) in :mod:`paste.exceptions`
109
110* During debugging, show tracebacks with information about each stack
111  frame, including an interactive prompt that runs in the individual
112  stack frames, in :mod:`paste.evalexception`.
113
114* Catch errors presenting a `cgitb
115  <http://python.org/doc/current/lib/module-cgitb.html>`_-based
116  output, in :mod:`paste.cgitb_catcher`.
117
118* Profile each request and append profiling information to the HTML,
119  in :mod:`paste.debug.profile`
120
121* Capture ``print`` output and present it in the browser for
122  debugging, in :mod:`paste.debug.prints`
123
124* Validate all HTML output from applications using the `WDG Validator
125  <http://www.htmlhelp.com/tools/validator/>`_, appending any errors
126  or warnings to the page, in :mod:`paste.debug.wdg_validator`
127
128Other Tools
129-----------
130
131* A file monitor to allow restarting the server when files have been
132  updated (for automatic restarting when editing code) in
133  :mod:`paste.reloader`
134
135* A class for generating and traversing URLs, and creating associated
136  HTML code, in :mod:`paste.url`
137
138* A small templating language (for internal use) in
139  :mod:`paste.util.template`
140
141* A class to help with loops in templates, in :mod:`paste.util.looper`
142
143* Import modules and objects given a string, in
144  :mod:`paste.util.import_string`
145
146* Ordered dictionary that can have multiple values with the same key,
147  in :mod:`paste.util.multidict`
148
149