pylint can't tell that this function gets overridden and the overriding implementations do use `self` ?