sources for sorted.py [rev. 38799]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
builtin_cmp = cmp # need to use cmp as keyword arg
def _sorted(iterable, cmp=None, key=None, reverse=0):
    use_cmp = None
    if key is not None:
        if cmp is None:
            def use_cmp(x, y):
                return builtin_cmp(x[0], y[0])
        else:
            def use_cmp(x, y):
                return cmp(x[0], y[0])
        l = [(key(element), element) for element in iterable]
    else:
        if cmp is not None:
            use_cmp = cmp
        l = list(iterable)
    #print l
    if use_cmp is not None:
        l.sort(use_cmp)
    else:
        l.sort()
    if reverse:
        l.reverse()
    if key is not None:
        return [element for (_, element) in l]
    return l
try:
    sorted = sorted
except NameError:
    sorted = _sorted