mirror of
https://github.com/kennethreitz/pipenv.git
synced 2026-06-05 22:50:18 +00:00
Begin passing category into the resolver.
This commit is contained in:
+2
-3
@@ -591,11 +591,10 @@ class Project:
|
||||
def lockfile_content(self):
|
||||
return self.load_lockfile()
|
||||
|
||||
def get_editable_packages(self, dev=False):
|
||||
section = "dev-packages" if dev else "packages"
|
||||
def get_editable_packages(self, category):
|
||||
packages = {
|
||||
k: v
|
||||
for k, v in self.parsed_pipfile.get(section, {}).items()
|
||||
for k, v in self.parsed_pipfile.get(category, {}).items()
|
||||
if is_editable(v)
|
||||
}
|
||||
return packages
|
||||
|
||||
+15
-5
@@ -75,6 +75,12 @@ def get_parser():
|
||||
parser.add_argument("--clear", action="store_true", default=False)
|
||||
parser.add_argument("--verbose", "-v", action="count", default=False)
|
||||
parser.add_argument("--dev", action="store_true", default=False)
|
||||
parser.add_argument(
|
||||
"--category",
|
||||
metavar="category",
|
||||
action="store",
|
||||
default=None,
|
||||
)
|
||||
parser.add_argument("--debug", action="store_true", default=False)
|
||||
parser.add_argument("--system", action="store_true", default=False)
|
||||
parser.add_argument("--parse-only", action="store_true", default=False)
|
||||
@@ -744,7 +750,9 @@ def parse_packages(packages, pre, clear, system, requirements_dir=None):
|
||||
print(json.dumps([]))
|
||||
|
||||
|
||||
def resolve_packages(pre, clear, verbose, system, write, requirements_dir, packages, dev):
|
||||
def resolve_packages(
|
||||
pre, clear, verbose, system, write, requirements_dir, packages, dev, category
|
||||
):
|
||||
from pipenv.utils.internet import create_mirror_source, replace_pypi_sources
|
||||
from pipenv.utils.resolver import resolve_deps
|
||||
|
||||
@@ -755,14 +763,14 @@ def resolve_packages(pre, clear, verbose, system, write, requirements_dir, packa
|
||||
)
|
||||
|
||||
def resolve(
|
||||
packages, pre, project, sources, clear, system, dev, requirements_dir=None
|
||||
packages, pre, project, sources, clear, system, category, requirements_dir=None
|
||||
):
|
||||
return resolve_deps(
|
||||
packages,
|
||||
which,
|
||||
project=project,
|
||||
pre=pre,
|
||||
dev=dev,
|
||||
category=category,
|
||||
sources=sources,
|
||||
clear=clear,
|
||||
allow_global=system,
|
||||
@@ -781,7 +789,7 @@ def resolve_packages(pre, clear, verbose, system, write, requirements_dir, packa
|
||||
results, resolver = resolve(
|
||||
packages,
|
||||
pre=pre,
|
||||
dev=dev,
|
||||
category=category,
|
||||
project=project,
|
||||
sources=sources,
|
||||
clear=clear,
|
||||
@@ -816,6 +824,7 @@ def _main(
|
||||
packages,
|
||||
parse_only=False,
|
||||
dev=False,
|
||||
category=None,
|
||||
):
|
||||
os.environ["PIPENV_REQUESTED_PYTHON_VERSION"] = ".".join(
|
||||
[str(s) for s in sys.version_info[:3]]
|
||||
@@ -831,7 +840,7 @@ def _main(
|
||||
)
|
||||
else:
|
||||
resolve_packages(
|
||||
pre, clear, verbose, system, write, requirements_dir, packages, dev
|
||||
pre, clear, verbose, system, write, requirements_dir, packages, dev, category
|
||||
)
|
||||
|
||||
|
||||
@@ -860,6 +869,7 @@ def main(argv=None):
|
||||
parsed.packages,
|
||||
parse_only=parsed.parse_only,
|
||||
dev=parsed.dev,
|
||||
category=parsed.category,
|
||||
)
|
||||
|
||||
|
||||
|
||||
+19
-22
@@ -133,7 +133,7 @@ class Resolver:
|
||||
skipped=None,
|
||||
clear=False,
|
||||
pre=False,
|
||||
dev=False,
|
||||
category=None,
|
||||
):
|
||||
self.initial_constraints = constraints
|
||||
self.req_dir = req_dir
|
||||
@@ -143,7 +143,7 @@ class Resolver:
|
||||
self.hashes = {}
|
||||
self.clear = clear
|
||||
self.pre = pre
|
||||
self.dev = dev
|
||||
self.category = category
|
||||
self.results = None
|
||||
self.markers_lookup = markers_lookup if markers_lookup is not None else {}
|
||||
self.index_lookup = index_lookup if index_lookup is not None else {}
|
||||
@@ -206,16 +206,6 @@ class Resolver:
|
||||
markers_lookup = {}
|
||||
if not req_dir:
|
||||
req_dir = create_tracked_tempdir(prefix="pipenv-", suffix="-reqdir")
|
||||
transient_resolver = Resolver(
|
||||
[],
|
||||
req_dir,
|
||||
project,
|
||||
sources,
|
||||
index_lookup=index_lookup,
|
||||
markers_lookup=markers_lookup,
|
||||
clear=clear,
|
||||
pre=pre,
|
||||
)
|
||||
for dep in deps:
|
||||
if not dep:
|
||||
continue
|
||||
@@ -323,7 +313,7 @@ class Resolver:
|
||||
# TODO: this is way too complex, refactor this
|
||||
constraints: Set[str] = set()
|
||||
locked_deps: Dict[str, Dict[str, Union[str, bool, List[str]]]] = {}
|
||||
editable_packages = self.project.get_editable_packages(dev=self.dev)
|
||||
editable_packages = self.project.get_editable_packages(category=self.category)
|
||||
if (req.is_file_or_url or req.is_vcs) and not req.is_wheel:
|
||||
# for local packages with setup.py files and potential direct url deps:
|
||||
if req.is_vcs:
|
||||
@@ -437,7 +427,7 @@ class Resolver:
|
||||
req_dir: str = None,
|
||||
clear: bool = False,
|
||||
pre: bool = False,
|
||||
dev: bool = False,
|
||||
category: str = None,
|
||||
) -> "Resolver":
|
||||
|
||||
if not req_dir:
|
||||
@@ -457,7 +447,7 @@ class Resolver:
|
||||
markers_lookup=markers_lookup,
|
||||
clear=clear,
|
||||
pre=pre,
|
||||
dev=dev,
|
||||
category=category,
|
||||
)
|
||||
constraints, skipped, index_lookup, markers_lookup = resolver.get_metadata(
|
||||
deps,
|
||||
@@ -646,7 +636,7 @@ class Resolver:
|
||||
for c in self.parsed_constraints
|
||||
]
|
||||
# Only use default_constraints when installing dev-packages
|
||||
if self.dev:
|
||||
if self.category != "packages":
|
||||
self._constraints += self.default_constraints
|
||||
self._constraints.sort(key=lambda ireq: ireq.name)
|
||||
return self._constraints
|
||||
@@ -882,16 +872,23 @@ def actually_resolve_deps(
|
||||
sources,
|
||||
clear,
|
||||
pre,
|
||||
dev,
|
||||
category,
|
||||
req_dir=None,
|
||||
):
|
||||
if not req_dir:
|
||||
req_dir = create_tracked_tempdir(suffix="-requirements", prefix="pipenv-")
|
||||
warning_list = []
|
||||
|
||||
with warnings.catch_warnings(record=True) as warning_list:
|
||||
resolver = Resolver.create(
|
||||
deps, project, index_lookup, markers_lookup, sources, req_dir, clear, pre, dev
|
||||
deps,
|
||||
project,
|
||||
index_lookup,
|
||||
markers_lookup,
|
||||
sources,
|
||||
req_dir,
|
||||
clear,
|
||||
pre,
|
||||
category,
|
||||
)
|
||||
resolver.resolve()
|
||||
hashes = resolver.resolve_hashes()
|
||||
@@ -1080,7 +1077,7 @@ def resolve_deps(
|
||||
python=False,
|
||||
clear=False,
|
||||
pre=False,
|
||||
dev=False,
|
||||
category=None,
|
||||
allow_global=False,
|
||||
req_dir=None,
|
||||
):
|
||||
@@ -1111,7 +1108,7 @@ def resolve_deps(
|
||||
sources,
|
||||
clear,
|
||||
pre,
|
||||
dev,
|
||||
category,
|
||||
req_dir=req_dir,
|
||||
)
|
||||
except RuntimeError:
|
||||
@@ -1140,7 +1137,7 @@ def resolve_deps(
|
||||
sources,
|
||||
clear,
|
||||
pre,
|
||||
dev,
|
||||
category,
|
||||
req_dir=req_dir,
|
||||
)
|
||||
except RuntimeError:
|
||||
|
||||
Reference in New Issue
Block a user