From 02fb7e2950ff145789fedf4a4e7b10b25d10f2a0 Mon Sep 17 00:00:00 2001 From: kk Date: Tue, 15 Mar 2022 00:51:39 +0800 Subject: [PATCH 1/9] Fix cli docs --proxies #2124 (#2125) --- httpx/_main.py | 2 +- pyproject.toml | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 pyproject.toml diff --git a/httpx/_main.py b/httpx/_main.py index 7bd6b90846..ebcb65214f 100644 --- a/httpx/_main.py +++ b/httpx/_main.py @@ -69,7 +69,7 @@ def print_help() -> None: ) table.add_row( - "--proxy [cyan]URL", + "--proxies [cyan]URL", "Send the request via a proxy. Should be the URL giving the proxy address.", ) diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000000..10a96845c5 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,64 @@ +[build-system] +requires = ["setuptools", "setuptools-scm"] +build-backend = "setuptools.build_meta" + +[project] +name = "httpx" +description = "The next generation HTTP client." +authors = [{ name = "Tom Christie", email = "tom@tomchristie.com" }] +license = { text = "BSD 3-Clause License" } +requires-python = ">=3.6" +dependencies = [ + "certifi", + "charset_normalizer", + "sniffio", + "rfc3986[idna2008]>=1.3,<2", + "httpcore>=0.14.5,<0.15.0", + "async_generator; python_version < '3.7'", +] +classifiers = [ + "Development Status :: 4 - Beta", + "Environment :: Web Environment", + "Intended Audience :: Developers", + "License :: OSI Approved :: BSD License", + "Operating System :: OS Independent", + "Topic :: Internet :: WWW/HTTP", + "Framework :: AsyncIO", + "Framework :: Trio", + "Programming Language :: Python :: 3", + "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 :: Only", +] +dynamic = ["version", "readme"] + +[tool.setuptools] +license-files = ["LICENSE.md"] +package-data = { "httpx" = ["py.typed"] } +include-package-data = true +zip-safe = false + +[project.optional-dependencies] +http2 = ["h2>=3,<5"] +socks = ["socksio==1.*"] +brotli = [ + "brotli; platform_python_implementation == 'CPython'", + "brotlicffi; platform_python_implementation != 'CPython'", +] +cli = ["click==8.*", "rich>=10,<12", "pygments==2.*"] + +[project.urls] +Homepage = "https://www.python-httpx.org" +Changelog = "https://github.com/encode/httpx/blob/master/CHANGELOG.md" +Documentation = "https://www.python-httpx.org" +Source = "https://github.com/encode/httpx" + +[project.scripts] +httpx = "httpx:main" + +[tool.setuptools.dynamic] +version = { attr = "httpx.__version__.__version__" } +readme = { file = ["README.md", "CHANGELOG.md"] } From 07923526837e076db20bc46efccbfe28c8e69c45 Mon Sep 17 00:00:00 2001 From: Marcelo Trylesinski Date: Fri, 25 Mar 2022 06:32:45 +0100 Subject: [PATCH 2/9] Remove setup.py --- setup.py | 99 -------------------------------------------------------- 1 file changed, 99 deletions(-) delete mode 100644 setup.py diff --git a/setup.py b/setup.py deleted file mode 100644 index 945bfb83e0..0000000000 --- a/setup.py +++ /dev/null @@ -1,99 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import re -from pathlib import Path - -from setuptools import setup - - -def get_version(package): - """ - Return package version as listed in `__version__` in `init.py`. - """ - version = Path(package, "__version__.py").read_text() - return re.search("__version__ = ['\"]([^'\"]+)['\"]", version).group(1) - - -def get_long_description(): - """ - Return the README. - """ - long_description = "" - with open("README.md", encoding="utf8") as f: - long_description += f.read() - long_description += "\n\n" - with open("CHANGELOG.md", encoding="utf8") as f: - long_description += f.read() - return long_description - - -def get_packages(package): - """ - Return root package and all sub-packages. - """ - return [str(path.parent) for path in Path(package).glob("**/__init__.py")] - - -setup( - name="httpx", - python_requires=">=3.6", - version=get_version("httpx"), - url="https://github.com/encode/httpx", - project_urls={ - "Changelog": "https://github.com/encode/httpx/blob/master/CHANGELOG.md", - "Documentation": "https://www.python-httpx.org", - "Source": "https://github.com/encode/httpx", - }, - license="BSD", - description="The next generation HTTP client.", - long_description=get_long_description(), - long_description_content_type="text/markdown", - author="Tom Christie", - author_email="tom@tomchristie.com", - package_data={"httpx": ["py.typed"]}, - packages=get_packages("httpx"), - include_package_data=True, - zip_safe=False, - install_requires=[ - "certifi", - "charset_normalizer", - "sniffio", - "rfc3986[idna2008]>=1.3,<2", - "httpcore>=0.14.5,<0.15.0", - "async_generator; python_version < '3.7'" - ], - extras_require={ - "http2": "h2>=3,<5", - "socks": "socksio==1.*", - "brotli": [ - "brotli; platform_python_implementation == 'CPython'", - "brotlicffi; platform_python_implementation != 'CPython'" - ], - "cli": [ - "click==8.*", - "rich>=10,<12", - "pygments==2.*" - ] - }, - entry_points = { - "console_scripts": "httpx=httpx:main" - }, - classifiers=[ - "Development Status :: 4 - Beta", - "Environment :: Web Environment", - "Intended Audience :: Developers", - "License :: OSI Approved :: BSD License", - "Operating System :: OS Independent", - "Topic :: Internet :: WWW/HTTP", - "Framework :: AsyncIO", - "Framework :: Trio", - "Programming Language :: Python :: 3", - "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 :: Only", - ], -) From 76d73889139fb8f450f731d40d867756fb6acd9b Mon Sep 17 00:00:00 2001 From: Marcelo Trylesinski Date: Fri, 25 Mar 2022 06:33:44 +0100 Subject: [PATCH 3/9] Add build command --- scripts/build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build b/scripts/build index 1c47d2cc2a..d284dfcfaa 100755 --- a/scripts/build +++ b/scripts/build @@ -8,6 +8,6 @@ fi set -x -${PREFIX}python setup.py sdist bdist_wheel +${PREFIX}python -m build --sdist --wheel ${PREFIX}twine check dist/* ${PREFIX}mkdocs build From 441ad6bf5e3c8a88cef2744f8ba1e9623b76a795 Mon Sep 17 00:00:00 2001 From: Marcelo Trylesinski Date: Sat, 26 Mar 2022 19:14:24 +0100 Subject: [PATCH 4/9] Add build package --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 49e0d30191..0dc59af1cf 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,6 +14,7 @@ mkdocs-material==8.1.4 # Packaging twine==3.7.1 wheel==0.37.0 +build==0.7.0 # Tests & Linting autoflake==1.4 From 53cf0b2ed68052ac302c67d58ede697ba36e4693 Mon Sep 17 00:00:00 2001 From: Marcelo Trylesinski Date: Fri, 1 Jul 2022 06:25:14 +0200 Subject: [PATCH 5/9] Update pyproject.toml Co-authored-by: Florimond Manca --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 72b88fae14..1222be804b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -61,4 +61,4 @@ httpx = "httpx:main" [tool.setuptools.dynamic] version = { attr = "httpx.__version__.__version__" } -readme = { file = ["README.md", "CHANGELOG.md"] } +readme = { file = ["README.md", "CHANGELOG.md"], content-type = "text/markdown" } From e7995cf02d8bcb70cff75eaa0e7b413f5bfdd4c4 Mon Sep 17 00:00:00 2001 From: Marcelo Trylesinski Date: Fri, 1 Jul 2022 06:26:04 +0200 Subject: [PATCH 6/9] Update scripts/build Co-authored-by: Florimond Manca --- scripts/build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build b/scripts/build index d284dfcfaa..92378cb942 100755 --- a/scripts/build +++ b/scripts/build @@ -8,6 +8,6 @@ fi set -x -${PREFIX}python -m build --sdist --wheel +${PREFIX}python -m build ${PREFIX}twine check dist/* ${PREFIX}mkdocs build From d01587ac7fdfee4b68623ddc67ac1bc608693711 Mon Sep 17 00:00:00 2001 From: Marcelo Trylesinski Date: Fri, 1 Jul 2022 06:26:10 +0200 Subject: [PATCH 7/9] Update requirements.txt Co-authored-by: Florimond Manca --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 996d5b0e90..550f8306d2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,7 +14,7 @@ mkdocs-material==8.1.4 # Packaging twine==3.7.1 wheel==0.37.0 -build==0.7.0 +build==0.8.0 # Tests & Linting autoflake==1.4 From 345ed7213641166e0798f755a8de8dd5158869ed Mon Sep 17 00:00:00 2001 From: Marcelo Trylesinski Date: Fri, 1 Jul 2022 06:29:43 +0200 Subject: [PATCH 8/9] Add setup.py for editable installs --- setup.py | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 setup.py diff --git a/setup.py b/setup.py new file mode 100644 index 0000000000..15dc6ac2bc --- /dev/null +++ b/setup.py @@ -0,0 +1,5 @@ +# This file is needed for editable installs. +# Ref.: https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html +from setuptools import setup + +setup() From 03e75ec3c16761c79fddbb0b274e6955962c39bf Mon Sep 17 00:00:00 2001 From: Marcelo Trylesinski Date: Fri, 1 Jul 2022 06:42:34 +0200 Subject: [PATCH 9/9] Update according to new setup.py --- pyproject.toml | 7 ++----- requirements.txt | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 1222be804b..1c625c6d22 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,11 +10,9 @@ license = { text = "BSD 3-Clause License" } requires-python = ">=3.7" dependencies = [ "certifi", - "charset_normalizer", "sniffio", "rfc3986[idna2008]>=1.3,<2", - "httpcore>=0.14.5,<0.15.0", - "async_generator; python_version < '3.7'", + "httpcore>=0.15.0,<0.16.0", ] classifiers = [ "Development Status :: 4 - Beta", @@ -26,7 +24,6 @@ classifiers = [ "Framework :: AsyncIO", "Framework :: Trio", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", @@ -48,7 +45,7 @@ brotli = [ "brotli; platform_python_implementation == 'CPython'", "brotlicffi; platform_python_implementation != 'CPython'", ] -cli = ["click==8.*", "rich>=10,<12", "pygments==2.*"] +cli = ["click==8.*", "rich>=10,<13", "pygments==2.*"] [project.urls] Homepage = "https://www.python-httpx.org" diff --git a/requirements.txt b/requirements.txt index ca1f4ea912..235521fbdf 100644 --- a/requirements.txt +++ b/requirements.txt @@ -16,7 +16,7 @@ mkdocs-material==8.2.14 # Packaging twine==4.0.1 -wheel==0.37.0 +wheel==0.37.1 build==0.8.0 # Tests & Linting