in tools/dependency_summary.py [0:0]
def __init__(self, metadata):
self.metadata = metadata
self.pkgInfoById = {}
self.pkgInfoByManifestPath = {}
self.workspaceMembersByName = {}
for info in metadata["packages"]:
if info["name"] in EXCLUDED_PACKAGES:
continue
# Apply any hand-rolled fixups, carefully checking that they haven't been invalidated.
if info["name"] in PACKAGE_METADATA_FIXUPS:
fixups = PACKAGE_METADATA_FIXUPS[info["name"]]
for key, change in fixups.items():
if info.get(key) != change.get("check"):
assert False, "Fixup check failed for {}.{}: {} != {}".format(
info["name"], key, info.get(key, None), change["check"]
)
if "fixup" in change:
info[key] = change["fixup"]
# Index packages for fast lookup.
assert info["id"] not in self.pkgInfoById
self.pkgInfoById[info["id"]] = info
assert info["manifest_path"] not in self.pkgInfoByManifestPath
self.pkgInfoByManifestPath[info["manifest_path"]] = info
# Add fake packages for things managed outside of cargo.
for name, info in EXTRA_PACKAGE_METADATA.items():
assert name not in self.pkgInfoById
self.pkgInfoById[name] = info.copy()
for id in metadata["workspace_members"]:
name = self.pkgInfoById[id]["name"]
assert name not in self.workspaceMembersByName
self.workspaceMembersByName[name] = id