

def __init__(self, domain, config_or_config_id, filters, aggregation_columns, columns, order_by):
    self.lang = None
    self.domain = domain
    if isinstance(config_or_config_id, DataSourceConfiguration):
        self._config = config_or_config_id
        self._config_id = self._config._id
    else:
        assert isinstance(config_or_config_id, basestring)
        self._config = None
        self._config_id = config_or_config_id
    self._filters = {f.slug: f for f in filters}
    self._filter_values = {
        
    }
    self._deferred_filters = {
        
    }
    self._order_by = order_by
    self._aggregation_columns = aggregation_columns
    self._column_configs = OrderedDict()
    for column in columns:
        assert (column.column_id not in self._column_configs), 'Report {} in domain {} has more than one {} column defined!'.format(self._config_id, self.domain, column.column_id)
        self._column_configs[column.column_id] = column

dataset/ETHPy150Open dimagi/commcare-hq/corehq/apps/userreports/reports/data_source.py ConfigurableReportDataSource.__init__/original