generated from coulomb/repo-seed
refactoring for canon conformity
This commit is contained in:
@@ -6,6 +6,8 @@ from re import sub
|
||||
from typing import Any
|
||||
from urllib.parse import urlparse
|
||||
|
||||
from .canon import edge_canon_mapping
|
||||
|
||||
|
||||
DISPLAY_STATES = ("show", "blur", "hide", "highlight", "remove")
|
||||
LAYER_ORDER = (
|
||||
@@ -57,8 +59,18 @@ _LAYER_COLORS = {
|
||||
}
|
||||
|
||||
_EDGE_STRENGTH = {
|
||||
"provides": "strong",
|
||||
"built_from": "medium",
|
||||
"depends_on": "medium",
|
||||
"deploys": "strong",
|
||||
"evidenced_by": "medium",
|
||||
"exposes": "strong",
|
||||
"flows_to": "medium",
|
||||
"governed_by": "medium",
|
||||
"implements": "medium",
|
||||
"observed_by": "medium",
|
||||
"part_of": "weak",
|
||||
"reads_or_writes": "medium",
|
||||
"provides": "strong",
|
||||
"available_via": "medium",
|
||||
"consumes": "medium",
|
||||
"uses_interface": "medium",
|
||||
@@ -139,6 +151,9 @@ def fabric_graph_explorer_manifest(base_url: str = "") -> dict[str, Any]:
|
||||
"kind",
|
||||
"layer",
|
||||
"edgeType",
|
||||
"canonicalType",
|
||||
"canonCategory",
|
||||
"evidenceState",
|
||||
],
|
||||
"filter": {
|
||||
"actions": list(DISPLAY_STATES),
|
||||
@@ -153,6 +168,10 @@ def fabric_graph_explorer_manifest(base_url: str = "") -> dict[str, Any]:
|
||||
{"id": "reviewState", "label": "Review State", "type": "string"},
|
||||
{"id": "unresolved", "label": "Unresolved", "type": "boolean"},
|
||||
{"id": "edgeType", "label": "Edge Type", "type": "string"},
|
||||
{"id": "canonicalType", "label": "Canonical Edge", "type": "string"},
|
||||
{"id": "canonCategory", "label": "Canon Category", "type": "string"},
|
||||
{"id": "evidenceState", "label": "Evidence State", "type": "string"},
|
||||
{"id": "displayOnly", "label": "Display Only", "type": "boolean"},
|
||||
{"id": "strength", "label": "Strength", "type": "string"},
|
||||
{"id": "sameLayer", "label": "Same Layer", "type": "boolean"},
|
||||
{"id": "text", "label": "Text", "type": "string"},
|
||||
@@ -174,6 +193,8 @@ def fabric_graph_explorer_manifest(base_url: str = "") -> dict[str, Any]:
|
||||
"repo",
|
||||
"domain",
|
||||
"lifecycle",
|
||||
"canonCategory",
|
||||
"evidenceState",
|
||||
"unresolved",
|
||||
"description",
|
||||
"sourceReferences",
|
||||
@@ -181,6 +202,9 @@ def fabric_graph_explorer_manifest(base_url: str = "") -> dict[str, Any]:
|
||||
],
|
||||
"edge_fields": [
|
||||
"edgeType",
|
||||
"canonicalType",
|
||||
"displayOnly",
|
||||
"evidenceState",
|
||||
"strength",
|
||||
"source",
|
||||
"target",
|
||||
@@ -329,6 +353,14 @@ def fabric_graph_explorer_payload(
|
||||
"repo": str(node.get("repo", "")),
|
||||
"domain": str(node.get("domain", "")),
|
||||
"lifecycle": str(node.get("lifecycle", "")),
|
||||
"canonCategory": str(
|
||||
node.get("canon_category") or attributes.get("canon_category") or ""
|
||||
),
|
||||
"canonAnchor": str(node.get("canon_anchor") or attributes.get("canon_anchor") or ""),
|
||||
"mappingFit": str(node.get("mapping_fit") or attributes.get("mapping_fit") or ""),
|
||||
"evidenceState": str(
|
||||
node.get("evidence_state") or attributes.get("evidence_state") or ""
|
||||
),
|
||||
"reviewState": review_state,
|
||||
"freshnessState": "current",
|
||||
"unresolved": is_unresolved,
|
||||
@@ -378,7 +410,17 @@ def fabric_graph_explorer_payload(
|
||||
edge_type = _presentation_edge_type(str(edge.get("type", "")), source, target, node_kinds)
|
||||
if not source or not target:
|
||||
continue
|
||||
elements.append(_edge_element(edge_index, source, target, edge_type, node_layers, node_repos))
|
||||
elements.append(
|
||||
_edge_element(
|
||||
edge_index,
|
||||
source,
|
||||
target,
|
||||
edge_type,
|
||||
node_layers,
|
||||
node_repos,
|
||||
**_edge_metadata(edge, edge_type),
|
||||
)
|
||||
)
|
||||
edge_index += 1
|
||||
|
||||
for slug in sorted(repo_slugs):
|
||||
@@ -389,7 +431,17 @@ def fabric_graph_explorer_payload(
|
||||
continue
|
||||
if str(node.get("repo", "")) != slug or not node_id:
|
||||
continue
|
||||
elements.append(_edge_element(edge_index, repo_id, node_id, "declares", node_layers, node_repos))
|
||||
elements.append(
|
||||
_edge_element(
|
||||
edge_index,
|
||||
repo_id,
|
||||
node_id,
|
||||
"declares",
|
||||
node_layers,
|
||||
node_repos,
|
||||
display_only=True,
|
||||
)
|
||||
)
|
||||
edge_index += 1
|
||||
|
||||
visible_nodes = [element for element in elements if "source" not in element["data"]]
|
||||
@@ -468,6 +520,17 @@ def _presentation_edge_type(edge_type: str, source: str, target: str, node_kinds
|
||||
return edge_type
|
||||
|
||||
|
||||
def _edge_metadata(edge: dict[str, Any], edge_type: str) -> dict[str, Any]:
|
||||
canon_mapping = edge_canon_mapping(edge_type)
|
||||
return {
|
||||
"canonical_type": str(edge.get("canonical_type") or canon_mapping.canonical_type),
|
||||
"canon_anchor": str(edge.get("canon_anchor") or canon_mapping.canon_anchor),
|
||||
"mapping_fit": str(edge.get("mapping_fit") or canon_mapping.fit),
|
||||
"display_only": bool(edge.get("display_only", canon_mapping.display_only)),
|
||||
"evidence_state": str(edge.get("evidence_state") or "declared"),
|
||||
}
|
||||
|
||||
|
||||
def _edge_strength(edge_type: str) -> str:
|
||||
if edge_type.startswith("binds:"):
|
||||
status = edge_type.split(":", 1)[1]
|
||||
@@ -526,7 +589,7 @@ def _append_infrastructure_elements(
|
||||
server_ids_by_host, port_ids_by_endpoint = _runtime_node_indexes(source_nodes)
|
||||
generated_edge_keys: set[tuple[str, str, str]] = set()
|
||||
|
||||
def append_edge(source: str, target: str, edge_type: str) -> None:
|
||||
def append_edge(source: str, target: str, edge_type: str, *, display_only: bool = True) -> None:
|
||||
nonlocal edge_index
|
||||
if not source or not target:
|
||||
return
|
||||
@@ -534,7 +597,17 @@ def _append_infrastructure_elements(
|
||||
if key in generated_edge_keys:
|
||||
return
|
||||
generated_edge_keys.add(key)
|
||||
elements.append(_edge_element(edge_index, source, target, edge_type, node_layers, node_repos))
|
||||
elements.append(
|
||||
_edge_element(
|
||||
edge_index,
|
||||
source,
|
||||
target,
|
||||
edge_type,
|
||||
node_layers,
|
||||
node_repos,
|
||||
display_only=display_only,
|
||||
)
|
||||
)
|
||||
edge_index += 1
|
||||
|
||||
service_nodes = sorted(
|
||||
@@ -816,12 +889,24 @@ def _edge_element(
|
||||
edge_type: str,
|
||||
node_layers: dict[str, str],
|
||||
node_repos: dict[str, str],
|
||||
*,
|
||||
canonical_type: str = "",
|
||||
canon_anchor: str = "",
|
||||
mapping_fit: str = "",
|
||||
display_only: bool = False,
|
||||
evidence_state: str = "",
|
||||
) -> dict[str, Any]:
|
||||
source_layer = node_layers.get(source, "unknown")
|
||||
target_layer = node_layers.get(target, "unknown")
|
||||
source_repo = node_repos.get(source, "")
|
||||
target_repo = node_repos.get(target, "")
|
||||
same_repo = bool(source_repo and source_repo == target_repo)
|
||||
canon_mapping = edge_canon_mapping(edge_type)
|
||||
canonical_type = canonical_type or canon_mapping.canonical_type
|
||||
canon_anchor = canon_anchor or canon_mapping.canon_anchor
|
||||
mapping_fit = mapping_fit or canon_mapping.fit
|
||||
display_only = display_only or canon_mapping.display_only
|
||||
evidence_state = evidence_state or "declared"
|
||||
strength = _edge_strength(edge_type)
|
||||
layout = _layout_hints(edge_type, source_layer, target_layer, same_repo)
|
||||
edge_id = f"edge:{edge_index}:{source}:{edge_type}:{target}"
|
||||
@@ -840,6 +925,11 @@ def _edge_element(
|
||||
"targetRepo": target_repo,
|
||||
"edgeType": edge_type,
|
||||
"dependencyType": edge_type,
|
||||
"canonicalType": canonical_type,
|
||||
"canonAnchor": canon_anchor,
|
||||
"mappingFit": mapping_fit,
|
||||
"displayOnly": display_only,
|
||||
"evidenceState": evidence_state,
|
||||
"strength": strength,
|
||||
"edgeWidth": _edge_width(strength),
|
||||
"sameLayer": source_layer == target_layer,
|
||||
@@ -860,6 +950,7 @@ def _edge_element(
|
||||
edge_type.replace(":", "-"),
|
||||
strength,
|
||||
str(layout["affinity"]),
|
||||
"display-only" if display_only else "canonical",
|
||||
"same-layer" if source_layer == target_layer else "",
|
||||
"same-repo" if same_repo else "",
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user