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]