generated from coulomb/repo-seed
Complete graph explorer projection
This commit is contained in:
@@ -282,13 +282,13 @@ def fabric_graph_explorer_payload(
|
||||
"unresolved": is_unresolved,
|
||||
"confidence": 0.45 if is_unresolved else 1.0,
|
||||
"visualSize": 34 if layer == "binding" else 46 if is_unresolved else 50,
|
||||
"ownership": "repo",
|
||||
"ownership": str(attributes.get("owner") or "repo"),
|
||||
"attributes": attributes,
|
||||
"displayState": "show",
|
||||
"visibilitySource": "default",
|
||||
"visibilityReason": "default",
|
||||
"sourceReferences": _source_references(node),
|
||||
"deepLinks": _node_links(node_id),
|
||||
"deepLinks": _node_links(node_id, attributes),
|
||||
},
|
||||
"classes": " ".join(
|
||||
part
|
||||
@@ -433,7 +433,7 @@ def _edge_strength(edge_type: str) -> str:
|
||||
status = edge_type.split(":", 1)[1]
|
||||
if status in {"missing", "disputed"}:
|
||||
return "weak"
|
||||
if status == "accepted":
|
||||
if status in {"accepted", "exact"}:
|
||||
return "strong"
|
||||
return "medium"
|
||||
return _EDGE_STRENGTH.get(edge_type, "medium")
|
||||
@@ -460,7 +460,7 @@ def _unresolved_dependency_ids(
|
||||
if source not in dependency_ids or not edge_type.startswith("binds:"):
|
||||
continue
|
||||
status = edge_type.split(":", 1)[1]
|
||||
if status in {"accepted", "candidate"}:
|
||||
if status in {"accepted", "candidate", "exact", "compatible"}:
|
||||
resolved.add(source)
|
||||
if status in {"missing", "disputed"}:
|
||||
unresolved.add(source)
|
||||
@@ -470,6 +470,9 @@ def _unresolved_dependency_ids(
|
||||
def _node_description(kind: str, attributes: object) -> str:
|
||||
if not isinstance(attributes, dict):
|
||||
return ""
|
||||
description = str(attributes.get("description", ""))
|
||||
if description:
|
||||
return description
|
||||
if kind == "CapabilityDeclaration":
|
||||
return str(attributes.get("capability_type", ""))
|
||||
if kind == "InterfaceDeclaration":
|
||||
@@ -492,14 +495,21 @@ def _source_references(node: dict[str, Any]) -> list[dict[str, str]]:
|
||||
attributes = node.get("attributes")
|
||||
references: list[dict[str, str]] = []
|
||||
if isinstance(attributes, dict):
|
||||
source_path = str(attributes.get("source_path") or "")
|
||||
if source_path:
|
||||
references.append({"label": "Declaration", "path": source_path})
|
||||
for source in attributes.get("source_links", []):
|
||||
if isinstance(source, dict):
|
||||
references.append({key: str(value) for key, value in source.items()})
|
||||
return references
|
||||
|
||||
|
||||
def _node_links(node_id: str) -> dict[str, str]:
|
||||
return {"registry": f"/graph/nodes/{node_id}"}
|
||||
def _node_links(node_id: str, attributes: dict[str, Any] | None = None) -> dict[str, str]:
|
||||
links = {"registry": f"/graph/nodes/{node_id}"}
|
||||
source_path = str((attributes or {}).get("source_path") or "")
|
||||
if source_path:
|
||||
links["sourceFile"] = source_path
|
||||
return links
|
||||
|
||||
|
||||
def _repository_links(repository: dict[str, Any]) -> dict[str, str]:
|
||||
|
||||
Reference in New Issue
Block a user