Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions uv/private/extension.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,10 @@ def _ignored_package(package):
# These seem to be used by the package itself
# - { source = { editable = "." } }
# - { source = { virtual = "." } }
if "editable" in package["source"]:
return True

# The root project itself uses a virtual source
if "virtual" in package["source"] and package["source"]["virtual"] == ".":
return True

Expand Down Expand Up @@ -210,6 +214,22 @@ def _parse_locks(module_ctx, venv_specs):
for d in group:
d["name"] = normalize_name(d["name"])

# After removing ignored packages (editable/virtual), prune
# dangling dependency references that point to removed packages.
remaining = {package["name"]: 1 for package in packages}
for package in packages:
if "dependencies" in package:
package["dependencies"] = [
d for d in package["dependencies"]
if d["name"] in remaining
]
if "optional-dependencies" in package:
for group_name in list(package["optional-dependencies"].keys()):
package["optional-dependencies"][group_name] = [
d for d in package["optional-dependencies"][group_name]
if d["name"] in remaining
]

problems = []
has_tools = "build" in req_whls and "setuptools" in req_whls
for req, whls in req_whls.items():
Expand Down