def update_frame(self, focus=None):
        # Set thead attr.
        if self.viewer.paused:
            thead_attr = 'thead.paused'
        elif not self.viewer.active:
            thead_attr = 'thead.inactive'
        else:
            thead_attr = 'thead'
        self.thead.set_attr_map({None: thead_attr})
        # Set sorting column in thead attr.
        for x, (__, __, __, order) in enumerate(self.columns):
            attr = thead_attr + '.sorted' if order is self.order else None
            widget = self.thead.base_widget.contents[x][0]
            text, __ = widget.get_text()
            widget.set_text((attr, text))
        if self.viewer.paused:
            return
        # Update header.
        stats = self.get_stats()
        if stats is None:
            return
        title = self.title
        time = self.time
        if title or time:
            if time is not None:
                time_string = '{:%H:%M:%S}'.format(time)
            if title and time:
                markup = [('weak', title), ' ', time_string]
            elif title:
                markup = title
            else:
                markup = time_string
            meta_info = urwid.Text(markup, align='right')
        else:
            meta_info = None
        fraction_string = '({0}/{1})'.format(
            fmt.format_time(self.cpu_time),
            fmt.format_time(self.wall_time))
        try:
            cpu_usage = self.wall_time / self.cpu_time
        except ZeroDivisionError:
            cpu_usage = 0.0
        cpu_info = urwid.Text([
            'CPU ', fmt.markup_percent(cpu_usage, unit=True),
            ' ', ('weak', fraction_string)])
        # Set header columns.
        col_opts = ('weight', 1, False)
        self.header.contents = \
            [(w, col_opts) for w in [cpu_info, meta_info] if w]
dataset/ETHPy150Open what-studio/profiling/profiling/viewer.py/StatisticsTable.update_frame/swapped operands of `/`