From f2e2e2b4701abc1f2f7093000db008fbcbf49210 Mon Sep 17 00:00:00 2001 From: Richard Frank Date: Sat, 15 Feb 2020 13:30:28 -0500 Subject: [PATCH] Cleanup code (#1068) * Fixed docstring * Standardize on key_from_ireq for InstallRequirements * Ensure finally can run even if we fail to create cache_file --- piptools/repositories/local.py | 6 +++--- piptools/resolver.py | 9 +++------ piptools/scripts/compile.py | 5 ++--- piptools/utils.py | 4 ++-- tests/conftest.py | 10 ++++------ tests/test_cache.py | 4 ++-- 6 files changed, 16 insertions(+), 22 deletions(-) diff --git a/piptools/repositories/local.py b/piptools/repositories/local.py index f38978491..961bc0bd6 100644 --- a/piptools/repositories/local.py +++ b/piptools/repositories/local.py @@ -6,7 +6,7 @@ from .._compat import FAVORITE_HASH from .base import BaseRepository -from piptools.utils import as_tuple, key_from_req, make_install_requirement +from piptools.utils import as_tuple, key_from_ireq, make_install_requirement def ireq_satisfied_by_existing_pin(ireq, existing_pin): @@ -56,7 +56,7 @@ def freshen_build_caches(self): self.repository.freshen_build_caches() def find_best_match(self, ireq, prereleases=None): - key = key_from_req(ireq.req) + key = key_from_ireq(ireq) existing_pin = self.existing_pins.get(key) if existing_pin and ireq_satisfied_by_existing_pin(ireq, existing_pin): project, version, _ = as_tuple(existing_pin) @@ -70,7 +70,7 @@ def get_dependencies(self, ireq): return self.repository.get_dependencies(ireq) def get_hashes(self, ireq): - key = key_from_req(ireq.req) + key = key_from_ireq(ireq) existing_pin = self.existing_pins.get(key) if existing_pin and ireq_satisfied_by_existing_pin(ireq, existing_pin): hashes = existing_pin.options.get("hashes", {}) diff --git a/piptools/resolver.py b/piptools/resolver.py index 4cf3f2aa4..6cfcd935d 100644 --- a/piptools/resolver.py +++ b/piptools/resolver.py @@ -17,7 +17,6 @@ is_pinned_requirement, is_url_requirement, key_from_ireq, - key_from_req, ) green = partial(click.style, fg="green") @@ -31,7 +30,7 @@ class RequirementSummary(object): def __init__(self, ireq): self.req = ireq.req - self.key = key_from_req(ireq.req) + self.key = key_from_ireq(ireq) self.extras = str(sorted(ireq.extras)) self.specifier = str(ireq.specifier) @@ -274,12 +273,10 @@ def _resolve_one_round(self): if has_changed: log.debug("") log.debug("New dependencies found in this round:") - for new_dependency in sorted(diff, key=lambda req: key_from_req(req.req)): + for new_dependency in sorted(diff, key=key_from_ireq): log.debug(" adding {}".format(new_dependency)) log.debug("Removed dependencies in this round:") - for removed_dependency in sorted( - removed, key=lambda req: key_from_req(req.req) - ): + for removed_dependency in sorted(removed, key=key_from_ireq): log.debug(" removing {}".format(removed_dependency)) # Store the last round's results in the their_constraints diff --git a/piptools/scripts/compile.py b/piptools/scripts/compile.py index 1f5bbeb74..39aaf3da6 100755 --- a/piptools/scripts/compile.py +++ b/piptools/scripts/compile.py @@ -22,7 +22,6 @@ get_trusted_hosts, is_pinned_requirement, key_from_ireq, - key_from_req, ) from ..writer import OutputWriter @@ -279,7 +278,7 @@ def cli( # Parse all constraints coming from --upgrade-package/-P upgrade_reqs_gen = (install_req_from_line(pkg) for pkg in upgrade_packages) upgrade_install_reqs = { - key_from_req(install_req.req): install_req for install_req in upgrade_reqs_gen + key_from_ireq(install_req): install_req for install_req in upgrade_reqs_gen } existing_pins_to_upgrade = set() @@ -303,7 +302,7 @@ def cli( # constraints, and separately gather pins to be upgraded existing_pins = {} for ireq in filter(is_pinned_requirement, ireqs): - key = key_from_req(ireq.req) + key = key_from_ireq(ireq) if key in upgrade_install_reqs: existing_pins_to_upgrade.add(key) else: diff --git a/piptools/utils.py b/piptools/utils.py index 1d807d90e..463027bb2 100644 --- a/piptools/utils.py +++ b/piptools/utils.py @@ -137,7 +137,7 @@ def as_tuple(ireq): if not is_pinned_requirement(ireq): raise TypeError("Expected a pinned InstallRequirement, got {}".format(ireq)) - name = key_from_req(ireq.req) + name = key_from_ireq(ireq) version = next(iter(ireq.specifier._specs))._spec[1] extras = tuple(sorted(ireq.extras)) return name, version, extras @@ -186,7 +186,7 @@ def lookup_table(values, key=None, keyval=None, unique=False, use_lists=False): ... 'q': ['qux', 'quux'] ... } - The values of the resulting lookup table will be values, not sets. + The values of the resulting lookup table will be lists, not sets. For extra power, you can even change the values while building up the LUT. To do so, use the `keyval` function instead of the `key` arg: diff --git a/tests/conftest.py b/tests/conftest.py index 54fb1471e..709c221db 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -25,6 +25,7 @@ from piptools.utils import ( as_tuple, is_url_requirement, + key_from_ireq, key_from_req, make_install_requirement, ) @@ -51,21 +52,18 @@ def find_best_match(self, ireq, prereleases=False): versions = list( ireq.specifier.filter( - self.index[key_from_req(ireq.req)], prereleases=prereleases + self.index[key_from_ireq(ireq)], prereleases=prereleases ) ) if not versions: tried_versions = [ InstallationCandidate(ireq.name, version, "https://fake.url.foo") - for version in self.index[key_from_req(ireq.req)] + for version in self.index[key_from_ireq(ireq)] ] raise NoCandidateFound(ireq, tried_versions, ["https://fake.url.foo"]) best_version = max(versions, key=Version) return make_install_requirement( - key_from_req(ireq.req), - best_version, - ireq.extras, - constraint=ireq.constraint, + key_from_ireq(ireq), best_version, ireq.extras, constraint=ireq.constraint ) def get_dependencies(self, ireq): diff --git a/tests/test_cache.py b/tests/test_cache.py index 6092424bf..eef516c58 100644 --- a/tests/test_cache.py +++ b/tests/test_cache.py @@ -17,9 +17,9 @@ def _read_cache_file_helper(to_write): :param str to_write: the content to write to the file :yield: the path to the temporary file """ + # Create the file and write to it + cache_file = NamedTemporaryFile(mode="w", delete=False) try: - # Create the file and write to it - cache_file = NamedTemporaryFile(mode="w", delete=False) cache_file.write(to_write) cache_file.close()