def put(self, key, value, cost, nbytes=None):
        if nbytes is None:
            nbytes = self.get_nbytes(value)
        if cost >= self.limit and nbytes < self.available_bytes:
            score = self.scorer.touch(key, cost)
            if (nbytes + self.total_bytes < self.available_bytes or
                not self.heap or score > self.heap.peekitem()[1]):
                self.data[key] = value
                self.heap[key] = score
                self.nbytes[key] = nbytes
                self.total_bytes += nbytes
                self.shrink()
Get band names
dataset/ETHPy150Open blaze/cachey/cachey/cache.py/Cache.put--crossover with--dataset/ETHPy150Open kleientertainment/ds_mod_tools/pkg/win32/Python27/Lib/site-packages/PIL/Image.py/Image.getbands