26 lines
574 B
Python

# Create a metaclass to test if specific classes are inherited.
class SomeBaseClass:
pass
class ExpectedBasesMeta(type):
_expected_bases = [SomeBaseClass]
def __new__(cls, name, bases, attrs):
for base in cls._expected_bases:
if base not in bases:
raise TypeError(
f'{name} is not inheriting {base}'
)
return super().__new__(cls, name, bases, attrs)
class Trade(SomeBaseClass, metaclass=ExpectedBasesMeta):
pass
class BrokenTrade(metaclass=ExpectedBasesMeta):
pass