dwavesystems / dwavesystems/dwave-graphs
Unclear ``draw_chimera`` error message when nodes lack ``chimera_index`` attribute
- Dominant language
- Python
- Stars
- 95
- Forks
- 62
- Avg merge
- 7d 18h
- Merged PRs (30d)
- 1
Description
**Description**
The ``draw_chimera`` function takes a NetworkX graph as input. The docstring says "Should be a Chimera graph or a subgraph of a Chimera graph" which can mean either that its edges must be a Chimera lattice subset or that the NetworkX graph must be generated by ``chimera_graph``, it's unclear which is the intention.
Assuming the former, if the NX graph is missing **some** ``chimera_index`` attributes, the function returns the obscure ``NetworkXError: Found infinite path length because the graph is not connected`` error because ``draw_chimera`` tries to calculate the graph's diameter in https://github.com/dwavesystems/dwave-networkx/blob/a4a1eb6176399f6e2aaac8bf9b1b84815320a52d/dwave_networkx/generators/chimera.py#L272
**To Reproduce**
```
>>> G = nx.Graph()
>>> G.add_nodes_from([0, 3, 4, 7])
>>> G.add_edges_from([(0, 4), (0, 5), (5, 13)])
>>> dnx.draw_chimera(G, with_labels=True)
```
If I either add the ``chimera_index`` to nodes in the two-tile NX graph or stick to the nodes of a single tile (due to https://github.com/dwavesystems/dwave-networkx/blob/a4a1eb6176399f6e2aaac8bf9b1b84815320a52d/dwave_networkx/generators/chimera.py#L288), the function works fine.
**Expected behavior**
1. Clarify if ``draw_chimera`` should accept any NX graph that is a subgraph of a Chimera lattice
2. If yes, either require that nodes have ``chimera_index`` or add them without an error for more than two unit cells
3. If no, specify in the docstring that the NX graph must be produced by ``chimera_graph``
**Environment:**
- OS: WIN
- Python version: 3.7.0
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.