From d80b616906e2cca4a856bc4f8c61d9f88dcfa590 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Thu, 26 Oct 2023 23:19:40 +0100 Subject: [PATCH] Migrate setuptools to use pyproject.toml (#585) --- .pre-commit-config.yaml | 9 ----- pyproject.toml | 57 ++++++++++++++++++++++++++++++ requirements/py310.txt | 6 ++-- requirements/py311.txt | 2 +- requirements/py312.txt | 2 +- requirements/py38.txt | 6 ++-- requirements/py39.txt | 6 ++-- requirements/requirements.in | 2 +- setup.cfg | 68 ------------------------------------ tox.ini | 4 +++ 10 files changed, 76 insertions(+), 86 deletions(-) delete mode 100644 setup.cfg diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 575d787..0414f18 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,14 +17,6 @@ repos: rev: 1.2.0 hooks: - id: pyproject-fmt -- repo: https://github.com/asottile/setup-cfg-fmt - rev: v2.5.0 - hooks: - - id: setup-cfg-fmt - args: - - --include-version-classifiers - - --max-py-version - - '3.12' - repo: https://github.com/tox-dev/tox-ini-fmt rev: 1.3.1 hooks: @@ -68,7 +60,6 @@ repos: - flake8-bugbear - flake8-comprehensions - flake8-tidy-imports - - flake8-typing-imports - repo: https://github.com/pre-commit/mirrors-mypy rev: v1.6.1 hooks: diff --git a/pyproject.toml b/pyproject.toml index 74a500d..d7733f5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,6 +4,46 @@ requires = [ "setuptools", ] +[project] +name = "pytest-randomly" +version = "3.15.0" +description = "Pytest plugin to randomly order tests and control random.seed." +readme = {file = "README.rst", content-type = "text/x-rst"} +keywords = [ + "pytest", + "random", + "randomise", + "randomize", + "randomly", +] +license = {text = "MIT"} +authors = [{name = "Adam Johnson", email = "me@adamj.eu"}] +requires-python = ">=3.8" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Framework :: Pytest", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Natural Language :: English", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Typing :: Typed", +] +dependencies = [ + 'importlib-metadata>=3.6; python_version < "3.10"', + "pytest", +] +[project.urls] +Changelog = "https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst" +Funding = "https://adamj.eu/books/" +Repository = "https://github.com/pytest-dev/pytest-randomly" +[project.entry-points.pytest11] +randomly = "pytest_randomly" + [tool.black] target-version = ['py38'] @@ -13,6 +53,23 @@ addopts = """\ --strict-markers """ +[tool.coverage.run] +branch = true +parallel = true +source = [ + "pytest_randomly", + "tests", +] + +[tool.coverage.paths] +source = [ + "src", + ".tox/**/site-packages", +] + +[tool.coverage.report] +show_missing = true + [tool.mypy] mypy_path = "src/" namespace_packages = false diff --git a/requirements/py310.txt b/requirements/py310.txt index 684c53d..2041ffe 100644 --- a/requirements/py310.txt +++ b/requirements/py310.txt @@ -8,7 +8,7 @@ asgiref==3.7.2 \ --hash=sha256:89b2ef2247e3b562a16eef663bc0e2e703ec6468e2fa8a5cd61cd449786d4f6e \ --hash=sha256:9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed # via django -coverage==7.3.2 \ +coverage[toml]==7.3.2 \ --hash=sha256:0cbf38419fb1a347aaf63481c00f0bdc86889d9fbf3f25109cf96c26b403fda1 \ --hash=sha256:12d15ab5833a997716d76f2ac1e4b4d536814fc213c85ca72756c19e5a6b3d63 \ --hash=sha256:149de1d2401ae4655c436a3dced6dd153f4c3309f599c3d4bd97ab172eaf02d9 \ @@ -159,7 +159,9 @@ sqlparse==0.4.4 \ tomli==2.0.1 \ --hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \ --hash=sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f - # via pytest + # via + # coverage + # pytest typing-extensions==4.8.0 \ --hash=sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0 \ --hash=sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef diff --git a/requirements/py311.txt b/requirements/py311.txt index 57e688d..b326601 100644 --- a/requirements/py311.txt +++ b/requirements/py311.txt @@ -8,7 +8,7 @@ asgiref==3.7.2 \ --hash=sha256:89b2ef2247e3b562a16eef663bc0e2e703ec6468e2fa8a5cd61cd449786d4f6e \ --hash=sha256:9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed # via django -coverage==7.3.2 \ +coverage[toml]==7.3.2 \ --hash=sha256:0cbf38419fb1a347aaf63481c00f0bdc86889d9fbf3f25109cf96c26b403fda1 \ --hash=sha256:12d15ab5833a997716d76f2ac1e4b4d536814fc213c85ca72756c19e5a6b3d63 \ --hash=sha256:149de1d2401ae4655c436a3dced6dd153f4c3309f599c3d4bd97ab172eaf02d9 \ diff --git a/requirements/py312.txt b/requirements/py312.txt index d9b937c..e0f73c8 100644 --- a/requirements/py312.txt +++ b/requirements/py312.txt @@ -8,7 +8,7 @@ asgiref==3.7.2 \ --hash=sha256:89b2ef2247e3b562a16eef663bc0e2e703ec6468e2fa8a5cd61cd449786d4f6e \ --hash=sha256:9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed # via django -coverage==7.3.2 \ +coverage[toml]==7.3.2 \ --hash=sha256:0cbf38419fb1a347aaf63481c00f0bdc86889d9fbf3f25109cf96c26b403fda1 \ --hash=sha256:12d15ab5833a997716d76f2ac1e4b4d536814fc213c85ca72756c19e5a6b3d63 \ --hash=sha256:149de1d2401ae4655c436a3dced6dd153f4c3309f599c3d4bd97ab172eaf02d9 \ diff --git a/requirements/py38.txt b/requirements/py38.txt index 2ad4a63..039a6e9 100644 --- a/requirements/py38.txt +++ b/requirements/py38.txt @@ -26,7 +26,7 @@ backports-zoneinfo==0.2.1 \ --hash=sha256:f04e857b59d9d1ccc39ce2da1021d196e47234873820cbeaad210724b1ee28ac \ --hash=sha256:fadbfe37f74051d024037f223b8e001611eac868b5c5b06144ef4d8b799862f2 # via django -coverage==7.3.2 \ +coverage[toml]==7.3.2 \ --hash=sha256:0cbf38419fb1a347aaf63481c00f0bdc86889d9fbf3f25109cf96c26b403fda1 \ --hash=sha256:12d15ab5833a997716d76f2ac1e4b4d536814fc213c85ca72756c19e5a6b3d63 \ --hash=sha256:149de1d2401ae4655c436a3dced6dd153f4c3309f599c3d4bd97ab172eaf02d9 \ @@ -177,7 +177,9 @@ sqlparse==0.4.4 \ tomli==2.0.1 \ --hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \ --hash=sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f - # via pytest + # via + # coverage + # pytest typing-extensions==4.8.0 \ --hash=sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0 \ --hash=sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef diff --git a/requirements/py39.txt b/requirements/py39.txt index 25a8a7a..aaf03b1 100644 --- a/requirements/py39.txt +++ b/requirements/py39.txt @@ -8,7 +8,7 @@ asgiref==3.7.2 \ --hash=sha256:89b2ef2247e3b562a16eef663bc0e2e703ec6468e2fa8a5cd61cd449786d4f6e \ --hash=sha256:9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed # via django -coverage==7.3.2 \ +coverage[toml]==7.3.2 \ --hash=sha256:0cbf38419fb1a347aaf63481c00f0bdc86889d9fbf3f25109cf96c26b403fda1 \ --hash=sha256:12d15ab5833a997716d76f2ac1e4b4d536814fc213c85ca72756c19e5a6b3d63 \ --hash=sha256:149de1d2401ae4655c436a3dced6dd153f4c3309f599c3d4bd97ab172eaf02d9 \ @@ -163,7 +163,9 @@ sqlparse==0.4.4 \ tomli==2.0.1 \ --hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \ --hash=sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f - # via pytest + # via + # coverage + # pytest typing-extensions==4.8.0 \ --hash=sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0 \ --hash=sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef diff --git a/requirements/requirements.in b/requirements/requirements.in index 6c24e30..14169eb 100644 --- a/requirements/requirements.in +++ b/requirements/requirements.in @@ -1,4 +1,4 @@ -coverage +coverage[toml] factory_boy faker importlib-metadata >= 3.6.0 ; python_version < "3.10" diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 9a9ac7f..0000000 --- a/setup.cfg +++ /dev/null @@ -1,68 +0,0 @@ -[metadata] -name = pytest_randomly -version = 3.15.0 -description = Pytest plugin to randomly order tests and control random.seed. -long_description = file: README.rst -long_description_content_type = text/x-rst -url = https://github.com/pytest-dev/pytest-randomly -author = Adam Johnson -author_email = me@adamj.eu -license = MIT -license_files = LICENSE -classifiers = - Development Status :: 5 - Production/Stable - Framework :: Pytest - Intended Audience :: Developers - License :: OSI Approved :: MIT License - Natural Language :: English - Programming Language :: Python :: 3 - Programming Language :: Python :: 3 :: Only - Programming Language :: Python :: 3.8 - Programming Language :: Python :: 3.9 - Programming Language :: Python :: 3.10 - Programming Language :: Python :: 3.11 - Programming Language :: Python :: 3.12 - Typing :: Typed -keywords = pytest, random, randomize, randomise, randomly -project_urls = - Changelog = https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst - Funding = https://adamj.eu/books/ - Mastodon = https://fosstodon.org/@adamchainz - Twitter = https://twitter.com/adamchainz - -[options] -packages = find: -install_requires = - pytest - importlib-metadata>=3.6.0 ;python_version < "3.10" -python_requires = >=3.8 -include_package_data = True -package_dir = - =src -zip_safe = False - -[options.packages.find] -where = src - -[options.entry_points] -pytest11 = - randomly = pytest_randomly - -[coverage:run] -branch = True -parallel = True -source = - pytest_randomly - tests - -[coverage:paths] -source = - src - .tox/**/site-packages - -[coverage:report] -show_missing = True - -[flake8] -max-line-length = 88 -extend-ignore = E203 diff --git a/tox.ini b/tox.ini index 808791e..b3972e4 100644 --- a/tox.ini +++ b/tox.ini @@ -19,3 +19,7 @@ commands = -W ignore:'datetime.datetime.utcfromtimestamp() is deprecated':DeprecationWarning \ -m coverage run \ -m pytest -p no:randomly {posargs:tests} + +[flake8] +max-line-length = 88 +extend-ignore = E203