Our current Settings object does not appear to be hashable. This becomes a problem when trying to add a Transformation that includes a Settings object via its attached Protocol to an AlchemicalNetwork, as the AlchemicalNetwork deduplicates Transformations via a frozenset.
Currently we have individual __hash__ implementations for many GufeTokenizables in gufe, such as Transformation, ChemicalSystem and Protocol. These all should probably use the same __hash__ implementation as GufeTokenizable itself, and doing so should avoid the above.
This first surfaced in updating the example notebook for building an AlchemicalNetwork.
Our current
Settingsobject does not appear to be hashable. This becomes a problem when trying to add aTransformationthat includes aSettingsobject via its attachedProtocolto anAlchemicalNetwork, as theAlchemicalNetworkdeduplicatesTransformations via a frozenset.Currently we have individual
__hash__implementations for manyGufeTokenizables ingufe, such asTransformation,ChemicalSystemandProtocol. These all should probably use the same__hash__implementation asGufeTokenizableitself, and doing so should avoid the above.This first surfaced in updating the example notebook for building an AlchemicalNetwork.