# This sample tests the checks for abstract method
# overrides. They depend on the order of the subclasses.

import abc


class MixinA(abc.ABC):
    pass


class MixinB(abc.ABC):
    def get_model(self):
        print("MixinB.get_model")


class MixinC(abc.ABC):
    @abc.abstractmethod
    def get_model(self):
        pass

    def use_model(self):
        print("MixinC.get_model")


class Trainer_1b(MixinA, MixinC, MixinB):
    pass


# This should generate an error
trainer = Trainer_1b()
