def __init__()

in src/ab/utils/data_source.py [0:0]


    def __init__(self, data_source, table_name, partitions: list = None, sampler_config: dict = None, sql=None):
        super(CachedDataSource, self).__init__(data_source, table_name, partitions, sampler_config, sql)

        db = self.db
        # init keys
        if self.type_ in ('mysql', 'ads'):
            self.table_key = 'rds://{}:{}/{}.{}.pickle'.format(db.host, db.port, db.db, table_name)
            self.cache_key = 'rds://{}:{}/{}.{}:{}.pickle'.format(db.host, db.port, db.db, table_name, db.sampler.key)
        elif self.type_ in ('sqlite'):
            self.table_key = 'sqlite://{}.{}.pickle'.format(db.db, table_name)
            self.cache_key = 'sqlite://{}.{}:{}.pickle'.format(db.db, table_name, db.sampler.key)
        elif self.type_ == 'odps':
            if partitions:
                partitions = '|' + ','.join(partitions)
            else:
                partitions = ''
            self.table_key = 'odps://{}/{}.{}.pickle'.format(db.endpoint, db.project, table_name)
            self.cache_key = 'odps://{}/{}.{}{}:{}.pickle'.format(db.endpoint, db.project, table_name, partitions,
                                                                  db.sampler.key)
        elif self.type_ == 'hive':
            if partitions:
                partitions = '|' + ','.join(partitions)
            else:
                partitions = ''
            self.table_key = 'hive://{}:{}/{}.{}.pickle'.format(db.host, db.port, db.db, table_name)
            self.cache_key = 'hive://{}:{}/{}.{}{}:{}.pickle'.format(db.host, db.port, db.db, table_name, partitions,
                                                                     db.sampler.key)