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 /setup.py | |
download | paste-git-stringio.tar.gz |
Import StringIO so it can be used.stringio
Diffstat (limited to 'setup.py')
-rw-r--r-- | setup.py | 193 |
1 files changed, 193 insertions, 0 deletions
diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..624ae25 --- /dev/null +++ b/setup.py @@ -0,0 +1,193 @@ +# If true, then the svn revision won't be used to calculate the +# revision (set to True for real releases) +RELEASE = False + +__version__ = '1.7.5.1' + +from setuptools import setup, find_packages +import sys, os +sys.path.insert(0, os.path.join(os.path.dirname(__file__), + 'paste', 'util')) +import finddata + +setup(name="Paste", + version=__version__, + description="Tools for using a Web Server Gateway Interface stack", + long_description="""\ +These provide several pieces of "middleware" (or filters) that can be nested to build web applications. Each +piece of middleware uses the WSGI (`PEP 333`_) interface, and should +be compatible with other middleware based on those interfaces. + +.. _PEP 333: http://www.python.org/peps/pep-0333.html + +Includes these features... + +Testing +------- + +* A fixture for testing WSGI applications conveniently and in-process, + in ``paste.fixture`` + +* A fixture for testing command-line applications, also in + ``paste.fixture`` + +* Check components for WSGI-compliance in ``paste.lint`` + +Dispatching +----------- + +* Chain and cascade WSGI applications (returning the first non-error + response) in ``paste.cascade`` + +* Dispatch to several WSGI applications based on URL prefixes, in + ``paste.urlmap`` + +* Allow applications to make subrequests and forward requests + internally, in ``paste.recursive`` + +Web Application +--------------- + +* Run CGI programs as WSGI applications in ``paste.cgiapp`` + +* Traverse files and load WSGI applications from ``.py`` files (or + static files), in ``paste.urlparser`` + +* Serve static directories of files, also in ``paste.urlparser``; also + in that module serving from Egg resources using ``pkg_resources``. + +Tools +----- + +* Catch HTTP-related exceptions (e.g., ``HTTPNotFound``) and turn them + into proper responses in ``paste.httpexceptions`` + +* Several authentication techniques, including HTTP (Basic and + Digest), signed cookies, and CAS single-signon, in the + ``paste.auth`` package. + +* Create sessions in ``paste.session`` and ``paste.flup_session`` + +* Gzip responses in ``paste.gzip`` + +* A wide variety of routines for manipulating WSGI requests and + producing responses, in ``paste.request``, ``paste.response`` and + ``paste.wsgilib`` + +Debugging Filters +----------------- + +* Catch (optionally email) errors with extended tracebacks (using + Zope/ZPT conventions) in ``paste.exceptions`` + +* Catch errors presenting a `cgitb + <http://python.org/doc/current/lib/module-cgitb.html>`_-based + output, in ``paste.cgitb_catcher``. + +* Profile each request and append profiling information to the HTML, + in ``paste.debug.profile`` + +* Capture ``print`` output and present it in the browser for + debugging, in ``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 ``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 + ``paste.reloader`` + +* A class for generating and traversing URLs, and creating associated + HTML code, in ``paste.url`` + +The official development repo is at https://bitbucket.org/ianb/paste. + +For the latest changes see the `news file +<http://pythonpaste.org/news.html>`_. + +""", + classifiers=[ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Programming Language :: Python", + "Topic :: Internet :: WWW/HTTP", + "Topic :: Internet :: WWW/HTTP :: Dynamic Content", + "Topic :: Software Development :: Libraries :: Python Modules", + "Topic :: Internet :: WWW/HTTP :: WSGI", + "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", + "Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware", + "Topic :: Internet :: WWW/HTTP :: WSGI :: Server", + "Framework :: Paste", + ], + keywords='web application server wsgi', + author="Ian Bicking", + author_email="ianb@colorstudy.com", + url="http://pythonpaste.org", + license="MIT", + packages=find_packages(exclude=['ez_setup', 'examples', 'packages', 'tests*']), + package_data=finddata.find_package_data( + exclude_directories=finddata.standard_exclude_directories + ('tests',)), + namespace_packages=['paste'], + zip_safe=False, + test_suite='nose.collector', + tests_require=['nose>=0.11'], + extras_require={ + 'subprocess': [], + 'hotshot': [], + 'Flup': ['flup'], + 'Paste': [], + 'openid': ['python-openid'], + }, + entry_points=""" + [paste.app_factory] + cgi = paste.cgiapp:make_cgi_application [subprocess] + static = paste.urlparser:make_static + pkg_resources = paste.urlparser:make_pkg_resources + urlparser = paste.urlparser:make_url_parser + proxy = paste.proxy:make_proxy + test = paste.debug.debugapp:make_test_app + test_slow = paste.debug.debugapp:make_slow_app + transparent_proxy = paste.proxy:make_transparent_proxy + watch_threads = paste.debug.watchthreads:make_watch_threads + + [paste.composite_factory] + urlmap = paste.urlmap:urlmap_factory + cascade = paste.cascade:make_cascade + + [paste.filter_app_factory] + error_catcher = paste.exceptions.errormiddleware:make_error_middleware + cgitb = paste.cgitb_catcher:make_cgitb_middleware + flup_session = paste.flup_session:make_session_middleware [Flup] + gzip = paste.gzipper:make_gzip_middleware + httpexceptions = paste.httpexceptions:make_middleware + lint = paste.lint:make_middleware + printdebug = paste.debug.prints:PrintDebugMiddleware + profile = paste.debug.profile:make_profile_middleware [hotshot] + recursive = paste.recursive:make_recursive_middleware + # This isn't good enough to deserve the name egg:Paste#session: + paste_session = paste.session:make_session_middleware + wdg_validate = paste.debug.wdg_validate:make_wdg_validate_middleware [subprocess] + evalerror = paste.evalexception.middleware:make_eval_exception + auth_tkt = paste.auth.auth_tkt:make_auth_tkt_middleware + auth_basic = paste.auth.basic:make_basic + auth_digest = paste.auth.digest:make_digest + auth_form = paste.auth.form:make_form + grantip = paste.auth.grantip:make_grantip + openid = paste.auth.open_id:make_open_id_middleware [openid] + pony = paste.pony:make_pony + cowbell = paste.cowbell:make_cowbell + errordocument = paste.errordocument:make_errordocument + auth_cookie = paste.auth.cookie:make_auth_cookie + translogger = paste.translogger:make_filter + config = paste.config:make_config_filter + registry = paste.registry:make_registry_manager + + [paste.server_runner] + http = paste.httpserver:server_runner + """, + ) |