Fix tuple bug in resolver

Signed-off-by: Dan Ryan <dan@danryan.co>
This commit is contained in:
Dan Ryan
2019-02-15 02:04:16 -05:00
parent f5fda09b9d
commit ef682bd58f
5 changed files with 7 additions and 57 deletions
+1 -7
View File
@@ -693,7 +693,7 @@ def batch_install(deps_list, procs, failed_deps_queue,
if dep.req.req:
dep.req.req = strip_extras_markers_from_requirement(dep.req.req)
if dep.markers:
dep.markers = strip_extras_markers_from_requirement(dep.get_markers())
dep.markers = str(strip_extras_markers_from_requirement(dep.get_markers()))
index = None
if dep.index:
index = project.find_source(dep.index)
@@ -731,7 +731,6 @@ def batch_install(deps_list, procs, failed_deps_queue,
is_wheel = False
if link:
is_wheel = link.is_wheel
is_non_editable_vcs = (dep.is_vcs and not dep.editable)
needs_deps = dep.is_file_or_url and not (is_wheel or dep.editable)
c = pip_install(
dep,
@@ -1366,13 +1365,8 @@ def pip_install(
if "PIP_SRC" in os.environ:
src_dir = os.environ["PIP_SRC"]
src = ["--src", os.environ["PIP_SRC"]]
# else:
# src_dir = "{0}".format(project.virtualenv_src_location)
# os.environ["PIP_SRC"] = project.virtualenv_src_location
if not requirement.editable:
no_deps = False
# if not requirement.req.is_local:
# src_dir = vistir.path.create_tracked_tempdir(prefix="pipenv-build-dir")
if src_dir is not None:
repo = requirement.req.get_vcs_repo(src_dir=src_dir)
+1 -44
View File
@@ -372,7 +372,7 @@ class Resolver(object):
if not r.url:
continue
line = r.url
new_req = cls.parse_line(line)
new_req, _, _ = cls.parse_line(line)
new_constraints, new_lock = cls.get_deps_from_req(new_req)
locked_deps.update(new_lock)
constraints |= new_constraints
@@ -958,8 +958,6 @@ def resolve_deps(
if not os.environ.get("PIP_SRC"):
os.environ["PIP_SRC"] = project.virtualenv_src_location
backup_python_path = sys.executable
# os.environ["PIP_NO_BUILD_ISOLATION"] = "1"
# os.environ["PIP_NO_USE_PEP517"] = "1"
results = []
if not deps:
return results
@@ -1490,7 +1488,6 @@ def get_vcs_deps(
reqs=None
):
from .vendor.requirementslib.models.requirements import Requirement
from .vendor import attr
section = "vcs_dev_packages" if dev else "vcs_packages"
if reqs is None:
@@ -1508,7 +1505,6 @@ def get_vcs_deps(
return [], []
reqs = [Requirement.from_pipfile(name, entry) for name, entry in packages.items()]
result = []
updated_reqs = []
for requirement in reqs:
name = requirement.normalized_name
commit_hash = None
@@ -1523,51 +1519,12 @@ def get_vcs_deps(
version = requirement._specifiers = "=={0}".format(requirement.req.setup_info.version)
lockfile[name] = requirement.pipfile_entry[1]
lockfile[name]['ref'] = commit_hash
# new_req = Requirement.from_line(repo.checkout_directory)
# si = new_req.req.setup_info
# hookcaller = pep517.wrappers.Pep517HookCaller(new_req.req.setup_info.base_dir, new_req.req.setup_info.build_backend)
# deps = hookcaller.get_requires_for_build_wheel() + hookcaller.get_requires_for_build_sdist()
# hookcaller.prepare_metadata_for_build_wheel(new_req.req.setup_info.egg_base)
# r._specifiers = new_req.specifiers
# pkging_req = r.req.req
# pkging_req.specifier = new_req.req.req.specifier
# pkging_req.spec = new_req.req.req.spec
# new_parsed_line = r.req._parsed_line
# new_parsed_line._setup_info = new_req.req.parsed_line.setup_info
# new_parsed_line.specifiers = new_req.req.parsed_line.specifiers
# new_parsed_line._requirement = pkging_req
# new_parsed_line.ireq.req = pkging_req
# req = attr.evolve(
# r.req,
# setup_info=new_req.req.setup_info,
# parsed_line=new_parsed_line
# )
# r = attr.evolve(
# r,
# req=req,
# line_instance=new_parsed_line
# )
result.append(requirement)
version = requirement.specifiers
if not version and requirement.specifiers:
version = requirement.specifiers
if version:
lockfile[name]['version'] = version
# new_req = Requirement.from_line(repo.checkout_directory)
# requirement._specifiers = new_req.specifiers
# new_parsed_line = requirement.req._parsed_line
# new_parsed_line._setup_info = new_req.req.parsed_line.setup_info
# new_parsed_line.specifiers = new_req.req.parsed_line.specifiers
# req = attr.evolve(
# requirement.req,
# _setup_info=new_req.req.setup_info,
# _parsed_line=new_parsed_line
# )
# requirement = attr.evolve(
# requirement,
# req=req,
# line_instance=new_parsed_line
# )
except OSError:
continue
return result, lockfile
+3 -1
View File
@@ -214,6 +214,8 @@ class Line(object):
if DIRECT_URL_RE.match(self.line):
self._requirement = init_requirement(self.line)
line = convert_direct_url_to_url(self.line)
else:
line = self.link.url
if self.editable:
if not line:
@@ -2444,7 +2446,7 @@ class Requirement(object):
def line_instance(self):
# type: () -> Optional[Line]
if self._line_instance is None:
if self.req.parsed_line is not None:
if self.req._parsed_line is not None:
self._line_instance = self.req.parsed_line
else:
include_extras = True
+1 -4
View File
@@ -693,10 +693,7 @@ build-backend = "{1}"
dist_path = self.build_sdist()
self.get_egg_metadata(metadata_type="egg")
except Exception:
print("Base dir: %s" % os.listdir(self.base_dir))
print("Build dir: %s" % os.listdir(self.extra_kwargs["build_dir"]))
print("build dir with name %s" % os.listdir(os.path.join(self.extra_kwargs["build_dir"], self.name)))
print("Src dir: %s" % os.listdir(self.extra_kwargs["src_dir"]))
pass
else:
self.get_metadata_from_wheel(
os.path.join(self.extra_kwargs["build_dir"], dist_path)
+1 -1
View File
@@ -132,7 +132,7 @@ def test_convert_deps_to_pip(monkeypatch, deps, expected):
def test_convert_deps_to_pip_one_way(monkeypatch, deps, expected):
with monkeypatch.context() as m:
import pip_shims
m.setattr(pip_shims.shims, "unpack_url", mock_unpack)
# m.setattr(pip_shims.shims, "unpack_url", mock_unpack)
assert pipenv.utils.convert_deps_to_pip(deps, r=False) == [expected.lower()]