Closed jtpdowns closed 5 years ago
I think I want the user to explicitly perform the rename, since they'll have to know what these node IDs are later in order to index the results back into the starting graph.
For example, this is weird:
>>> E = Executor(graph=G)
>>> results = E.find(motif, cursor=False)
>>> results[0][0] in G
False
Granted, str(results[0][0]) in G
→ True
, but I'm not sure that'd be obvious if this happens silently. Thoughts?
This is resolved in #40.
To make your int-ID'd graph compatible with dotmotif, one can rename the IDs in a NetworkX graph:
Given a networkx.Graph
called G
:
import networkx as nx
G = nx.relabel_nodes(G, lambda x: str(x))
Ingesting a NetworkX graph with integer ids results in an error:
ValueError: Could not export graph: unsupported operand type(s) for +: 'int' and 'str'
. It should be straightforward to handle integers, thoughA node can be any hashable Python object except None.
Maybe just cast withrepr
.