diff --git a/stubs/beautifulsoup4/@tests/requirements-stubtest.txt b/stubs/beautifulsoup4/@tests/requirements-stubtest.txt deleted file mode 100644 index 5ed6cb7104f6..000000000000 --- a/stubs/beautifulsoup4/@tests/requirements-stubtest.txt +++ /dev/null @@ -1,2 +0,0 @@ -html5lib -lxml diff --git a/stubs/beautifulsoup4/METADATA.toml b/stubs/beautifulsoup4/METADATA.toml index 9c5a4bca25dc..5c2d0f17b684 100644 --- a/stubs/beautifulsoup4/METADATA.toml +++ b/stubs/beautifulsoup4/METADATA.toml @@ -1 +1,4 @@ version = "4.11.*" + +[tool.stubtest] +extras = ["lxml", "html5lib"] diff --git a/stubs/html5lib/@tests/requirements-stubtest.txt b/stubs/html5lib/@tests/requirements-stubtest.txt deleted file mode 100644 index 0bf46c1ccd09..000000000000 --- a/stubs/html5lib/@tests/requirements-stubtest.txt +++ /dev/null @@ -1,2 +0,0 @@ -genshi -lxml diff --git a/stubs/html5lib/METADATA.toml b/stubs/html5lib/METADATA.toml index c9f594bd7bbd..ed8568776fdc 100644 --- a/stubs/html5lib/METADATA.toml +++ b/stubs/html5lib/METADATA.toml @@ -1 +1,4 @@ version = "1.1.*" + +[tool.stubtest] +extras = ["all"] diff --git a/stubs/requests/@tests/requirements-stubtest.txt b/stubs/requests/@tests/requirements-stubtest.txt deleted file mode 100644 index 60f2f370a492..000000000000 --- a/stubs/requests/@tests/requirements-stubtest.txt +++ /dev/null @@ -1 +0,0 @@ -PySocks>=1.5.6, !=1.5.7 diff --git a/stubs/requests/METADATA.toml b/stubs/requests/METADATA.toml index 8d026239ea98..0bd4bd92e034 100644 --- a/stubs/requests/METADATA.toml +++ b/stubs/requests/METADATA.toml @@ -1,2 +1,5 @@ version = "2.28.*" requires = ["types-urllib3<1.27"] # keep in sync with requests's setup.py + +[tool.stubtest] +extras = ["socks"] diff --git a/stubs/tqdm/@tests/requirements-stubtest.txt b/stubs/tqdm/@tests/requirements-stubtest.txt index dd9c059cad6d..5f9b9576ebc7 100644 --- a/stubs/tqdm/@tests/requirements-stubtest.txt +++ b/stubs/tqdm/@tests/requirements-stubtest.txt @@ -2,5 +2,3 @@ tensorflow pandas dask rich -requests -slack-sdk diff --git a/stubs/tqdm/METADATA.toml b/stubs/tqdm/METADATA.toml index 328bb0b8beaf..8b856db6e193 100644 --- a/stubs/tqdm/METADATA.toml +++ b/stubs/tqdm/METADATA.toml @@ -1 +1,4 @@ version = "4.64.*" + +[tool.stubtest] +extras = ["slack", "telegram"] diff --git a/stubs/urllib3/@tests/requirements-stubtest.txt b/stubs/urllib3/@tests/requirements-stubtest.txt deleted file mode 100644 index 2cf6d132e7ff..000000000000 --- a/stubs/urllib3/@tests/requirements-stubtest.txt +++ /dev/null @@ -1 +0,0 @@ -PySocks>=1.5.6,<2.0,!=1.5.7 diff --git a/stubs/urllib3/METADATA.toml b/stubs/urllib3/METADATA.toml index 68342cc21165..0976018b4a1d 100644 --- a/stubs/urllib3/METADATA.toml +++ b/stubs/urllib3/METADATA.toml @@ -1 +1,4 @@ version = "1.26.*" + +[tool.stubtest] +extras = ["socks"] diff --git a/tests/check_consistent.py b/tests/check_consistent.py index 5048c98e01ad..dbf1e70f98b8 100755 --- a/tests/check_consistent.py +++ b/tests/check_consistent.py @@ -14,7 +14,7 @@ from packaging.version import Version metadata_keys = {"version", "requires", "extra_description", "obsolete_since", "no_longer_updated", "tool"} -tool_keys = {"stubtest": {"skip", "apt_dependencies", "ignore_missing_stub"}} +tool_keys = {"stubtest": {"skip", "apt_dependencies", "extras", "ignore_missing_stub"}} allowed_files = {"README.md"} diff --git a/tests/stubtest_third_party.py b/tests/stubtest_third_party.py index 02fb0ad15bb2..17e8240f8d37 100755 --- a/tests/stubtest_third_party.py +++ b/tests/stubtest_third_party.py @@ -41,8 +41,11 @@ def run_stubtest(dist: Path, *, verbose: bool = False) -> bool: python_exe = str(venv_dir / "bin" / "python") dist_version = metadata["version"] + extras = stubtest_meta.get("extras", []) assert isinstance(dist_version, str) - dist_req = f"{dist.name}=={dist_version}" + assert isinstance(extras, list) + dist_extras = ", ".join(extras) + dist_req = f"{dist.name}[{dist_extras}]=={dist_version}" # If @tests/requirements-stubtest.txt exists, run "pip install" on it. req_path = dist / "@tests" / "requirements-stubtest.txt"