Первый раз вижу, чтобы обрабатывался NotImplementedError. Какой из двух методов может быть not implemented? Почему не описать его в базовом классе и не засунуть туда поведение по умолчанию?