I came across an issue where my NodeDataModel class input_connection_created was being called twice after a successful connection. Tracing this back, it seems to be caused by a the _FlowSceneModel constructor being called twice when the FlowScene is instantiated, thus registering two signal-slot connections. To fix, I changed the order of parents in FlowScene from (QGraphicsScene,_FlowSceneModel) to (_FlowSceneModel,QGraphicsScene). I am not entirely sure why this fixed the issue.
Originally posted by @thorphil in https://github.com/klauer/qtpynodeeditor/issues/12#issuecomment-572709565: