From 4c320b1e4591494b4a1f3fafcf525dcb7fc634b9 Mon Sep 17 00:00:00 2001 From: Mathieu Dupuy Date: Tue, 23 Jan 2024 19:20:14 +0100 Subject: [PATCH] migrate setup.py to setup.cfg No man pages --- setup.cfg | 86 ++++++++++++++++++++++++++++++++++++++ setup.py | 121 +----------------------------------------------------- 2 files changed, 88 insertions(+), 119 deletions(-) diff --git a/setup.cfg b/setup.cfg index 86c41ff308..f0bc949b03 100644 --- a/setup.cfg +++ b/setup.cfg @@ -12,9 +12,95 @@ norecursedirs = tests/fixtures addopts = --tb=native --doctest-modules --verbose xfail_strict = True +[metadata] +name = httpie +version = attr: httpie.__version__ +author = Jakub Roztocil +author_email = jakub@roztocil.co +license = BSD +description = HTTPie: modern, user-friendly command-line HTTP client for the API era. +url = https://httpie.io/ +long_description = file: README.md +long_description_content_type = text/markdown +classifiers = + Development Status :: 5 - Production/Stable + Programming Language :: Python + Programming Language :: Python :: 3 :: Only + Environment :: Console + Intended Audience :: Developers + Intended Audience :: System Administrators + License :: OSI Approved :: BSD License + Topic :: Internet :: WWW/HTTP + Topic :: Software Development + Topic :: System :: Networking + Topic :: Terminals + Topic :: Text Processing + Topic :: Utilities +project_urls = + GitHub = https://github.com/httpie/cli + Twitter = https://twitter.com/httpie + Discord = https://httpie.io/discord + Documentation = https://httpie.io/docs + Online Demo = https://httpie.io/run + + +[options] +packages = find: +install_requires = + pip + charset_normalizer>=2.0.0 + defusedxml>=0.6.0 + requests[socks]>=2.22.0 + Pygments>=2.5.2 + requests-toolbelt>=0.9.1 + multidict>=4.7.0 + setuptools + importlib-metadata>=1.4.0; python_version < "3.8" + rich>=9.10.0 +python_requires = >=3.7 + [flake8] # # E501 - line too long # W503 - line break before binary operator ignore = E501,W503 + +[options.packages.find] +include = httpie; httpie.* + +[options.entry_points] +console_scripts = + http = httpie.__main__:main + https = httpie.__main__:main + httpie = httpie.manager.__main__:main + +[options.extras_require] +dev = + pytest + pytest-httpbin>=0.0.6 + pytest-lazy-fixture>=0.0.6 + responses + pytest-mock + werkzeug<2.1.0 + flake8 + flake8-comprehensions + flake8-deprecated + flake8-mutable + flake8-tuple + pyopenssl + pytest-cov + pyyaml + twine + wheel + Jinja2 +test = + pytest + pytest-httpbin>=0.0.6 + pytest-lazy-fixture>=0.0.6 + responses + pytest-mock + werkzeug<2.1.0 + +[options.data_files] +data = diff --git a/setup.py b/setup.py index 93bdb8f957..e69621732d 100644 --- a/setup.py +++ b/setup.py @@ -1,122 +1,5 @@ # This is purely the result of trial and error. -import sys +from setuptools import setup -from setuptools import setup, find_packages - -import httpie - - -# Note: keep requirements here to ease distributions packaging -tests_require = [ - 'pytest', - 'pytest-httpbin>=0.0.6', - 'pytest-lazy-fixture>=0.0.6', - 'responses', - 'pytest-mock', - 'werkzeug<2.1.0' -] -dev_require = [ - *tests_require, - 'flake8', - 'flake8-comprehensions', - 'flake8-deprecated', - 'flake8-mutable', - 'flake8-tuple', - 'pyopenssl', - 'pytest-cov', - 'pyyaml', - 'twine', - 'wheel', - 'Jinja2' -] -install_requires = [ - 'pip', - 'charset_normalizer>=2.0.0', - 'defusedxml>=0.6.0', - 'requests[socks]>=2.22.0', - 'Pygments>=2.5.2', - 'requests-toolbelt>=0.9.1', - 'multidict>=4.7.0', - 'setuptools', - 'importlib-metadata>=1.4.0; python_version < "3.8"', - 'rich>=9.10.0' -] -install_requires_win_only = [ - 'colorama>=0.2.4', -] - -# Conditional dependencies: - -# sdist -if 'bdist_wheel' not in sys.argv: - - if 'win32' in str(sys.platform).lower(): - # Terminal colors for Windows - install_requires.extend(install_requires_win_only) - - -# bdist_wheel -extras_require = { - 'dev': dev_require, - 'test': tests_require, - # https://wheel.readthedocs.io/en/latest/#defining-conditional-dependencies - ':sys_platform == "win32"': install_requires_win_only, -} - - -def long_description(): - with open('README.md', encoding='utf-8') as f: - return f.read() - - -setup( - name='httpie', - version=httpie.__version__, - description=httpie.__doc__.strip(), - long_description=long_description(), - long_description_content_type='text/markdown', - url='https://httpie.io/', - download_url=f'https://github.com/httpie/cli/archive/{httpie.__version__}.tar.gz', - author=httpie.__author__, - author_email='jakub@roztocil.co', - license=httpie.__licence__, - packages=find_packages(include=['httpie', 'httpie.*']), - entry_points={ - 'console_scripts': [ - 'http = httpie.__main__:main', - 'https = httpie.__main__:main', - 'httpie = httpie.manager.__main__:main', - ], - }, - python_requires='>=3.7', - extras_require=extras_require, - install_requires=install_requires, - classifiers=[ - 'Development Status :: 5 - Production/Stable', - 'Programming Language :: Python', - 'Programming Language :: Python :: 3 :: Only', - 'Environment :: Console', - 'Intended Audience :: Developers', - 'Intended Audience :: System Administrators', - 'License :: OSI Approved :: BSD License', - 'Topic :: Internet :: WWW/HTTP', - 'Topic :: Software Development', - 'Topic :: System :: Networking', - 'Topic :: Terminals', - 'Topic :: Text Processing', - 'Topic :: Utilities' - ], - project_urls={ - 'GitHub': 'https://github.com/httpie/cli', - 'Twitter': 'https://twitter.com/httpie', - 'Discord': 'https://httpie.io/discord', - 'Documentation': 'https://httpie.io/docs', - 'Online Demo': 'https://httpie.io/run', - }, - data_files=[ - ('share/man/man1', ['extras/man/http.1']), - ('share/man/man1', ['extras/man/https.1']), - ('share/man/man1', ['extras/man/httpie.1']), - ] -) +setup()