diff --git a/gufe/ligandnetwork.py b/gufe/ligandnetwork.py index 1e3c1abf..abb2dc9a 100644 --- a/gufe/ligandnetwork.py +++ b/gufe/ligandnetwork.py @@ -2,6 +2,7 @@ # For details, see https://github.com/OpenFreeEnergy/gufe from __future__ import annotations +from itertools import chain import json import networkx as nx from typing import FrozenSet, Iterable, Optional @@ -30,7 +31,8 @@ def __init__( nodes = [] self._edges = frozenset(edges) - edge_nodes = set.union(*[{edge.componentA, edge.componentB} for edge in edges]) + edge_nodes = set(chain.from_iterable((e.componentA, e.componentB) + for e in edges)) self._nodes = frozenset(edge_nodes) | frozenset(nodes) self._graph = None diff --git a/gufe/tests/test_ligand_network.py b/gufe/tests/test_ligand_network.py index f500c0a4..b876da4c 100644 --- a/gufe/tests/test_ligand_network.py +++ b/gufe/tests/test_ligand_network.py @@ -266,3 +266,11 @@ def test_is_connected(self, simple_network): def test_is_not_connected(self, singleton_node_network): assert not singleton_node_network.network.is_connected() + + +def test_empty_ligand_network(mols): + # issue #217 + n = LigandNetwork(edges=[], nodes=[mols[0]]) + + assert len(n.edges) == 0 + assert len(n.nodes) == 1