Skip to content

graph-tool Adapter

graph-tool conversion helpers from annnet.adapters.graphtool_adapter.

annnet.adapters.graphtool_adapter

AnnNet-tool adapter for AnnNet AnnNet.

Provides: to_graphtool(G) -> (gt.Graph, manifest_dict) from_graphtool(gtG, manifest=None) -> AnnNet

graph-tool only gets what it can natively represent: - nodes (type 'node') - simple binary edges with a global directedness + a 'weight' edge property Everything else (hyperedges, per-edge directedness, multilayer, slices, all attribute tables, etc.) is preserved in manifest.

Classes

Functions

to_graphtool
to_graphtool(
    G,
    *,
    node_id_property="id",
    edge_id_property="id",
    weight_property="weight"
)

Convert an AnnNet AnnNet -> (graph_tool.AnnNet, manifest).

graph-tool graph: - nodes: only entities whose kind is a node - edges: only binary edges whose endpoints are such nodes - node property vp[node_id_property] = AnnNet node id - edge property ep[edge_id_property] = AnnNet edge id - edge property ep[weight_property] = edge weight (float)

manifest: - preserves everything graph-tool cannot: hyperedges, slices, multilayer, and ALL attribute tables.

from_graphtool
from_graphtool(
    gtG,
    manifest=None,
    *,
    node_id_property="id",
    edge_id_property="id",
    weight_property="weight"
)

Convert graph_tool.AnnNet (+ optional manifest) back into AnnNet AnnNet.

  • Nodes: from node property node_id_property if present, else numeric index.
  • Edges: from edges in gtG; edge_id from edge property edge_id_property if present, else auto; weight from edge property weight_property if present, else 1.0.

If manifest is provided, rehydrates: - all attribute tables (node/edge/slice/edge_slice/layer), - _slices internal structure, - hyperedges, - edge_directed and edge_direction_policy, - multilayer (aspects, elem_layers, VM, aspect attrs, layer-tuple attrs, edge_kind, edge_layers, node-layer attrs), - graph_attributes.