Preventing parallel edge creation

Hi all,

I was looking for a way to prevent adding of parallel edges in the graph
i.e. I would like to create a graph that is not a multigraph. Now I do that
manually but that is quite prone to bugs.
Is this possible to do this with graph tool in any way?

The option I would like is the one like the option that boost graph has
i.e. graph_traits<adjacency_list>::edge_parallel_category
that can be found on:
http://www.boost.org/doc/libs/develop/libs/graph/doc/adjacency_list.html

Thanks!
Aleks

attachment.html (1.02 KB)

What about removing all the parallel edges after creating the graph?

attachment.html (1.93 KB)

I was looking for a way to prevent adding of parallel edges in the graph
i.e. I would like to create a graph that is not a multigraph. Now I do that
manually but that is quite prone to bugs.
Is this possible to do this with graph tool in any way?

You can check for the existence of an edge with Graph.edge(), and you can
use Graph.edge(s, t, add_missing=True) to fetch edges or add missing ones if
they do not yet exist.

Alternatively, you can remove parallel edges a posteriori with the function
remove_parallel_edges().

The option I would like is the one like the option that boost graph has i.e.
graph_traits<adjacency_list>::edge_parallel_category
that can be found on:
http://www.boost.org/doc/libs/develop/libs/graph/doc/adjacency_list.html
<http://www.boost.org/doc/libs/develop/libs/graph/doc/adjacency_list.html&gt;

Something like this would require changing the underlying graph data
structure in ways that would significantly degrade the performance of most
algorithms.

Best,
Tiago