qbraid.transpiler.ConversionGraph

class ConversionGraph(conversions=None, requires_extras=False)[source]

Class for coordinating conversions between different quantum software programs

Initialize a ConversionGraph instance.

Parameters:
  • conversions (optional, list[Conversion]) – List of conversion edges. If None, default conversion edges are created.

  • requires_extras (bool) – If True, include unsupported “requires_extras” conversion functions. Defaults to False.

__init__(conversions=None, requires_extras=False)[source]

Initialize a ConversionGraph instance.

Parameters:
  • conversions (optional, list[Conversion]) – List of conversion edges. If None, default conversion edges are created.

  • requires_extras (bool) – If True, include unsupported “requires_extras” conversion functions. Defaults to False.

Methods

__init__([conversions, requires_extras])

Initialize a ConversionGraph instance.

add_conversion(edge[, overwrite])

Add a new conversion function as an edge in the graph.

add_edge(u_of_edge, v_of_edge, **attr)

Add an edge between u and v.

add_edges_from(ebunch_to_add, **attr)

Add all the edges in ebunch_to_add.

add_node(node_for_adding, **attr)

Add a single node node_for_adding and update node attributes.

add_nodes_from(nodes_for_adding, **attr)

Add multiple nodes.

add_weighted_edges_from(ebunch_to_add[, weight])

Add weighted edges in ebunch_to_add with specified weight attr

adjacency()

Returns an iterator over (node, adjacency dict) tuples for all nodes.

clear()

Remove all nodes and edges from the graph.

clear_edges()

Remove all edges from the graph without altering nodes.

conversions()

Get the list of conversion edges.

copy([as_view])

Returns a copy of the graph.

create_conversion_graph()

Create a directed graph from a list of conversion functions.

edge_subgraph(edges)

Returns the subgraph induced by the specified edges.

find_shortest_conversion_path(source, target)

Find the shortest conversion path between two nodes in a graph.

find_top_shortest_conversion_paths(source, ...)

Find the top shortest conversion paths between two nodes in a graph.

get_edge_data(u, v[, default])

Returns the attribute dictionary associated with edge (u, v).

has_edge(u, v)

Returns True if the edge (u, v) is in the graph.

has_node(n)

Returns True if the graph contains the node n.

has_path(source, target)

Check if a conversion between two languages is supported.

has_predecessor(u, v)

Returns True if node u has predecessor v.

has_successor(u, v)

Returns True if node u has successor v.

is_directed()

Returns True if graph is directed, False otherwise.

is_multigraph()

Returns True if graph is a multigraph, False otherwise.

load_default_conversions()

Create a list of default conversion nodes using predefined conversion functions.

nbunch_iter([nbunch])

Returns an iterator over nodes contained in nbunch that are also in the graph.

neighbors(n)

Returns an iterator over successor nodes of n.

number_of_edges([u, v])

Returns the number of edges between two nodes.

number_of_nodes()

Returns the number of nodes in the graph.

order()

Returns the number of nodes in the graph.

plot(**kwargs)

Plot the conversion graph.

predecessors(n)

Returns an iterator over predecessor nodes of n.

remove_conversion(source, target)

Safely remove a conversion from the graph.

remove_edge(u, v)

Remove the edge between u and v.

remove_edges_from(ebunch)

Remove all edges specified in ebunch.

remove_node(n)

Remove node n.

remove_nodes_from(nodes)

Remove multiple nodes.

reset([conversions])

Reset the graph to its default state.

reverse([copy])

Returns the reverse of the graph.

size([weight])

Returns the number of edges or total of all edge weights.

subgraph(nodes)

Returns a SubGraph view of the subgraph induced on nodes.

successors(n)

Returns an iterator over successor nodes of n.

to_directed([as_view])

Returns a directed representation of the graph.

to_directed_class()

Returns the class to use for empty directed copies.

to_undirected([reciprocal, as_view])

Returns an undirected representation of the digraph.

to_undirected_class()

Returns the class to use for empty undirected copies.

update([edges, nodes])

Update the graph using nodes/edges/graphs as input.

Attributes

adj

Graph adjacency object holding the neighbors of each node.

degree

A DegreeView for the Graph as G.degree or G.degree().

edges

An OutEdgeView of the DiGraph as G.edges or G.edges().

in_degree

An InDegreeView for (node, in_degree) or in_degree for single node.

in_edges

A view of the in edges of the graph as G.in_edges or G.in_edges().

name

String identifier of the graph.

nodes

A NodeView of the Graph as G.nodes or G.nodes().

out_degree

An OutDegreeView for (node, out_degree)

out_edges

An OutEdgeView of the DiGraph as G.edges or G.edges().

pred

Graph adjacency object holding the predecessors of each node.

succ

Graph adjacency object holding the successors of each node.