Skip to content

Commit e485078

Browse files
committed
Remove redundant code paths (1/2)
We are now constrained on `pip >= 21.2.4` (bcfd93c). This commit elliminates code paths that were there previously in order to cater to the older versions of Pip: - `PipSession` is now only found in `pip._internal._network.session`. - `install_req_from_line` is always used.
1 parent 42294c1 commit e485078

File tree

3 files changed

+21
-35
lines changed

3 files changed

+21
-35
lines changed

pip_check_reqs/common.py

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,8 @@
1313

1414
from . import __version__
1515

16-
# Between different versions of pip the location of PipSession has changed.
17-
try:
18-
from pip._internal.network.session import PipSession
19-
except ImportError: # pragma: no cover
20-
from pip._internal.download import PipSession
16+
from pip._internal.network.session import PipSession
17+
from pip._internal.req.constructors import install_req_from_line
2118
from pip._internal.req.req_file import parse_requirements
2219

2320

@@ -137,16 +134,9 @@ def find_required_modules(options, requirements_filename: str):
137134
explicit = set()
138135
for requirement in parse_requirements(requirements_filename,
139136
session=PipSession()):
140-
try:
141-
requirement_name = requirement.name
142-
# The type of "requirement" changed between pip versions.
143-
# We exclude the "except" from coverage so that on any pip version we
144-
# can report 100% coverage.
145-
except AttributeError: # pragma: no cover
146-
from pip._internal.req.constructors import install_req_from_line
147-
requirement_name = install_req_from_line(
148-
requirement.requirement,
149-
).name
137+
requirement_name = install_req_from_line(
138+
requirement.requirement,
139+
).name
150140

151141
if options.ignore_reqs(requirement):
152142
log.debug('ignoring requirement: %s', requirement_name)
@@ -193,13 +183,10 @@ def ignorer(ignore_cfg):
193183
def f(candidate, ignore_cfg=ignore_cfg):
194184
for ignore in ignore_cfg:
195185
try:
196-
from pip._internal.req.constructors import (
197-
install_req_from_line,
198-
)
199-
candidate_path = install_req_from_line( # pragma: no cover
186+
candidate_path = install_req_from_line(
200187
candidate.requirement,
201188
).name
202-
except (ImportError, AttributeError):
189+
except AttributeError:
203190
try:
204191
candidate_path = candidate.name
205192
except AttributeError:

pip_check_reqs/find_missing_reqs.py

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,8 @@
88

99
from packaging.utils import canonicalize_name
1010
from pip._internal.commands.show import search_packages_info
11-
# Between different versions of pip the location of PipSession has changed.
12-
try:
13-
from pip._internal.network.session import PipSession
14-
except ImportError: # pragma: no cover
15-
from pip._internal.download import PipSession
11+
from pip._internal.network.session import PipSession
12+
from pip._internal.req.constructors import install_req_from_line
1613
from pip._internal.req.req_file import parse_requirements
1714

1815
from pip_check_reqs import common
@@ -89,16 +86,9 @@ def find_missing_reqs(options, requirements_filename):
8986
requirements_filename,
9087
session=PipSession(),
9188
):
92-
try:
93-
requirement_name = requirement.name
94-
# The type of "requirement" changed between pip versions.
95-
# We exclude the "except" from coverage so that on any pip version we
96-
# can report 100% coverage.
97-
except AttributeError: # pragma: no cover
98-
from pip._internal.req.constructors import install_req_from_line
99-
requirement_name = install_req_from_line(
100-
requirement.requirement,
101-
).name
89+
requirement_name = install_req_from_line(
90+
requirement.requirement,
91+
).name
10292

10393
log.debug('found requirement: %s', requirement_name)
10494
explicit.add(canonicalize_name(requirement_name))

tests/package_info_mock.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from typing import List, Optional, NamedTuple
2+
3+
4+
# A stand-in for pip._internal.commands.show._PackageInfo, as returned by
5+
# search_packages_info from the same module
6+
class _PackageInfo(NamedTuple):
7+
name: str
8+
location: str
9+
files: Optional[List[str]]

0 commit comments

Comments
 (0)