diff --git a/pyproject.toml b/pyproject.toml index a4eecff..e5b10a1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,72 @@ +[project] +name = "vcrpy" +authors = [{name = "Kevin McCarthy", email = "me@kevinmccarthy.org"}] +license = {text = "MIT"} +description = "Automatically mock your HTTP interactions to simplify and speed up testing" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Environment :: Console", + "Intended Audience :: Developers", + "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 :: Only", + "Programming Language :: Python :: Implementation :: CPython", + "Programming Language :: Python :: Implementation :: PyPy", + "Topic :: Software Development :: Testing", + "Topic :: Internet :: WWW/HTTP", + "License :: OSI Approved :: MIT License", +] +urls = {Homepage = "https://github.com/kevin1024/vcrpy"} +requires-python = ">=3.10" +dependencies = [ + "PyYAML", + "wrapt", +] +dynamic = ["version"] + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.optional-dependencies] +tests = [ + "aiohttp", + "boto3", + "cryptography", + "httpbin", + "httpcore", + "httplib2", + "httpx", + "pycurl; platform_python_implementation !='PyPy'", + "pytest", + "pytest-aiohttp", + "pytest-asyncio", + "pytest-cov", + "pytest-httpbin", + "requests>=2.22.0", + "tornado", + "urllib3", + "werkzeug==2.0.3", +] + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.packages.find] +exclude = ["tests*"] +namespaces = false + +[tool.setuptools.dynamic] +version = {attr = "vcr.__version__"} + +[build-system] +requires = ["setuptools>=61.2"] +build-backend = "setuptools.build_meta" + [tool.codespell] skip = '.git,*.pdf,*.svg,.tox' ignore-regex = "\\\\[fnrstv]" diff --git a/setup.cfg b/setup.cfg index 3c6e79c..339714b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,2 +1,58 @@ -[bdist_wheel] -universal=1 +[metadata] +name = vcrpy +version = attr: vcr.__version__ +author = Kevin McCarthy +author_email = me@kevinmccarthy.org +license = MIT +description = Automatically mock your HTTP interactions to simplify and speed up testing +url = https://github.com/kevin1024/vcrpy +long_description = file: README.rst +long_description_content_type = text/x-rst +classifiers = + Development Status :: 5 - Production/Stable + Environment :: Console + Intended Audience :: Developers + 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 :: Only + Programming Language :: Python :: Implementation :: CPython + Programming Language :: Python :: Implementation :: PyPy + Topic :: Software Development :: Testing + Topic :: Internet :: WWW/HTTP + License :: OSI Approved :: MIT License + +[options] +packages = find: +python_requires = >=3.10 +install_requires = + PyYAML + wrapt +tests_require = + vcrpy[tests] + +[options.packages.find] +exclude = tests* + +[options.extras_require] +tests = + aiohttp + boto3 + cryptography + httpbin + httpcore + httplib2 + httpx + pycurl; platform_python_implementation !='PyPy' + pytest + pytest-aiohttp + pytest-asyncio + pytest-cov + pytest-httpbin + requests>=2.22.0 + tornado + urllib3 + werkzeug==2.0.3 diff --git a/setup.py b/setup.py deleted file mode 100644 index 238e4a3..0000000 --- a/setup.py +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/env python - -import codecs -import os -import re -from pathlib import Path - -from setuptools import find_packages, setup - -long_description = Path("README.rst").read_text() -here = os.path.abspath(os.path.dirname(__file__)) - - -def read(*parts): - # intentionally *not* adding an encoding option to open, See: - # https://github.com/pypa/virtualenv/issues/201#issuecomment-3145690 - with codecs.open(os.path.join(here, *parts), "r") as fp: - return fp.read() - - -def find_version(*file_paths): - version_file = read(*file_paths) - version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", version_file, re.M) - if version_match: - return version_match.group(1) - - raise RuntimeError("Unable to find version string.") - - -install_requires = [ - "PyYAML", - "wrapt", -] - -extras_require = { - "tests": [ - "aiohttp", - "boto3", - "cryptography", - "httpbin", - "httpcore", - "httplib2", - "httpx", - "pycurl; platform_python_implementation !='PyPy'", - "pytest", - "pytest-aiohttp", - "pytest-asyncio", - "pytest-cov", - "pytest-httpbin", - "requests>=2.22.0", - "tornado", - "urllib3", - "werkzeug==2.0.3", - ], -} - -setup( - name="vcrpy", - version=find_version("vcr", "__init__.py"), - description=("Automatically mock your HTTP interactions to simplify and speed up testing"), - long_description=long_description, - long_description_content_type="text/x-rst", - author="Kevin McCarthy", - author_email="me@kevinmccarthy.org", - url="https://github.com/kevin1024/vcrpy", - packages=find_packages(exclude=["tests*"]), - python_requires=">=3.10", - install_requires=install_requires, - license="MIT", - extras_require=extras_require, - tests_require=extras_require["tests"], - classifiers=[ - "Development Status :: 5 - Production/Stable", - "Environment :: Console", - "Intended Audience :: Developers", - "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 :: Only", - "Programming Language :: Python :: Implementation :: CPython", - "Programming Language :: Python :: Implementation :: PyPy", - "Topic :: Software Development :: Testing", - "Topic :: Internet :: WWW/HTTP", - "License :: OSI Approved :: MIT License", - ], -)