diff --git a/setup.cfg b/setup.cfg index c8b3a81b..3cd2d706 100644 --- a/setup.cfg +++ b/setup.cfg @@ -5,3 +5,68 @@ addopts = --assert=plain --cov=gunicorn --cov-report=xml [metadata] license_files = ['LICENSE'] +name = gunicorn +version = attr: gunicorn.__version__ +author = Benoit Chesneau +author_email = benoitc@gunicorn.org +license = MIT +description = WSGI HTTP Server for UNIX +url = https://gunicorn.org +long_description = file: README.rst +classifiers = + Development Status :: 5 - Production/Stable + Environment :: Other Environment + Intended Audience :: Developers + License :: OSI Approved :: MIT License + Operating System :: MacOS :: MacOS X + Operating System :: POSIX + Programming Language :: Python + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.5 + 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 :: 3 :: Only + Programming Language :: Python :: Implementation :: CPython + Programming Language :: Python :: Implementation :: PyPy + Topic :: Internet + Topic :: Utilities + Topic :: Software Development :: Libraries :: Python Modules + Topic :: Internet :: WWW/HTTP + Topic :: Internet :: WWW/HTTP :: WSGI + Topic :: Internet :: WWW/HTTP :: WSGI :: Server + Topic :: Internet :: WWW/HTTP :: Dynamic Content +project_urls = + Documentation = https://docs.gunicorn.org + Homepage = https://gunicorn.org + Issue tracker = https://github.com/benoitc/gunicorn/issues + Source code = https://github.com/benoitc/gunicorn + +[options] +packages = find: +zip_safe = False +install_requires = + importlib_metadata; python_version<"3.8" + packaging +include_package_data = True +python_requires = >=3.5 +tests_require = + gevent + eventlet + cryptography + coverage + pytest + pytest-cov + +[options.packages.find] +exclude = examples; tests + +[options.extras_require] +gevent = gevent>=1.4.0 +eventlet = eventlet>=0.24.1 +tornado = tornado>=0.2 +gthread = +setproctitle = setproctitle diff --git a/setup.py b/setup.py index dffd418c..60684932 100644 --- a/setup.py +++ b/setup.py @@ -1,121 +1,3 @@ -# -*- coding: utf-8 - -# -# This file is part of gunicorn released under the MIT license. -# See the NOTICE for more information. +from setuptools import setup -import os -import sys - -from setuptools import setup, find_packages -from setuptools.command.test import test as TestCommand - -from gunicorn import __version__ - - -CLASSIFIERS = [ - 'Development Status :: 5 - Production/Stable', - 'Environment :: Other Environment', - 'Intended Audience :: Developers', - 'License :: OSI Approved :: MIT License', - 'Operating System :: MacOS :: MacOS X', - 'Operating System :: POSIX', - 'Programming Language :: Python', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.5', - '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 :: 3 :: Only', - 'Programming Language :: Python :: Implementation :: CPython', - 'Programming Language :: Python :: Implementation :: PyPy', - 'Topic :: Internet', - 'Topic :: Utilities', - 'Topic :: Software Development :: Libraries :: Python Modules', - 'Topic :: Internet :: WWW/HTTP', - 'Topic :: Internet :: WWW/HTTP :: WSGI', - 'Topic :: Internet :: WWW/HTTP :: WSGI :: Server', - 'Topic :: Internet :: WWW/HTTP :: Dynamic Content'] - -# read long description -with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as f: - long_description = f.read() - -# read dev requirements -fname = os.path.join(os.path.dirname(__file__), 'requirements_test.txt') -with open(fname) as f: - tests_require = [l.strip() for l in f.readlines()] - -class PyTestCommand(TestCommand): - user_options = [ - ("cov", None, "measure coverage") - ] - - def initialize_options(self): - TestCommand.initialize_options(self) - self.cov = None - - def finalize_options(self): - TestCommand.finalize_options(self) - self.test_args = ['tests'] - if self.cov: - self.test_args += ['--cov', 'gunicorn'] - self.test_suite = True - - def run_tests(self): - import pytest - errno = pytest.main(self.test_args) - sys.exit(errno) - - -install_requires = [ - 'importlib_metadata; python_version<"3.8"', - 'packaging', -] - -extras_require = { - 'gevent': ['gevent>=1.4.0'], - 'eventlet': ['eventlet>=0.24.1'], - 'tornado': ['tornado>=0.2'], - 'gthread': [], - 'setproctitle': ['setproctitle'], -} - -setup( - name='gunicorn', - version=__version__, - - description='WSGI HTTP Server for UNIX', - long_description=long_description, - author='Benoit Chesneau', - author_email='benoitc@gunicorn.org', - license='MIT', - url='https://gunicorn.org', - project_urls={ - 'Documentation': 'https://docs.gunicorn.org', - 'Homepage': 'https://gunicorn.org', - 'Issue tracker': 'https://github.com/benoitc/gunicorn/issues', - 'Source code': 'https://github.com/benoitc/gunicorn', - }, - - python_requires='>=3.5', - install_requires=install_requires, - classifiers=CLASSIFIERS, - zip_safe=False, - packages=find_packages(exclude=['examples', 'tests']), - include_package_data=True, - - tests_require=tests_require, - cmdclass={'test': PyTestCommand}, - - entry_points=""" - [console_scripts] - gunicorn=gunicorn.app.wsgiapp:run - - [paste.server_runner] - main=gunicorn.app.pasterapp:serve - """, - extras_require=extras_require, -) +setup()