1# Procedure to release a new version:
2#
3# - run tests: run tox
4# - update version in setup.py (__version__)
5# - update tag_build in setup.cfg
6# - check that "python setup.py sdist" contains all files tracked by
7#   the SCM (Mercurial): update MANIFEST.in if needed
8# - update changelog: docs/news.txt
9#
10# - hg ci
11# - hg tag VERSION
12# - hg push
13# - python2 setup.py register sdist bdist_wheel upload
14# - python3 setup.py bdist_wheel upload
15#
16# - increment version in setup.py (__version__)
17# - hg ci && hg push
18
19__version__ = '2.0.2'
20
21from setuptools import setup, find_packages
22import sys, os
23sys.path.insert(0, os.path.join(os.path.dirname(__file__),
24                                'paste', 'util'))
25import finddata
26
27with open("README.rst") as fp:
28    README = fp.read()
29
30setup(name="Paste",
31      version=__version__,
32      description="Tools for using a Web Server Gateway Interface stack",
33      long_description=README,
34      classifiers=[
35        "Development Status :: 5 - Production/Stable",
36        "Intended Audience :: Developers",
37        "License :: OSI Approved :: MIT License",
38        "Programming Language :: Python",
39        "Programming Language :: Python :: 3",
40        "Topic :: Internet :: WWW/HTTP",
41        "Topic :: Internet :: WWW/HTTP :: Dynamic Content",
42        "Topic :: Software Development :: Libraries :: Python Modules",
43        "Topic :: Internet :: WWW/HTTP :: WSGI",
44        "Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
45        "Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware",
46        "Topic :: Internet :: WWW/HTTP :: WSGI :: Server",
47        "Framework :: Paste",
48        ],
49      keywords='web application server wsgi',
50      author="Ian Bicking",
51      author_email="ianb@colorstudy.com",
52      url="http://pythonpaste.org",
53      license="MIT",
54      packages=find_packages(exclude=['ez_setup', 'examples', 'packages', 'tests*']),
55      package_data=finddata.find_package_data(
56          exclude_directories=finddata.standard_exclude_directories + ('tests',)),
57      namespace_packages=['paste'],
58      zip_safe=False,
59      test_suite='nose.collector',
60      install_requires=['six'],
61      tests_require=['nose>=0.11'],
62      extras_require={
63        'subprocess': [],
64        'hotshot': [],
65        'Flup': ['flup'],
66        'Paste': [],
67        'openid': ['python-openid'],
68        },
69      entry_points="""
70      [paste.app_factory]
71      cgi = paste.cgiapp:make_cgi_application [subprocess]
72      static = paste.urlparser:make_static
73      pkg_resources = paste.urlparser:make_pkg_resources
74      urlparser = paste.urlparser:make_url_parser
75      proxy = paste.proxy:make_proxy
76      test = paste.debug.debugapp:make_test_app
77      test_slow = paste.debug.debugapp:make_slow_app
78      transparent_proxy = paste.proxy:make_transparent_proxy
79      watch_threads = paste.debug.watchthreads:make_watch_threads
80
81      [paste.composite_factory]
82      urlmap = paste.urlmap:urlmap_factory
83      cascade = paste.cascade:make_cascade
84
85      [paste.filter_app_factory]
86      error_catcher = paste.exceptions.errormiddleware:make_error_middleware
87      cgitb = paste.cgitb_catcher:make_cgitb_middleware
88      flup_session = paste.flup_session:make_session_middleware [Flup]
89      gzip = paste.gzipper:make_gzip_middleware
90      httpexceptions = paste.httpexceptions:make_middleware
91      lint = paste.lint:make_middleware
92      printdebug = paste.debug.prints:PrintDebugMiddleware
93      profile = paste.debug.profile:make_profile_middleware [hotshot]
94      recursive = paste.recursive:make_recursive_middleware
95      # This isn't good enough to deserve the name egg:Paste#session:
96      paste_session = paste.session:make_session_middleware
97      wdg_validate = paste.debug.wdg_validate:make_wdg_validate_middleware [subprocess]
98      evalerror = paste.evalexception.middleware:make_eval_exception
99      auth_tkt = paste.auth.auth_tkt:make_auth_tkt_middleware
100      auth_basic = paste.auth.basic:make_basic
101      auth_digest = paste.auth.digest:make_digest
102      auth_form = paste.auth.form:make_form
103      grantip = paste.auth.grantip:make_grantip
104      openid = paste.auth.open_id:make_open_id_middleware [openid]
105      pony = paste.pony:make_pony
106      cowbell = paste.cowbell:make_cowbell
107      errordocument = paste.errordocument:make_errordocument
108      auth_cookie = paste.auth.cookie:make_auth_cookie
109      translogger = paste.translogger:make_filter
110      config = paste.config:make_config_filter
111      registry = paste.registry:make_registry_manager
112
113      [paste.server_runner]
114      http = paste.httpserver:server_runner
115      """,
116      )
117