diff options
author | matt <matt@xcolour.net> | 2013-01-28 11:32:18 -0500 |
---|---|---|
committer | matt <matt@xcolour.net> | 2013-01-28 11:32:18 -0500 |
commit | 1afcb52d73271bbbd78f885451aa1b0e78c09871 (patch) | |
tree | 9145840d6036fcbc0b6647c88f679a567fa8c54d /docs/developer-features.txt | |
download | paste-git-stringio.tar.gz |
Import StringIO so it can be used.stringio
Diffstat (limited to 'docs/developer-features.txt')
-rw-r--r-- | docs/developer-features.txt | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/docs/developer-features.txt b/docs/developer-features.txt new file mode 100644 index 0000000..503d419 --- /dev/null +++ b/docs/developer-features.txt @@ -0,0 +1,148 @@ +Features +======== + +Testing +------- + +* A fixture for testing WSGI applications conveniently and in-process, + in :class:`paste.fixture.TestApp` + +* A fixture for testing command-line applications, also in + :class:`paste.fixture.TestFileEnvironment` + +* Check components for WSGI-compliance in :mod:`paste.lint` + +* Check filesystem changes, with :mod:`paste.debug.fsdiff` + +Server +------ + +* A threaded HTTP server in :mod:`paste.httpserver` + +* A tool for seeing and killing errant threads in the HTTP server, in + :mod:`paste.debug.watchthreads` + +Dispatching +----------- + +* Chain and cascade WSGI applications (returning the first non-error + response) in :mod:`paste.cascade` + +* Dispatch to several WSGI applications based on URL prefixes, in + :mod:`paste.urlmap` + +* Allow applications to make subrequests and forward requests + internally, in :mod:`paste.recursive` + +* Redirect error pages (e.g., 404 Not Found) to custom error pages, in + :mod:`paste.errordocument`. + +Web Application +--------------- + +* Easily deal with incoming requests and sending a response in + :mod:`paste.wsgiwrappers` + +* Work directly with the WSGI environment in :mod:`paste.request` + +* Run CGI programs as WSGI applications in :mod:`paste.cgiapp` + +* Traverse files and load WSGI applications from ``.py`` files (or + static files), in :mod:`paste.urlparser` + +* Serve static directories of files, also in :mod:`paste.urlparser`; also + serve using the Setuptools ``pkg_resources`` resource API. + +* Proxy to other servers, treating external HTTP servers as WSGI + applications, in :mod:`paste.proxy`. + +* Serve files (with support for ``If-Modified-Since``, etc) in + :mod:`paste.fileapp` + +Tools +----- + +* Catch HTTP-related exceptions (e.g., ``HTTPNotFound``) and turn them + into proper responses in :mod:`paste.httpexceptions` + +* Manage HTTP header fields with :mod:`paste.httpheaders` + +* Handle authentication/identification of requests in :mod:`paste.auth` + +* Create sessions in :mod:`paste.session` and :mod:`paste.flup_session` + +* Gzip responses in :mod:`paste.gzipper` + +* A wide variety of routines for manipulating WSGI requests and + producing responses, in :mod:`paste.request`, :mod:`paste.response` and + :mod:`paste.wsgilib`. + +* Create Apache-style logs in :mod:`paste.translogger` + +* Handy request and response wrappers in :mod:`paste.wsgiwrappers` + +* Handling of request-local module globals sanely in :mod:`paste.registry` + +Authentication +-------------- + +* Authentication using cookies in :mod:`paste.auth.cookie` and + :mod:`paste.auth.auth_tkt`; login form in :mod:`paste.auth.form` + +* Authentication using `OpenID <http://openid.net/>`_ in + :mod:`paste.auth.open_id`, using `CAS + <http://www.ja-sig.org/products/cas/>`_ in :mod:`paste.auth.cas` + +* HTTP authentication in :mod:`paste.auth.basic` and + :mod:`paste.auth.digest` + +* Dispatch to different authentication methods based on User-Agent, in + :mod:`paste.auth.multi` + +* Grant roles based on IP addresses, in :mod:`paste.auth.grantip` + +Debugging Filters +----------------- + +* Catch (optionally email) errors with extended tracebacks (using + Zope/ZPT conventions) in :mod:`paste.exceptions` + +* During debugging, show tracebacks with information about each stack + frame, including an interactive prompt that runs in the individual + stack frames, in :mod:`paste.evalexception`. + +* Catch errors presenting a `cgitb + <http://python.org/doc/current/lib/module-cgitb.html>`_-based + output, in :mod:`paste.cgitb_catcher`. + +* Profile each request and append profiling information to the HTML, + in :mod:`paste.debug.profile` + +* Capture ``print`` output and present it in the browser for + debugging, in :mod:`paste.debug.prints` + +* Validate all HTML output from applications using the `WDG Validator + <http://www.htmlhelp.com/tools/validator/>`_, appending any errors + or warnings to the page, in :mod:`paste.debug.wdg_validator` + +Other Tools +----------- + +* A file monitor to allow restarting the server when files have been + updated (for automatic restarting when editing code) in + :mod:`paste.reloader` + +* A class for generating and traversing URLs, and creating associated + HTML code, in :mod:`paste.url` + +* A small templating language (for internal use) in + :mod:`paste.util.template` + +* A class to help with loops in templates, in :mod:`paste.util.looper` + +* Import modules and objects given a string, in + :mod:`paste.util.import_string` + +* Ordered dictionary that can have multiple values with the same key, + in :mod:`paste.util.multidict` + |