def __new__(mcs, name, bases, attrs): calculators = {} for attr_name, attr_value in attrs.items(): if isinstance(attr_value, Calculator): calculators[attr_name] = attr_value attrs[attr_name] = schema.DictProperty() cls = super(IndicatorDocumentMeta, mcs).__new__(mcs, name, bases, attrs) for slug, calculator in calculators.items(): calculator.fluff = cls calculator.slug = slug cls._calculators = calculators return cls
def __new__(mcs, name, bases, attrs): calculators = {} flat_fields = {} for attr_name, attr_value in attrs.items(): if isinstance(attr_value, Calculator): calculators[attr_name] = attr_value attrs[attr_name] = schema.DictProperty() if isinstance(attr_value, FlatField): flat_fields[attr_name] = attr_value cls = super(IndicatorDocumentMeta, mcs).__new__(mcs, name, bases, attrs) for slug, calculator in calculators.items(): calculator.fluff = cls calculator.slug = slug cls._calculators = calculators cls._flat_fields = flat_fields instance = cls() if instance.save_direct_to_sql: cls._table = get_indicator_model(name, instance) return cls