class M1(type):

    def __new__(meta, name, bases, atts):
        print('M1 called for ' + name)
return super(M1, meta).__new__(meta, name, bases, atts)


class C1(object, metaclass=M1):
    pass
type(C1)


class Sub1(C1):
    pass
type(Sub1)
Customary To Inherit Metaclasses From type?