ragraph.io.csv#

CSV format support.

Module Contents#

Functions#

from_csv([nodes_path, edges_path, csv_delimiter, ...])

Convert CSV files to a graph.

to_csv(graph, stem_path[, csv_delimiter, ...])

Save graph to nodes and edges CSV files.

_load_nodes(→ Dict[str, ragraph.graph.Node])

Convert node CSV file to a list of nodes.

_derive_nodes(→ Dict[str, ragraph.graph.Node])

Derive nodes from edges CSV file.

_load_edges(→ List[ragraph.graph.Edge])

Convert edge CSV file to graph.

_save_nodes(graph, fpath, csv_delimiter, iter_delimiter)

Save graph nodes to CSV file.

_save_edges(graph, fpath, csv_delimiter, iter_delimiter)

Save graph edges to CSV file.

_convert_to_num(→ Union[float, bool])

Convert a string value to a float number or bool.

Attributes#

NODE_COLUMNS

EDGE_COLUMNS

ragraph.io.csv.NODE_COLUMNS = ['name', 'uuid', 'kind', 'labels', 'parent', 'children', 'is_bus']#
ragraph.io.csv.EDGE_COLUMNS = ['source', 'target', 'name', 'uuid', 'kind', 'labels']#
ragraph.io.csv.from_csv(nodes_path: Optional[Union[str, pathlib.Path]] = None, edges_path: Optional[Union[str, pathlib.Path]] = None, csv_delimiter: str = ';', iter_delimiter: str = ';', node_weights: Optional[List[str]] = None, edge_weights: Optional[List[str]] = None, **graph_kwargs)#

Convert CSV files to a graph.

Nodes file (optional) requires at least a name column. Optional special property columns are kind, labels, parent, children and is_bus.

Edges file requires at least a source and target column. Optional special property columns are kind and labels.

Automatically completes one sided parent-child relationships.

Parameters:
  • nodes_path – Path of optional nodes CSV file.

  • edges_path – Path of edges CSV file.

  • csv_delimiter – Delimiter of CSV file.

  • iter_delimiter – Iterable delimiter (i.e. for children names list).

  • node_weights – Columns to interpret as node weights.

  • edge_weights – Columns to interpret as edge weights.

:keyword Optional Graph arguments when instantiating.:

Returns:

Graph object.

Raises:

InconsistencyError if graph is inconsistent.

ragraph.io.csv.to_csv(graph: ragraph.graph.Graph, stem_path: str, csv_delimiter: str = ';', iter_delimiter: str = ';', use_uuid: bool = False)#

Save graph to nodes and edges CSV files.

Parameters:
  • graph – Graph to save.

  • stem_path – Stem path for output CSV’s. Appended with _nodes.csv and _edges.csv.

  • csv_delimiter – CSV delimiter.

  • iter_delimiter – Iterable delimiter (i.e. for children names list).

  • use_uuid – Whether to export UUIDs, too.

ragraph.io.csv._load_nodes(fpath: Union[str, pathlib.Path], csv_delimiter: str, iter_delimiter: str, node_weights: List[str]) Dict[str, ragraph.graph.Node]#

Convert node CSV file to a list of nodes.

Parameters:
  • fpath – Path to nodes CSV file.

  • csv_delimiter – CSV delimiter.

  • iter_delimiter – Iterable delimiter (i.e. for children names list).

  • node_weights – Columns to interpret as node weights.

Returns:

Node dictionary (name, node).

ragraph.io.csv._derive_nodes(edges_path: Union[str, pathlib.Path], csv_delimiter: str) Dict[str, ragraph.graph.Node]#

Derive nodes from edges CSV file.

Parameters:
  • edge_path – Path to edges CSV file.

  • csv_delimiter – CSV delimiter.

Returns:

Node dictionary (name, node).

ragraph.io.csv._load_edges(fpath: Union[str, pathlib.Path], csv_delimiter: str, iter_delimiter: str, node_dict: List[ragraph.graph.Node], edge_weights: List[str]) List[ragraph.graph.Edge]#

Convert edge CSV file to graph.

Parameters:
  • fpath – Path to edges CSV file.

  • csv_delimiter – CSV delimiter.

  • iter_delimiter – Iterable delimiter (i.e. for children names list).

  • node_dict – Node dictionary (name, node).

  • edge_weights – Columns to interpret as edge weights.

Returns:

Edge list.

ragraph.io.csv._save_nodes(graph: ragraph.graph.Graph, fpath: pathlib.Path, csv_delimiter: str, iter_delimiter: str, use_uuid: bool = False)#

Save graph nodes to CSV file.

Parameters:
  • graph – Graph to save.

  • fpath – Path to nodes CSV file.

  • csv_delimiter – CSV delimiter.

  • iter_delimiter – Iterable delimiter (i.e. for children names list).

  • use_uuid – Whether to export UUIDs, too.

ragraph.io.csv._save_edges(graph: ragraph.graph.Graph, fpath: pathlib.Path, csv_delimiter: str, iter_delimiter: str, use_uuid: bool = False)#

Save graph edges to CSV file.

Parameters:
  • graph – Graph to save.

  • fpath – Path to edges CSV file.

  • csv_delimiter – CSV delimiter.

  • iter_delimiter – Iterable delimiter (i.e. for children names list).

  • use_uuid – Whether to export UUIDs, too.

ragraph.io.csv._convert_to_num(value: str) Union[float, bool]#

Convert a string value to a float number or bool.

Argument:

value: The value to be converted.