From ed926318136866a062a0c5b6f41844be8f19d7b1 Mon Sep 17 00:00:00 2001 From: karosis88 Date: Fri, 7 Jul 2023 16:05:11 +0300 Subject: [PATCH 1/6] Drop setup.py and MANIFEST.in --- MANIFEST.in | 4 --- requirements.txt | 2 +- scripts/build | 2 +- setup.py | 83 ------------------------------------------------ 4 files changed, 2 insertions(+), 89 deletions(-) delete mode 100644 MANIFEST.in delete mode 100644 setup.py diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index f124a4c6c..000000000 --- a/MANIFEST.in +++ /dev/null @@ -1,4 +0,0 @@ -include README.md -include CHANGELOG.md -include LICENSE.md -include httpcore/py.typed diff --git a/requirements.txt b/requirements.txt index 78b85e60c..1884c090b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,8 +12,8 @@ mkdocstrings[python-legacy]==0.22.0 jinja2==3.1.2 # Packaging +build==0.10.0 twine -wheel # Tests & Linting anyio==3.6.2 diff --git a/scripts/build b/scripts/build index 602eab0a4..657ded044 100755 --- a/scripts/build +++ b/scripts/build @@ -10,6 +10,6 @@ fi set -x -${PREFIX}python setup.py sdist bdist_wheel +${PREFIX}python -m build ${PREFIX}twine check dist/* ${PREFIX}mkdocs build diff --git a/setup.py b/setup.py deleted file mode 100644 index 2e2ef37a7..000000000 --- a/setup.py +++ /dev/null @@ -1,83 +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, "__init__.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="httpcore", - python_requires=">=3.7", - version=get_version("httpcore"), - url="https://github.com/encode/httpcore", - project_urls={ - "Documentation": "https://www.encode.io/httpcore", - "Source": "https://github.com/encode/httpcore", - }, - license="BSD", - description="A minimal low-level HTTP client.", - long_description=get_long_description(), - long_description_content_type="text/markdown", - author="Tom Christie", - author_email="tom@tomchristie.com", - packages=get_packages("httpcore"), - include_package_data=True, - zip_safe=False, - install_requires=[ - "h11>=0.13,<0.15", - "sniffio==1.*", - "anyio>=3.0,<5.0", - "certifi", - ], - extras_require={ - "http2": ["h2>=3,<5"], - "socks": ["socksio==1.*"] - }, - classifiers=[ - "Development Status :: 3 - Alpha", - "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.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 :: Only", - ], -) From 5677c17208084d6fe1e3ad279da4968f6f97baa5 Mon Sep 17 00:00:00 2001 From: karosis88 Date: Fri, 7 Jul 2023 16:08:15 +0300 Subject: [PATCH 2/6] Add pyproject.toml file --- pyproject.toml | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 000000000..dae1c4ba0 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,69 @@ +[build-system] +requires = ["hatchling", "hatch-fancy-pypi-readme"] +build-backend = "hatchling.build" + +[project] +name = "httpcore" +dynamic = ["version"] +description = "A minimal low-level HTTP client." +readme = "README.md" +license = "BSD" +requires-python = ">=3.7" +authors = [ + { name = "Tom Christie", email = "tom@tomchristie.com" }, +] +classifiers = [ + "Development Status :: 3 - Alpha", + "Environment :: Web Environment", + "Framework :: AsyncIO", + "Framework :: Trio", + "Intended Audience :: Developers", + "License :: OSI Approved :: BSD License", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3", + "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", + "Topic :: Internet :: WWW/HTTP", +] +dependencies = [ + "anyio>=3.0,<5.0", + "certifi", + "h11>=0.13,<0.15", + "sniffio==1.*", +] + +[project.optional-dependencies] +http2 = [ + "h2>=3,<5", +] +socks = [ + "socksio==1.*", +] + +[project.urls] +Documentation = "https://www.encode.io/httpcore" +Homepage = "https://www.encode.io/httpcore/" +Source = "https://github.com/encode/httpcore" + +[tool.hatch.version] +path = "httpcore/__init__.py" + +[tool.hatch.build.targets.sdist] +include = [ + "/httpcore", + "/CHANGELOG.md", + "/README.md", +] + +[tool.hatch.metadata.hooks.fancy-pypi-readme] +content-type = "text/markdown" + +[[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] +path = "README.md" + +[[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] +path = "CHANGELOG.md" \ No newline at end of file From b2407bfa950f8481c45b32d6a1ce603b0222122c Mon Sep 17 00:00:00 2001 From: karosis88 Date: Fri, 7 Jul 2023 16:17:48 +0300 Subject: [PATCH 3/6] Fix license --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index dae1c4ba0..7910e41e7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ name = "httpcore" dynamic = ["version"] description = "A minimal low-level HTTP client." readme = "README.md" -license = "BSD" +license = "BSD-3-Clause" requires-python = ">=3.7" authors = [ { name = "Tom Christie", email = "tom@tomchristie.com" }, From 9783142a734b7c025f31a0ed2fbb614693e4a1a3 Mon Sep 17 00:00:00 2001 From: karosis88 Date: Sat, 8 Jul 2023 09:08:47 +0300 Subject: [PATCH 4/6] Add readme into the dynamic list --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 7910e41e7..534da4ba3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "httpcore" -dynamic = ["version"] +dynamic = ["readme", "version"] description = "A minimal low-level HTTP client." readme = "README.md" license = "BSD-3-Clause" From c80d94ba3e9a2fd7ae1978cb8ea54e6f2c0e3ca8 Mon Sep 17 00:00:00 2001 From: karosis88 Date: Sat, 8 Jul 2023 09:13:49 +0300 Subject: [PATCH 5/6] Remove static readme --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 534da4ba3..0d4bbf7ce 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,6 @@ build-backend = "hatchling.build" name = "httpcore" dynamic = ["readme", "version"] description = "A minimal low-level HTTP client." -readme = "README.md" license = "BSD-3-Clause" requires-python = ">=3.7" authors = [ From 502fd360a2196d2ef15e122ef090e6902a00a2bc Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Tue, 11 Jul 2023 10:26:45 +0100 Subject: [PATCH 6/6] Update pyproject.toml --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 0d4bbf7ce..07187d0b5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -65,4 +65,4 @@ content-type = "text/markdown" path = "README.md" [[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] -path = "CHANGELOG.md" \ No newline at end of file +path = "CHANGELOG.md"