Commit 60892a1d by David Hotham Committed by Arun Babu Neelicattu

exporting packages with features

parent ff35c28a
...@@ -261,18 +261,22 @@ class Locker: ...@@ -261,18 +261,22 @@ class Locker:
if not locked_package: if not locked_package:
raise RuntimeError(f"Dependency walk failed at {requirement}") raise RuntimeError(f"Dependency walk failed at {requirement}")
if requirement.extras:
locked_package = locked_package.with_features(requirement.extras)
# create dependency from locked package to retain dependency metadata # create dependency from locked package to retain dependency metadata
# if this is not done, we can end-up with incorrect nested dependencies # if this is not done, we can end-up with incorrect nested dependencies
constraint = requirement.constraint constraint = requirement.constraint
marker = requirement.marker marker = requirement.marker
extras = requirement.extras
requirement = locked_package.to_dependency() requirement = locked_package.to_dependency()
requirement.marker = requirement.marker.intersect(marker) requirement.marker = requirement.marker.intersect(marker)
requirement.set_constraint(constraint) requirement.set_constraint(constraint)
for require in locked_package.requires: for require in locked_package.requires:
if require.in_extras and extras.isdisjoint(require.in_extras): if require.in_extras and locked_package.features.isdisjoint(
require.in_extras
):
continue continue
require = deepcopy(require) require = deepcopy(require)
...@@ -369,9 +373,6 @@ class Locker: ...@@ -369,9 +373,6 @@ class Locker:
project_requires=selected, project_requires=selected,
locked_packages=repository.packages, locked_packages=repository.packages,
): ):
for extra in dependency.extras:
package.requires_extras.append(extra)
yield DependencyPackage(dependency=dependency, package=package) yield DependencyPackage(dependency=dependency, package=package)
def set_lock_data(self, root: Package, packages: list[Package]) -> bool: def set_lock_data(self, root: Package, packages: list[Package]) -> bool:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment