From 26e96915e198ebc950b9eb4d008d29f44eba2392 2011-10-18 17:27:41 From: Jörgen Stenarson Date: 2011-10-18 17:27:41 Subject: [PATCH] fix for execfile that does not tolerate non-ascii characters in filename. --- diff --git a/IPython/utils/py3compat.py b/IPython/utils/py3compat.py index 1016e77..002ce5c 100644 --- a/IPython/utils/py3compat.py +++ b/IPython/utils/py3compat.py @@ -142,6 +142,7 @@ else: def doctest_refactor_print(func_or_str): return func_or_str + # Abstract u'abc' syntax: @_modify_str_or_docstring def u_format(s): @@ -149,3 +150,14 @@ else: Accepts a string or a function, so it can be used as a decorator.""" return s.format(u='u') + + def execfile(fname, glob, loc=None): + loc = loc if (loc is not None) else glob + scripttext = file(fname).read() + #compile converts unicode filename to str assuming + #ascii. Let's do the conversion before calling compile + if isinstance(fname, unicode): + filename = unicode_to_str(fname) + else: + filename = fname + exec compile(scripttext, filename, 'exec') in glob, loc