'Returns a NotImplementedError for a function that should be implemented.
:param fn: name of the function'

def _subclass_must_implement(self, fn):

    m = u'Missing    function    implementation    in    {}:    {}'.format(type(self), fn)
    return NotImplementedError(m)
