diff --git a/Lib/pstats.py b/Lib/pstats.py index adaac5cee10..a6844fbe944 100644 --- a/Lib/pstats.py +++ b/Lib/pstats.py @@ -140,7 +140,7 @@ class Stats: self.total_calls += nc self.prim_calls += cc self.total_tt += tt - if callers.has_key(("jprofile", 0, "profiler")): + if ("jprofile", 0, "profiler") in callers: self.top_level[func] = None if len(func_std_string(func)) > self.max_name_len: self.max_name_len = len(func_std_string(func)) @@ -238,7 +238,7 @@ class Stats: stats_list.append((cc, nc, tt, ct) + func + (func_std_string(func), func)) - stats_list.sort(TupleComp(sort_tuple).compare) + stats_list.sort(key=CmpToKey(TupleComp(sort_tuple).compare)) self.fcn_list = fcn_list = [] for tuple in stats_list: @@ -471,6 +471,16 @@ class TupleComp: return direction return 0 +def CmpToKey(mycmp): + """Convert a cmp= function into a key= function""" + class K(object): + def __init__(self, obj): + self.obj = obj + def __lt__(self, other): + return mycmp(self.obj, other.obj) == -1 + return K + + #************************************************************************** # func_name is a triple (file:string, line:int, name:string)