1
2
3
4
5
6
7
8
9 """
10 Backwards compatibility with previous versions of Python.
11
12 This module provides backwards compatibility by defining several
13 functions and classes that were not available in earlier versions of
14 Python. Intented usage:
15
16 >>> from epydoc.compat import *
17
18 Currently, epydoc requires Python 2.3+.
19 """
20 __docformat__ = 'epytext'
21
22
23
24
25
26
27 try:
28 set
29 except NameError:
30 try:
31 from sets import Set as set
32 except ImportError:
33 pass
34
35
36 try:
37 sorted
38 except NameError:
39 def sorted(iterable, cmp=None, key=None, reverse=False):
40 if key is None:
41 elts = list(iterable)
42 else:
43 elts = [(key(v), v) for v in iterable]
44
45 if reverse: elts.reverse()
46 if cmp is None: elts.sort()
47 else: elts.sort(cmp)
48 if reverse: elts.reverse()
49
50 if key is None:
51 return elts
52 else:
53 return [v for (k,v) in elts]