summaryrefslogtreecommitdiff
path: root/setup.py
blob: 40638939875bb85f08f5e4a886047d158d1b306f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#! /usr/bin/env python
"""CherryPy package setuptools installer."""

import setuptools


name = 'CherryPy'
repo_slug = 'cherrypy/{}'.format(name.lower())
repo_url = 'https://github.com/{}'.format(repo_slug)


params = dict(
    name=name,
    use_scm_version=True,
    description='Object-Oriented HTTP framework',
    author='CherryPy Team',
    author_email='team@cherrypy.dev',
    classifiers=[
        'Development Status :: 5 - Production/Stable',
        'Environment :: Web Environment',
        'Intended Audience :: Developers',
        'License :: Freely Distributable',
        'Operating System :: OS Independent',
        'Framework :: CherryPy',
        'License :: OSI Approved :: BSD License',
        'Programming Language :: Python',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
        'Programming Language :: Python :: 3.8',
        'Programming Language :: Python :: 3.9',
        'Programming Language :: Python :: 3.10',
        'Programming Language :: Python :: 3.11',
        'Programming Language :: Python :: Implementation',
        'Programming Language :: Python :: Implementation :: CPython',
        'Programming Language :: Python :: Implementation :: Jython',
        'Programming Language :: Python :: Implementation :: PyPy',
        'Topic :: Internet :: WWW/HTTP',
        'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
        'Topic :: Internet :: WWW/HTTP :: HTTP Servers',
        'Topic :: Internet :: WWW/HTTP :: WSGI',
        'Topic :: Internet :: WWW/HTTP :: WSGI :: Application',
        'Topic :: Internet :: WWW/HTTP :: WSGI :: Server',
        'Topic :: Software Development :: Libraries :: Application Frameworks',
    ],
    url='https://www.cherrypy.dev',
    project_urls={
        'CI: AppVeyor': 'https://ci.appveyor.com/project/{}'.format(repo_slug),
        'CI: Travis': 'https://travis-ci.org/{}'.format(repo_slug),
        'CI: Circle': 'https://circleci.com/gh/{}'.format(repo_slug),
        'CI: GitHub': 'https://github.com/{}/actions'.format(repo_slug),
        'Docs: RTD': 'https://docs.cherrypy.dev',
        'GitHub: issues': '{}/issues'.format(repo_url),
        'GitHub: repo': repo_url,
        'Tidelift: funding':
        'https://tidelift.com/subscription/pkg/pypi-cherrypy'
        '?utm_source=pypi-cherrypy&utm_medium=referral&utm_campaign=pypi',
    },
    packages=[
        'cherrypy', 'cherrypy.lib',
        'cherrypy.tutorial', 'cherrypy.test',
        'cherrypy.process',
        'cherrypy.scaffold',
    ],
    entry_points={'console_scripts': ['cherryd = cherrypy.__main__:run']},
    include_package_data=True,
    install_requires=[
        'cheroot>=8.2.1',
        'portend>=2.1.1',
        'more_itertools',
        'zc.lockfile',
        'jaraco.collections',
    ],
    extras_require={
        'docs': [
            'sphinx',
            'docutils',
            'alabaster',
            'sphinxcontrib-apidoc>=0.3.0',
            'rst.linker>=1.11',
            'jaraco.packaging>=3.2',
            'setuptools',
        ],
        'json': ['simplejson'],
        'routes_dispatcher': ['routes>=2.3.1'],
        'ssl': ['pyOpenSSL'],
        'testing': [
            'coverage',  # inspects tests coverage
            'codecov',   # sends tests coverage to codecov.io

            # cherrypy.lib.gctools
            'objgraph',

            'pytest>=5.3.5',
            'pytest-cov',
            'pytest-forked',
            'pytest-sugar',
            'path.py',
            'requests_toolbelt',
            'pytest-services>=2',
            'setuptools',
        ],
        # Enables memcached session support via `cherrypy[memcached_session]`:
        'memcached_session': ['python-memcached>=1.58'],
        'xcgi': ['flup'],

        # https://docs.cherrypy.dev/en/latest/advanced.html?highlight=windows#windows-console-events
        ':sys_platform == "win32" and implementation_name == "cpython"'
        # pywin32 disabled while a build is unavailable. Ref #1920.
        ' and python_version < "3.10"': [
            'pywin32 >= 227',
        ],
    },
    setup_requires=[
        'setuptools_scm',
    ],
    python_requires='>=3.6',
)


__name__ == '__main__' and setuptools.setup(**params)