def __call__(self, percentage):

        if self.start_time is None: self.start_time = time.time()
        span = (self.percent_range[1]-self.percent_range[0])
        percentage = self.percent_range[0] + ((percentage/100.0) * span)

        if self.display == 'disabled': return
        elif self.display == 'stdout':
            if percentage==100 and self.elapsed_time:
                elapsed = time.time() -  self.start_time
                if clear_output and not ipython2: clear_output()
                if clear_output and ipython2: clear_output(wait=True)
                self.out = '\r' + ('100%% %s %02d:%02d:%02d'
                                   % (self.label.lower(), elapsed//3600,
                                      elapsed//60, elapsed%60))
                output = ''.join([pg.out for pg in self.current_progress])
                sys.stdout.write(output)
            else:
                self._stdout_display(percentage)
            if percentage == 100 and ProgressBar.current_progress:
                ProgressBar.current_progress.pop()
            return

        if 'socket' not in self.cache:
            self.cache['socket'] = self._get_socket()

        if self.cache['socket'] is not None:
            self.cache['socket'].send('%s|%s' % (percentage, self.label))
Returns a file-like object with the contents of the given blob from
dataset/ETHPy150Open ioam/holoviews/holoviews/ipython/widgets.py/ProgressBar.__call__--crossover with--dataset/ETHPy150Open quip/quip-api/python/quip.py/QuipClient.get_blob