This solves my issue. No subclassing needed.
class DrvCrystalfontzProxy(Text):
@classmethod
def get(cls, model, visitor, obj=None, config=None):
if model not in Models.keys():
error("Unknown Crystalfontz model %s" % model)
return
model = Models[model]
if model.protocol == 1:
MyClass = Protocol1
elif model.protocol == 2:
MyClass = Protocol2
elif model.protocol == 3:
MyClass = Protocol3
return MyClass(model, visitor, obj, config)