Commit 6b59f5f3 authored by Raymond Hettinger's avatar Raymond Hettinger

Let library modules use the new keyword arguments for list.sort().

parent 42b1ba31
...@@ -99,7 +99,7 @@ class SimpleHTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): ...@@ -99,7 +99,7 @@ class SimpleHTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
except os.error: except os.error:
self.send_error(404, "No permission to list directory") self.send_error(404, "No permission to list directory")
return None return None
list.sort(lambda a, b: cmp(a.lower(), b.lower())) list.sort(key=lambda a: a.lower())
f = StringIO() f = StringIO()
f.write("<title>Directory listing for %s</title>\n" % self.path) f.write("<title>Directory listing for %s</title>\n" % self.path)
f.write("<h2>Directory listing for %s</h2>\n" % self.path) f.write("<h2>Directory listing for %s</h2>\n" % self.path)
......
...@@ -77,7 +77,7 @@ class UserList: ...@@ -77,7 +77,7 @@ class UserList:
def count(self, item): return self.data.count(item) def count(self, item): return self.data.count(item)
def index(self, item, *args): return self.data.index(item, *args) def index(self, item, *args): return self.data.index(item, *args)
def reverse(self): self.data.reverse() def reverse(self): self.data.reverse()
def sort(self, *args): self.data.sort(*args) def sort(self, *args, **kwds): self.data.sort(*args, **kwds)
def extend(self, other): def extend(self, other):
if isinstance(other, UserList): if isinstance(other, UserList):
self.data.extend(other.data) self.data.extend(other.data)
......
...@@ -52,7 +52,7 @@ class LocaleTime(object): ...@@ -52,7 +52,7 @@ class LocaleTime(object):
def __init__(self): def __init__(self):
"""Set all attributes. """Set all attributes.
Order of methods called matters for dependency reasons. Order of methods called matters for dependency reasons.
The locale language is set at the offset and then checked again before The locale language is set at the offset and then checked again before
...@@ -68,7 +68,7 @@ class LocaleTime(object): ...@@ -68,7 +68,7 @@ class LocaleTime(object):
Only other possible issue is if someone changed the timezone and did Only other possible issue is if someone changed the timezone and did
not call tz.tzset . That is an issue for the programmer, though, not call tz.tzset . That is an issue for the programmer, though,
since changing the timezone is worthless without that call. since changing the timezone is worthless without that call.
""" """
self.lang = _getlang() self.lang = _getlang()
self.__calc_weekday() self.__calc_weekday()
...@@ -155,7 +155,7 @@ class LocaleTime(object): ...@@ -155,7 +155,7 @@ class LocaleTime(object):
date_time[offset] = current_format.replace('11', U_W) date_time[offset] = current_format.replace('11', U_W)
self.LC_date_time = date_time[0] self.LC_date_time = date_time[0]
self.LC_date = date_time[1] self.LC_date = date_time[1]
self.LC_time = date_time[2] self.LC_time = date_time[2]
def __calc_timezone(self): def __calc_timezone(self):
# Set self.timezone by using time.tzname. # Set self.timezone by using time.tzname.
...@@ -178,9 +178,9 @@ class TimeRE(dict): ...@@ -178,9 +178,9 @@ class TimeRE(dict):
def __init__(self, locale_time=None): def __init__(self, locale_time=None):
"""Create keys/values. """Create keys/values.
Order of execution is important for dependency reasons. Order of execution is important for dependency reasons.
""" """
if locale_time: if locale_time:
self.locale_time = locale_time self.locale_time = locale_time
...@@ -219,22 +219,20 @@ class TimeRE(dict): ...@@ -219,22 +219,20 @@ class TimeRE(dict):
def __seqToRE(self, to_convert, directive): def __seqToRE(self, to_convert, directive):
"""Convert a list to a regex string for matching a directive. """Convert a list to a regex string for matching a directive.
Want possible matching values to be from longest to shortest. This Want possible matching values to be from longest to shortest. This
prevents the possibility of a match occuring for a value that also prevents the possibility of a match occuring for a value that also
a substring of a larger value that should have matched (e.g., 'abc' a substring of a larger value that should have matched (e.g., 'abc'
matching when 'abcdef' should have been the match). matching when 'abcdef' should have been the match).
""" """
for value in to_convert: for value in to_convert:
if value != '': if value != '':
break break
else: else:
return '' return ''
to_sort = [(len(item), item) for item in to_convert] to_convert = to_convert[:]
to_sort.sort() to_convert.sort(key=len, reverse=True)
to_sort.reverse()
to_convert = [item for length, item in to_sort]
regex = '|'.join(to_convert) regex = '|'.join(to_convert)
regex = '(?P<%s>%s' % (directive, regex) regex = '(?P<%s>%s' % (directive, regex)
return '%s)' % regex return '%s)' % regex
......
...@@ -701,15 +701,11 @@ def get_close_matches(word, possibilities, n=3, cutoff=0.6): ...@@ -701,15 +701,11 @@ def get_close_matches(word, possibilities, n=3, cutoff=0.6):
s.quick_ratio() >= cutoff and \ s.quick_ratio() >= cutoff and \
s.ratio() >= cutoff: s.ratio() >= cutoff:
result.append((s.ratio(), x)) result.append((s.ratio(), x))
# Sort by score.
result.sort()
# Retain only the best n.
result = result[-n:]
# Move best-scorer to head of list.
result.reverse()
# Strip scores.
return [x for score, x in result]
# Move the best scorers to head of list
result.sort(reverse=True)
# Strip scores for the best n matches
return [x for score, x in result[:n]]
def _count_leading(line, ch): def _count_leading(line, ch):
""" """
......
...@@ -553,7 +553,7 @@ def getsource(object): ...@@ -553,7 +553,7 @@ def getsource(object):
def walktree(classes, children, parent): def walktree(classes, children, parent):
"""Recursive helper function for getclasstree().""" """Recursive helper function for getclasstree()."""
results = [] results = []
classes.sort(lambda a, b: cmp(a.__name__, b.__name__)) classes.sort(key=lambda c: c.__name__)
for c in classes: for c in classes:
results.append((c, c.__bases__)) results.append((c, c.__bases__))
if c in children: if c in children:
......
...@@ -779,7 +779,7 @@ class HTMLDoc(Doc): ...@@ -779,7 +779,7 @@ class HTMLDoc(Doc):
tag += ':<br>\n' tag += ':<br>\n'
# Sort attrs by name. # Sort attrs by name.
attrs.sort(lambda t1, t2: cmp(t1[0], t2[0])) attrs.sort(key=lambda t: t[0])
# Pump out the attrs, segregated by kind. # Pump out the attrs, segregated by kind.
attrs = spill('Methods %s' % tag, attrs, attrs = spill('Methods %s' % tag, attrs,
......
...@@ -219,7 +219,7 @@ if __name__ == "__main__": ...@@ -219,7 +219,7 @@ if __name__ == "__main__":
import string import string
def dump(f, d, prefix): def dump(f, d, prefix):
items = d.items() items = d.items()
items.sort(lambda a, b: cmp(a[1], b[1])) items.sort(key=lambda a: a[1])
for k, v in items: for k, v in items:
f.write("#define %s_%s %s\n" % (prefix, string.upper(k), v)) f.write("#define %s_%s %s\n" % (prefix, string.upper(k), v))
f = open("sre_constants.h", "w") f = open("sre_constants.h", "w")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment