# Please keep all characters in this file in ASCII
# distutils uses system's locale to interpret it and not everybody
# uses UTF-8. See https://github.com/httpie/cli/issues/1039
# for an example
[wheel]


[tool:pytest]
# <https://docs.pytest.org/en/latest/customize.html>
testpaths = httpie tests
norecursedirs = tests/fixtures
addopts = --tb=native --doctest-modules --verbose
xfail_strict = True
markers =
    # If you want to run tests without a full HTTPie installation
    # we advise you to disable the markers below, e.g:
    # pytest -m 'not requires_installation and not requires_external_processes'
    requires_installation
    requires_external_processes
filterwarnings =
    default
    # due to urllib3.future no longer needing http.client! nothing to be concerned about.
    ignore:Passing msg=\.\. is deprecated:DeprecationWarning
    # this only concern the test suite / local test server with a self signed certificate.
    ignore:Unverified HTTPS request is being made to host:urllib3.exceptions.InsecureRequestWarning
    # the constant themselves are deprecated in the ssl module, we want to silent them in the test suite until we
    # change the concerned code. Python 3.13 may remove them, so we'll need to think about it soon.
    ignore:ssl\.PROTOCOL_(TLSv1|TLSv1_1|TLSv1_2) is deprecated:DeprecationWarning
    ignore:ssl\.TLSVersion\.(TLSv1|TLSv1_1|TLSv1_2) is deprecated:DeprecationWarning
    # Happen in Windows. Oppose no threats to our test suite.
    # "An operation was attempted on something that is not a socket" during shutdown
    ignore:Exception in thread:pytest.PytestUnhandledThreadExceptionWarning
    ignore:subprocess [0-9]+ is still running:ResourceWarning
    ignore:This process \(pid=[0-9]+\) is multi\-threaded:DeprecationWarning

[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
    niquests[socks]>=3.9
    Pygments>=2.5.2
    setuptools
    importlib-metadata>=1.4.0; python_version<"3.8"
    rich>=9.10.0
    colorama>=0.2.4; sys_platform=="win32"
python_requires = >=3.7


[flake8]
# <https://flake8.pycqa.org/en/latest/user/error-codes.html>
# 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
    responses
    pytest-mock
    werkzeug<4
    flake8
    flake8-comprehensions
    flake8-deprecated
    flake8-mutable
    flake8-tuple
    pytest-cov
    pyyaml
    twine
    wheel
    Jinja2
test =
    pytest
    pytest-httpbin>=0.0.6
    responses
    pytest-mock
    werkzeug<4

[options.data_files]
share/man/man1 =
    extras/man/http.1
    extras/man/https.1
    extras/man/httpie.1
