diff --git a/plugins/Math/plugin.py b/plugins/Math/plugin.py index 44469ba8c..21e91bb23 100644 --- a/plugins/Math/plugin.py +++ b/plugins/Math/plugin.py @@ -40,6 +40,7 @@ import supybot.utils as utils from supybot.commands import * import supybot.callbacks as callbacks +convertcore = utils.python.universalImport('convertcore', 'our_convertcore') try: import convertcore except ImportError: diff --git a/src/utils/python.py b/src/utils/python.py index c03339b22..6a0125fe9 100644 --- a/src/utils/python.py +++ b/src/utils/python.py @@ -27,9 +27,21 @@ # POSSIBILITY OF SUCH DAMAGE. ### +import sys import types import threading +def universalImport(*names): + f = sys._getframe(1) + for name in names: + try: + ret = __import__(name, globals=f.f_globals) + except ImportError: + continue + else: + return ret + raise ImportError, ','.join(names) + def changeFunctionName(f, name, doc=None): if doc is None: doc = f.__doc__