Skip to content

Commit ba2c382

Browse files
authored
Merge pull request #6660 from cjerdonek/rename-egg-info-matches
Rename _egg_info_matches()
2 parents edbd082 + 2f1be4e commit ba2c382

File tree

2 files changed

+29
-25
lines changed

2 files changed

+29
-25
lines changed

src/pip/_internal/index.py

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,9 @@ def evaluate_link(self, link, search):
414414
return (False, 'No sources permitted for %s' % search.supplied)
415415

416416
if not version:
417-
version = _egg_info_matches(egg_info, search.canonical)
417+
version = _extract_version_from_fragment(
418+
egg_info, search.canonical,
419+
)
418420
if not version:
419421
return (False, 'Missing project version for %s' % search.supplied)
420422

@@ -1107,45 +1109,47 @@ def _package_versions(
11071109
return result
11081110

11091111

1110-
def _find_name_version_sep(egg_info, canonical_name):
1112+
def _find_name_version_sep(fragment, canonical_name):
11111113
# type: (str, str) -> int
11121114
"""Find the separator's index based on the package's canonical name.
11131115
1114-
`egg_info` must be an egg info string for the given package, and
1115-
`canonical_name` must be the package's canonical name.
1116+
:param fragment: A <package>+<version> filename "fragment" (stem) or
1117+
egg fragment.
1118+
:param canonical_name: The package's canonical name.
11161119
11171120
This function is needed since the canonicalized name does not necessarily
11181121
have the same length as the egg info's name part. An example::
11191122
1120-
>>> egg_info = 'foo__bar-1.0'
1123+
>>> fragment = 'foo__bar-1.0'
11211124
>>> canonical_name = 'foo-bar'
1122-
>>> _find_name_version_sep(egg_info, canonical_name)
1125+
>>> _find_name_version_sep(fragment, canonical_name)
11231126
8
11241127
"""
11251128
# Project name and version must be separated by one single dash. Find all
11261129
# occurrences of dashes; if the string in front of it matches the canonical
11271130
# name, this is the one separating the name and version parts.
1128-
for i, c in enumerate(egg_info):
1131+
for i, c in enumerate(fragment):
11291132
if c != "-":
11301133
continue
1131-
if canonicalize_name(egg_info[:i]) == canonical_name:
1134+
if canonicalize_name(fragment[:i]) == canonical_name:
11321135
return i
1133-
raise ValueError("{} does not match {}".format(egg_info, canonical_name))
1136+
raise ValueError("{} does not match {}".format(fragment, canonical_name))
11341137

11351138

1136-
def _egg_info_matches(egg_info, canonical_name):
1139+
def _extract_version_from_fragment(fragment, canonical_name):
11371140
# type: (str, str) -> Optional[str]
1138-
"""Pull the version part out of a string.
1141+
"""Parse the version string from a <package>+<version> filename
1142+
"fragment" (stem) or egg fragment.
11391143
1140-
:param egg_info: The string to parse. E.g. foo-2.1
1144+
:param fragment: The string to parse. E.g. foo-2.1
11411145
:param canonical_name: The canonicalized name of the package this
11421146
belongs to.
11431147
"""
11441148
try:
1145-
version_start = _find_name_version_sep(egg_info, canonical_name) + 1
1149+
version_start = _find_name_version_sep(fragment, canonical_name) + 1
11461150
except ValueError:
11471151
return None
1148-
version = egg_info[version_start:]
1152+
version = fragment[version_start:]
11491153
if not version:
11501154
return None
11511155
return version

tests/unit/test_index.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from pip._internal.index import (
1010
CandidateEvaluator, HTMLPage, Link, PackageFinder, Search,
1111
_check_link_requires_python, _clean_link, _determine_base_url,
12-
_egg_info_matches, _find_name_version_sep, _get_html_page,
12+
_extract_version_from_fragment, _find_name_version_sep, _get_html_page,
1313
)
1414
from pip._internal.models.candidate import InstallationCandidate
1515
from pip._internal.models.search_scope import SearchScope
@@ -520,7 +520,7 @@ def test_secure_origin(location, trusted, expected):
520520

521521

522522
@pytest.mark.parametrize(
523-
("egg_info", "canonical_name", "expected"),
523+
("fragment", "canonical_name", "expected"),
524524
[
525525
# Trivial.
526526
("pip-18.0", "pip", 3),
@@ -549,13 +549,13 @@ def test_secure_origin(location, trusted, expected):
549549
("zope.interface-", "zope-interface", 14),
550550
],
551551
)
552-
def test_find_name_version_sep(egg_info, canonical_name, expected):
553-
index = _find_name_version_sep(egg_info, canonical_name)
552+
def test_find_name_version_sep(fragment, canonical_name, expected):
553+
index = _find_name_version_sep(fragment, canonical_name)
554554
assert index == expected
555555

556556

557557
@pytest.mark.parametrize(
558-
("egg_info", "canonical_name"),
558+
("fragment", "canonical_name"),
559559
[
560560
# A dash must follow the package name.
561561
("zope.interface4.5.0", "zope-interface"),
@@ -564,15 +564,15 @@ def test_find_name_version_sep(egg_info, canonical_name, expected):
564564
("zope.interface", "zope-interface"),
565565
],
566566
)
567-
def test_find_name_version_sep_failure(egg_info, canonical_name):
567+
def test_find_name_version_sep_failure(fragment, canonical_name):
568568
with pytest.raises(ValueError) as ctx:
569-
_find_name_version_sep(egg_info, canonical_name)
570-
message = "{} does not match {}".format(egg_info, canonical_name)
569+
_find_name_version_sep(fragment, canonical_name)
570+
message = "{} does not match {}".format(fragment, canonical_name)
571571
assert str(ctx.value) == message
572572

573573

574574
@pytest.mark.parametrize(
575-
("egg_info", "canonical_name", "expected"),
575+
("fragment", "canonical_name", "expected"),
576576
[
577577
# Trivial.
578578
("pip-18.0", "pip", "18.0"),
@@ -604,8 +604,8 @@ def test_find_name_version_sep_failure(egg_info, canonical_name):
604604
("zope.interface", "zope-interface", None),
605605
],
606606
)
607-
def test_egg_info_matches(egg_info, canonical_name, expected):
608-
version = _egg_info_matches(egg_info, canonical_name)
607+
def test_extract_version_from_fragment(fragment, canonical_name, expected):
608+
version = _extract_version_from_fragment(fragment, canonical_name)
609609
assert version == expected
610610

611611

0 commit comments

Comments
 (0)