[build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [project] name = "requests" description = "Python HTTP for Humans." readme = "README.md" license = {text = "Apache-2.0"} authors = [ { name = "Kenneth Reitz", email = "me@kennethreitz.org" }, ] maintainers = [ {name = "Ian Stapleton Cordasco", email="graffatcolmingov@gmail.com"}, {name = "Nate Prewitt", email="nate.prewitt@gmail.com"} ] requires-python = ">=3.10" dependencies = [ "charset_normalizer>=2,<4", "idna>=2.5,<4", "urllib3>=1.26,<3", "certifi>=2023.5.7" ] dynamic = ["version"] classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet :: WWW/HTTP", "Topic :: Software Development :: Libraries" ] [project.urls] Documentation = "https://requests.readthedocs.io" Source = "https://github.com/psf/requests" [project.optional-dependencies] security = [] socks = ["PySocks>=1.5.6, !=1.5.7"] use_chardet_on_py3 = ["chardet>=3.0.2,<8"] [dependency-groups] test = [ "requests[socks]", "pytest-httpbin==2.1.0", "httpbin~=0.10.0", "pytest-cov", "pytest-mock", "pytest-xdist", "pytest>=3", "trustme", ] [tool.setuptools] license-files = ["LICENSE", "NOTICE"] [tool.setuptools.dynamic] version = {attr = "requests.__version__.__version__"} [tool.setuptools.packages.find] where = ["src"] [tool.ruff] target-version = "py310" src = ["src/requests", "tests"] exclude = ["docs/", "ext/"] [tool.ruff.lint] select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # pyflakes "I", # isort "UP", # pyupgrade "T10", # flake8-debugger (replaces debug-statements hook) ] ignore = ["E203", "E501", "UP038", "UP031"] per-file-ignores = {"src/requests/__init__.py" = ["E402", "F401"], "src/requests/compat.py" = ["E402", "F401"], "tests/compat.py" = ["F401"]} [tool.ruff.lint.isort] known-first-party = ["requests"] [tool.ruff.format] # Use black-compatible formatting quote-style = "double" indent-style = "space" [tool.pytest.ini_options] addopts = "--doctest-modules" doctest_optionflags = "NORMALIZE_WHITESPACE ELLIPSIS" minversion = "6.2" testpaths = ["tests"]