compat.py 1008 Bytes
""" Contains monkey-patched equivalents for a few commonly-used Python 2.7-and-higher functions.
Used to provide backwards-compatibility with Python 2.6
"""
import sys
if sys.version_info[0] == 2 and sys.version_info[1] < 7:
    import threading
    
    # threading.Event.wait() always returns None in Python < 2.7 so we need to patch it
    if hasattr(threading, '_Event'): # threading.Event is a function that return threading._Event
        # This is heavily Python-implementation-specific, so patch where we can, otherwise leave it
        def wrapWait(func):
            def newWait(self, timeout=None):
                func(self, timeout)
                return self.is_set()            
            return newWait
        threading._Event.wait = wrapWait(threading._Event.wait)
    else:
        raise ImportError('Could not patch this version of Python 2.{0} for compatibility with python-gsmmodem.'.format(sys.version_info[1]))
if sys.version_info[0] == 2:
    str = str
else:
    str = lambda x: x