def METHOD_NAME(self, pct, ratio=None):
    """_update_percent Update progress bar based on the percent given.
    Args:
        pct (float): A percent ratio [0..1]
        ratio(list or tuple): A two element sequence indicating ratio.
                              When provided, this will include ratio in
                              the update. Default is None.
    Returns:
        The update string if not configured with either a stream or a log
        function, otherwise, None.
    """
    percent = int(pct*100)
    num_bars = int(pct*self._total_bars)
    bars = self.BAR*num_bars
    spaces = ' '*(self._total_bars - num_bars)
    text = u'({percent:3}%) [{bars}{spaces}]'.format(**locals())
    if ratio is not None and len(ratio) == 2:
        text += u' [{}/{} {}]'.format(ratio[0], ratio[1], self._units)
    elapsed = datetime.now() - self._start_time
    elapsed_str = str(elapsed)[:-4] # limit to hundredths
    text += u'[Elapsed Time: {}]'.format(elapsed_str)
    if self._label:
        text += u'[{}]'.format(self._label)
    if self._logfn is None and self._stream is None:
        return text
    if percent > self._last_pct:
        self._last_pct = percent
        if self._logfn is not None:
            self._logfn(text)
        else:
            self._stream.write(u'{:80}{}'.format(text, self._line_ending))
            self._stream.flush()