From the googling I've done, you do have to override __ne__ because the default implementation uses != instead of not __equal__