'This stops the `final` attributes from being reassigned on the
class object.'

def __setattr__(self, name, value):

    if is_final(name, self.__mro__):
        raise _type_error
    super(FinalMeta, self).__setattr__(name, value)
