'Returns either this instance or a new instance if this is a v2.2
frame and an upgrade to a v2.3/4 equivalent is viable.
If this is a v2.2 instance and there is no upgrade path, returns None.'

def _upgrade_frame(self):

    if (len(type(self).__name__) == 3):
        base = type(self).__base__
        if (base is Frame):
            return
        return base(self)
    else:
        return self
