diff --git a/piptools/_compat/pip_compat.py b/piptools/_compat/pip_compat.py index f5d8d1be1..3d190d9c2 100644 --- a/piptools/_compat/pip_compat.py +++ b/piptools/_compat/pip_compat.py @@ -36,8 +36,8 @@ def do_import(module_path, subimport=None, old_path=None): FAVORITE_HASH = do_import("utils.hashes", "FAVORITE_HASH") path_to_url = do_import("utils.urls", "path_to_url", old_path="download") url_to_path = do_import("utils.urls", "url_to_path", old_path="download") -PackageFinder = do_import("index", "PackageFinder") -FormatControl = do_import("index", "FormatControl") +PackageFinder = do_import("index.package_finder", "PackageFinder", old_path="index") +FormatControl = do_import("models.format_control", "FormatControl", old_path="index") InstallCommand = do_import("commands.install", "InstallCommand") Wheel = do_import("wheel", "Wheel") cmdoptions = do_import("cli.cmdoptions", old_path="cmdoptions") diff --git a/piptools/repositories/pypi.py b/piptools/repositories/pypi.py index 588a8dc23..9a81ec9fe 100644 --- a/piptools/repositories/pypi.py +++ b/piptools/repositories/pypi.py @@ -226,9 +226,16 @@ def resolve_reqs(self, download_dir, ireq, wheel_cache): reqset = RequirementSet() ireq.is_direct = True reqset.add_requirement(ireq) + resolver = PipResolver(**resolver_kwargs) - resolver.require_hashes = False - results = resolver._resolve_one(reqset, ireq) + require_hashes = False + if PIP_VERSION < (19, 4): + resolver.require_hashes = require_hashes + results = resolver._resolve_one(reqset, ireq) + else: # pragma: no cover + # TODO remove pragma after pip==19.4 being released + results = resolver._resolve_one(reqset, ireq, require_hashes) + reqset.cleanup_files() return set(results)