'Set class priority. Limited only for change bases class priority inside
one subclass.__bases__ after that continue to another class.'

@classmethod
def set_priority_class(cls, prioritized_class, group_classes):

    def change_position(ccls):
        if (VersionableClass not in ccls.__bases__):
            bases = list(ccls.__bases__)
            index = None
            remove_variant = None
            for (i, item) in enumerate(ccls.__bases__):
                if ((VersionableClass in item.__bases__) and (item.master_class in group_classes)):
                    if (index is None):
                        index = i
                    if (item.master_class is prioritized_class):
                        remove_variant = item
                        bases.remove(item)
                        break
            else:
                return
            bases.insert(index, remove_variant)
            ccls.__bases__ = tuple(bases)
    def find_cls(ccls):
        change_position(ccls)
        for base in ccls.__bases__:
            find_cls(base)
    find_cls(cls)
