summaryrefslogtreecommitdiff
path: root/docs/developer-features.txt
diff options
context:
space:
mode:
Diffstat (limited to 'docs/developer-features.txt')
-rw-r--r--docs/developer-features.txt148
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`
+