# This is purely the result of trial and error. import sys from setuptools import setup, find_packages import httpie # Note: keep requirements here to ease distributions packaging tests_require = [ 'pytest', 'pytest-httpbin>=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', '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.12', 'Programming Language :: Python :: Implementation :: CPython', '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']), ] )