allow NotImplementedError in formatters by minrk · Pull Request #4832 · ipython/ipython
I'm coming around to NotImplemented in terms of basic design, which @jasongrout prefers, but there's one point where NotImplementedError has a big advantage: it's backward-compatible. Returning NotImplemented will raise a TypeError in IPython json serialization, whereas raising NotImplementedError will have the same behavior in 1.0 and 2.0. For that alone, if we pick just one, I think it should be NotImplementedError, even if it is the less elegant.