@@ -47,22 +47,26 @@ def get_versions_from_code() -> dict[str, str]:
47
47
versions = _optional .VERSIONS
48
48
for item in EXCLUDE_DEPS :
49
49
versions .pop (item , None )
50
- return {
51
- install_map .get (k , k ).casefold (): v
52
- for k , v in versions .items ()
53
- if k != "pytest"
54
- }
50
+ return {install_map .get (k , k ).casefold (): v for k , v in versions .items ()}
55
51
56
52
57
53
def get_versions_from_ci (content : list [str ]) -> tuple [dict [str , str ], dict [str , str ]]:
58
54
"""Min versions in CI job for testing all optional dependencies."""
59
55
# Don't parse with pyyaml because it ignores comments we're looking for
60
56
seen_required = False
61
57
seen_optional = False
58
+ seen_test = False
62
59
required_deps = {}
63
60
optional_deps = {}
64
61
for line in content :
65
- if "# required dependencies" in line :
62
+ if "# test dependencies" in line :
63
+ seen_test = True
64
+ elif seen_test and "- pytest>=" in line :
65
+ # Only grab pytest
66
+ package , version = line .strip ().split (">=" )
67
+ package = package [2 :]
68
+ optional_deps [package .casefold ()] = version
69
+ elif "# required dependencies" in line :
66
70
seen_required = True
67
71
elif "# optional dependencies" in line :
68
72
seen_optional = True
@@ -87,17 +91,16 @@ def get_versions_from_ci(content: list[str]) -> tuple[dict[str, str], dict[str,
87
91
def get_versions_from_toml () -> dict [str , str ]:
88
92
"""Min versions in pyproject.toml for pip install pandas[extra]."""
89
93
install_map = _optional .INSTALL_MAPPING
90
- dependencies = set ()
91
94
optional_dependencies = {}
92
95
93
96
with open (SETUP_PATH , "rb" ) as pyproject_f :
94
97
pyproject_toml = tomllib .load (pyproject_f )
95
98
opt_deps = pyproject_toml ["project" ]["optional-dependencies" ]
96
99
dependencies = set (opt_deps ["all" ])
97
100
98
- # remove test dependencies
99
- test_deps = set ( opt_deps ["test" ])
100
- dependencies = dependencies .difference (test_deps )
101
+ # remove pytest plugin dependencies
102
+ pytest_plugins = { dep for dep in opt_deps ["test" ] if dep . startswith ( "pytest-" )}
103
+ dependencies = dependencies .difference (pytest_plugins )
101
104
102
105
for dependency in dependencies :
103
106
package , version = dependency .strip ().split (">=" )
0 commit comments