README.chromium
README.rst
1 Paste provides several pieces of "middleware" (or filters) that can be nested
2 to build web applications. Each piece of middleware uses the WSGI (`PEP 333`_)
3 interface, and should be compatible with other middleware based on those
4 interfaces.
5
6 .. _PEP 333: http://www.python.org/dev/peps/pep-0333.html
7
8 * `Paste project at Bitbucket (source code, bug tracker)
9 <https://bitbucket.org/ianb/paste/>`_
10 * `Paste on the Python Cheeseshop (PyPI)
11 <https://pypi.python.org/pypi/Paste>`_
12 * `Paste documentation
13 <http://pythonpaste.org/>`_
14
15 See also:
16
17 * `PasteDeploy <http://pythonpaste.org/deploy/>`_
18 * `PasteScript <http://pythonpaste.org/script/>`_
19 * `WebTest <http://webtest.pythonpaste.org/>`_
20 * `WebOb <http://docs.webob.org/>`_
21
22 Includes these features...
23
24 Testing
25 -------
26
27 * A fixture for testing WSGI applications conveniently and in-process,
28 in ``paste.fixture``
29
30 * A fixture for testing command-line applications, also in
31 ``paste.fixture``
32
33 * Check components for WSGI-compliance in ``paste.lint``
34
35 Dispatching
36 -----------
37
38 * Chain and cascade WSGI applications (returning the first non-error
39 response) in ``paste.cascade``
40
41 * Dispatch to several WSGI applications based on URL prefixes, in
42 ``paste.urlmap``
43
44 * Allow applications to make subrequests and forward requests
45 internally, in ``paste.recursive``
46
47 Web Application
48 ---------------
49
50 * Run CGI programs as WSGI applications in ``paste.cgiapp``
51
52 * Traverse files and load WSGI applications from ``.py`` files (or
53 static files), in ``paste.urlparser``
54
55 * Serve static directories of files, also in ``paste.urlparser``; also
56 in that module serving from Egg resources using ``pkg_resources``.
57
58 Tools
59 -----
60
61 * Catch HTTP-related exceptions (e.g., ``HTTPNotFound``) and turn them
62 into proper responses in ``paste.httpexceptions``
63
64 * Several authentication techniques, including HTTP (Basic and
65 Digest), signed cookies, and CAS single-signon, in the
66 ``paste.auth`` package.
67
68 * Create sessions in ``paste.session`` and ``paste.flup_session``
69
70 * Gzip responses in ``paste.gzip``
71
72 * A wide variety of routines for manipulating WSGI requests and
73 producing responses, in ``paste.request``, ``paste.response`` and
74 ``paste.wsgilib``
75
76 Debugging Filters
77 -----------------
78
79 * Catch (optionally email) errors with extended tracebacks (using
80 Zope/ZPT conventions) in ``paste.exceptions``
81
82 * Catch errors presenting a `cgitb
83 <http://docs.python.org/2/library/cgitb.html>`_-based
84 output, in ``paste.cgitb_catcher``.
85
86 * Profile each request and append profiling information to the HTML,
87 in ``paste.debug.profile``
88
89 * Capture ``print`` output and present it in the browser for
90 debugging, in ``paste.debug.prints``
91
92 * Validate all HTML output from applications using the `WDG Validator
93 <http://www.htmlhelp.com/tools/validator/>`_, appending any errors
94 or warnings to the page, in ``paste.debug.wdg_validator``
95
96 Other Tools
97 -----------
98
99 * A file monitor to allow restarting the server when files have been
100 updated (for automatic restarting when editing code) in
101 ``paste.reloader``
102
103 * A class for generating and traversing URLs, and creating associated
104 HTML code, in ``paste.url``
105
106 The official development repo is at https://bitbucket.org/ianb/paste.
107
108 For the latest changes see the `news file
109 <http://pythonpaste.org/news.html>`_.
110