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:
- vertices (type 'vertex')
- 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(G, *, vertex_id_property='id', edge_id_property='id', weight_property='weight')
Convert an AnnNet AnnNet -> (graph_tool.AnnNet, manifest).
graph-tool graph: - vertices: only entities with entity_types[u] == "vertex" - edges: only binary edges whose endpoints are such vertices - vertex property vp[vertex_id_property] = AnnNet vertex 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(gtG, manifest=None, *, vertex_id_property='id', edge_id_property='id', weight_property='weight')
Convert graph_tool.AnnNet (+ optional manifest) back into AnnNet AnnNet.
- Vertices: from vertex property
vertex_id_propertyif present, else numeric index. - Edges: from edges in gtG; edge_id from edge property
edge_id_propertyif present, else auto; weight from edge propertyweight_propertyif present, else 1.0.
If manifest is provided, rehydrates:
- all attribute tables (vertex/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.