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