Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
    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