From 2c12ce54e0d1bed69eb41f34bc48b3844f940db5 Mon Sep 17 00:00:00 2001 From: Blazej Michalik Date: Tue, 8 Nov 2022 02:50:52 +0100 Subject: [PATCH] Remove redundant code paths (1/2) We are now constrained on `pip >= 21.2.4` (bcfd93ce). 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. --- pip_check_reqs/common.py | 27 +++++++-------------------- pip_check_reqs/find_missing_reqs.py | 20 +++++--------------- 2 files changed, 12 insertions(+), 35 deletions(-) diff --git a/pip_check_reqs/common.py b/pip_check_reqs/common.py index 4f7befb..13cb048 100644 --- a/pip_check_reqs/common.py +++ b/pip_check_reqs/common.py @@ -13,11 +13,8 @@ from . import __version__ -# Between different versions of pip the location of PipSession has changed. -try: - from pip._internal.network.session import PipSession -except ImportError: # pragma: no cover - from pip._internal.download import PipSession +from pip._internal.network.session import PipSession +from pip._internal.req.constructors import install_req_from_line from pip._internal.req.req_file import parse_requirements @@ -137,16 +134,9 @@ def find_required_modules(options, requirements_filename: str): explicit = set() for requirement in parse_requirements(requirements_filename, session=PipSession()): - try: - requirement_name = requirement.name - # The type of "requirement" changed between pip versions. - # We exclude the "except" from coverage so that on any pip version we - # can report 100% coverage. - except AttributeError: # pragma: no cover - from pip._internal.req.constructors import install_req_from_line - requirement_name = install_req_from_line( - requirement.requirement, - ).name + requirement_name = install_req_from_line( + requirement.requirement, + ).name if options.ignore_reqs(requirement): log.debug('ignoring requirement: %s', requirement_name) @@ -193,13 +183,10 @@ def ignorer(ignore_cfg): def f(candidate, ignore_cfg=ignore_cfg): for ignore in ignore_cfg: try: - from pip._internal.req.constructors import ( - install_req_from_line, - ) - candidate_path = install_req_from_line( # pragma: no cover + candidate_path = install_req_from_line( candidate.requirement, ).name - except (ImportError, AttributeError): + except AttributeError: try: candidate_path = candidate.name except AttributeError: diff --git a/pip_check_reqs/find_missing_reqs.py b/pip_check_reqs/find_missing_reqs.py index db19bc4..773959c 100644 --- a/pip_check_reqs/find_missing_reqs.py +++ b/pip_check_reqs/find_missing_reqs.py @@ -8,11 +8,8 @@ from packaging.utils import canonicalize_name from pip._internal.commands.show import search_packages_info -# Between different versions of pip the location of PipSession has changed. -try: - from pip._internal.network.session import PipSession -except ImportError: # pragma: no cover - from pip._internal.download import PipSession +from pip._internal.network.session import PipSession +from pip._internal.req.constructors import install_req_from_line from pip._internal.req.req_file import parse_requirements from pip_check_reqs import common @@ -89,16 +86,9 @@ def find_missing_reqs(options, requirements_filename): requirements_filename, session=PipSession(), ): - try: - requirement_name = requirement.name - # The type of "requirement" changed between pip versions. - # We exclude the "except" from coverage so that on any pip version we - # can report 100% coverage. - except AttributeError: # pragma: no cover - from pip._internal.req.constructors import install_req_from_line - requirement_name = install_req_from_line( - requirement.requirement, - ).name + requirement_name = install_req_from_line( + requirement.requirement, + ).name log.debug('found requirement: %s', requirement_name) explicit.add(canonicalize_name(requirement_name))