From 784270883a87114934e2edefba740c6347703f10 Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Tue, 2 Aug 2022 10:14:21 -0400 Subject: [PATCH 1/6] feat: Support extras in stubtest_third_party.py --- tests/check_consistent.py | 2 +- tests/stubtest_third_party.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/check_consistent.py b/tests/check_consistent.py index 5048c98e01ad..afb86f29a551 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_dependencies", "ignore_missing_stub"}} allowed_files = {"README.md"} diff --git a/tests/stubtest_third_party.py b/tests/stubtest_third_party.py index 02fb0ad15bb2..960e31e493b8 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_dependencies = stubtest_meta.get("extras_dependencies", []) assert isinstance(dist_version, str) - dist_req = f"{dist.name}=={dist_version}" + assert isinstance(extras_dependencies, list) + dist_extras = ", ".join(extras_dependencies) + 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" From bfe141b00397de7de53baeb3241050b32d53a0bf Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Tue, 2 Aug 2022 10:55:55 -0400 Subject: [PATCH 2/6] fix: use extras_dependencies key in packages that allow for it --- stubs/beautifulsoup4/@tests/requirements-stubtest.txt | 2 -- stubs/beautifulsoup4/METADATA.toml | 3 +++ stubs/html5lib/@tests/requirements-stubtest.txt | 1 - stubs/html5lib/METADATA.toml | 3 +++ stubs/tqdm/@tests/requirements-stubtest.txt | 2 -- stubs/tqdm/METADATA.toml | 3 +++ 6 files changed, 9 insertions(+), 5 deletions(-) delete mode 100644 stubs/beautifulsoup4/@tests/requirements-stubtest.txt 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..2737a81058fb 100644 --- a/stubs/beautifulsoup4/METADATA.toml +++ b/stubs/beautifulsoup4/METADATA.toml @@ -1 +1,4 @@ version = "4.11.*" + +[tool.stubtest] +extras_dependencies = ["lxml", "html5lib"] diff --git a/stubs/html5lib/@tests/requirements-stubtest.txt b/stubs/html5lib/@tests/requirements-stubtest.txt index 0bf46c1ccd09..ab90481d5d75 100644 --- a/stubs/html5lib/@tests/requirements-stubtest.txt +++ b/stubs/html5lib/@tests/requirements-stubtest.txt @@ -1,2 +1 @@ -genshi lxml diff --git a/stubs/html5lib/METADATA.toml b/stubs/html5lib/METADATA.toml index c9f594bd7bbd..182e52a70b09 100644 --- a/stubs/html5lib/METADATA.toml +++ b/stubs/html5lib/METADATA.toml @@ -1 +1,4 @@ version = "1.1.*" + +[tool.stubtest] +extras_dependencies = ["genshi"] 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..e2aca19b4f47 100644 --- a/stubs/tqdm/METADATA.toml +++ b/stubs/tqdm/METADATA.toml @@ -1 +1,4 @@ version = "4.64.*" + +[tool.stubtest] +extras_dependencies = ["slack", "telegram"] From 54a39b2e2d9d677df9ae6cb33a7b24ead1e23524 Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Thu, 4 Aug 2022 10:27:49 -0400 Subject: [PATCH 3/6] refactor: rename extras_dependencies to extras --- stubs/beautifulsoup4/METADATA.toml | 2 +- stubs/html5lib/METADATA.toml | 2 +- stubs/tqdm/METADATA.toml | 2 +- tests/check_consistent.py | 2 +- tests/stubtest_third_party.py | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/stubs/beautifulsoup4/METADATA.toml b/stubs/beautifulsoup4/METADATA.toml index 2737a81058fb..5c2d0f17b684 100644 --- a/stubs/beautifulsoup4/METADATA.toml +++ b/stubs/beautifulsoup4/METADATA.toml @@ -1,4 +1,4 @@ version = "4.11.*" [tool.stubtest] -extras_dependencies = ["lxml", "html5lib"] +extras = ["lxml", "html5lib"] diff --git a/stubs/html5lib/METADATA.toml b/stubs/html5lib/METADATA.toml index 182e52a70b09..884214e3d9db 100644 --- a/stubs/html5lib/METADATA.toml +++ b/stubs/html5lib/METADATA.toml @@ -1,4 +1,4 @@ version = "1.1.*" [tool.stubtest] -extras_dependencies = ["genshi"] +extras = ["genshi"] diff --git a/stubs/tqdm/METADATA.toml b/stubs/tqdm/METADATA.toml index e2aca19b4f47..8b856db6e193 100644 --- a/stubs/tqdm/METADATA.toml +++ b/stubs/tqdm/METADATA.toml @@ -1,4 +1,4 @@ version = "4.64.*" [tool.stubtest] -extras_dependencies = ["slack", "telegram"] +extras = ["slack", "telegram"] diff --git a/tests/check_consistent.py b/tests/check_consistent.py index afb86f29a551..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", "extras_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 960e31e493b8..17e8240f8d37 100755 --- a/tests/stubtest_third_party.py +++ b/tests/stubtest_third_party.py @@ -41,10 +41,10 @@ def run_stubtest(dist: Path, *, verbose: bool = False) -> bool: python_exe = str(venv_dir / "bin" / "python") dist_version = metadata["version"] - extras_dependencies = stubtest_meta.get("extras_dependencies", []) + extras = stubtest_meta.get("extras", []) assert isinstance(dist_version, str) - assert isinstance(extras_dependencies, list) - dist_extras = ", ".join(extras_dependencies) + 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. From 3a7f4814720ea6a53e99df08c10afd04d9ac59b7 Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Thu, 4 Aug 2022 10:29:22 -0400 Subject: [PATCH 4/6] refactor: use extras to install urllib3 pysocks --- stubs/urllib3/@tests/requirements-stubtest.txt | 1 - stubs/urllib3/METADATA.toml | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) delete mode 100644 stubs/urllib3/@tests/requirements-stubtest.txt 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"] From 06ea8d63d75b105ee38a10245458785904aaab6c Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Thu, 18 Aug 2022 08:34:26 -0400 Subject: [PATCH 5/6] fix: use extras for requests rather than requirements-stubtest.txt --- stubs/requests/@tests/requirements-stubtest.txt | 1 - stubs/requests/METADATA.toml | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) delete mode 100644 stubs/requests/@tests/requirements-stubtest.txt 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"] From 4cf8bf8086dcf1be5c6453cd7f755b279a6e44b7 Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Thu, 18 Aug 2022 16:44:46 -0400 Subject: [PATCH 6/6] update: html5lib use all extras per hauntsaninja feedback --- stubs/html5lib/@tests/requirements-stubtest.txt | 1 - stubs/html5lib/METADATA.toml | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 stubs/html5lib/@tests/requirements-stubtest.txt diff --git a/stubs/html5lib/@tests/requirements-stubtest.txt b/stubs/html5lib/@tests/requirements-stubtest.txt deleted file mode 100644 index ab90481d5d75..000000000000 --- a/stubs/html5lib/@tests/requirements-stubtest.txt +++ /dev/null @@ -1 +0,0 @@ -lxml diff --git a/stubs/html5lib/METADATA.toml b/stubs/html5lib/METADATA.toml index 884214e3d9db..ed8568776fdc 100644 --- a/stubs/html5lib/METADATA.toml +++ b/stubs/html5lib/METADATA.toml @@ -1,4 +1,4 @@ version = "1.1.*" [tool.stubtest] -extras = ["genshi"] +extras = ["all"]