| import sys | 
 |  | 
 | info = sys.version_info | 
 | if info[:3] >= (3, 2, 0): | 
 |     # for Python 3.2 ordinary unittest is fine | 
 |     import unittest as unittest2 | 
 | else: | 
 |     import unittest2 | 
 |  | 
 |  | 
 | try: | 
 |     callable = callable | 
 | except NameError: | 
 |     def callable(obj): | 
 |         return hasattr(obj, '__call__') | 
 |  | 
 |  | 
 | inPy3k = sys.version_info[0] == 3 | 
 | with_available = sys.version_info[:2] >= (2, 5) | 
 |  | 
 |  | 
 | def is_instance(obj, klass): | 
 |     """Version of is_instance that doesn't access __class__""" | 
 |     return issubclass(type(obj), klass) | 
 |  | 
 |  | 
 | class SomeClass(object): | 
 |     class_attribute = None | 
 |  | 
 |     def wibble(self): | 
 |         pass | 
 |  | 
 |  | 
 | class X(object): | 
 |     pass | 
 |  | 
 | try: | 
 |     next = next | 
 | except NameError: | 
 |     def next(obj): | 
 |         return obj.next() |