Commit faa312a5 authored by Marc Hartmayer's avatar Marc Hartmayer Committed by Paolo Bonzini
Browse files

tools/kvm_stat: simplify the sortkey function



The 'sortkey' function references a value in its enclosing
scope (closure). This is not common practice for a sort key function
so let's replace it. Additionally, the function 'sorted' has already a
parameter for reversing the result therefore the inversion of the
values is unneeded. The check for stats[x][1] is also superfluous as
it's ensured that this value is initialized with 0.

Signed-off-by: default avatarMarc Hartmayer <mhartmay@linux.vnet.ibm.com>
Tested-by: default avatarStefan Raspl <raspl@linux.vnet.ibm.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 95e057e2
Loading
Loading
Loading
Loading
+8 −15
Original line number Diff line number Diff line
@@ -1080,30 +1080,23 @@ class Tui(object):
        self.screen.move(row, 0)
        self.screen.clrtobot()
        stats = self.stats.get(self._display_guests)

        def sortCurAvg(x):
            # sort by current events if available
            if stats[x][1]:
                return (-stats[x][1], -stats[x][0])
            else:
                return (0, -stats[x][0])

        def sortTotal(x):
            # sort by totals
            return (0, -stats[x][0])
        total = 0.
        for key in stats.keys():
            if key.find('(') is -1:
                total += stats[key][0]
        if self._sorting == SORT_DEFAULT:
            sortkey = sortCurAvg
            def sortkey((_k, v)):
                # sort by (delta value, overall value)
                return (v[1], v[0])
        else:
            sortkey = sortTotal
            def sortkey((_k, v)):
                # sort by overall value
                return v[0]

        tavg = 0
        for key in sorted(stats.keys(), key=sortkey):
        for key, values in sorted(stats.items(), key=sortkey, reverse=True):
            if row >= self.screen.getmaxyx()[0] - 1:
                break
            values = stats[key]
            if not values[0] and not values[1]:
                break
            if values[0] is not None: