I can see code below
class MetaStrategy(StrategyBase.__class__): pass
I am not sure why not just write code like below
class MetaStrategy(StrategyBase): pass
Definition schematic
class StrategyBase(DataAccessor):
pass
class DataAccessor(LineIterator):
pass
class LineIterator(with_metaclass(MetaLineIterator, LineSeries)):
pass
def with_metaclass(meta, *bases):
class metaclass(meta):
def __new__(cls, name, this_bases, d):
return meta(name, bases, d)
return type.__new__(metaclass, str('temporary_class'), (), {})
StrategyBase, which itself is presumably a class, and__call__is eithertypeor another metaclass.MetaStrategywould inherit fromStrategyBseStrategyBase.__class__isStrategyBase's metaclass, which is entirely different from the classStrategyBaseitself.