| 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() |