Show More
@@ -2454,7 +2454,7 class InteractiveShell(SingletonConfigurable, Magic): | |||||
2454 | # Skip our own frame in searching for locals: |
|
2454 | # Skip our own frame in searching for locals: | |
2455 | sys._getframe(depth+1).f_locals # locals |
|
2455 | sys._getframe(depth+1).f_locals # locals | |
2456 | ) |
|
2456 | ) | |
2457 |
return str(res) |
|
2457 | return py3compat.str_to_unicode(str(res), res.codec) | |
2458 |
|
2458 | |||
2459 | def mktempfile(self, data=None, prefix='ipython_edit_'): |
|
2459 | def mktempfile(self, data=None, prefix='ipython_edit_'): | |
2460 | """Make a new tempfile and return its filename. |
|
2460 | """Make a new tempfile and return its filename. |
@@ -23,12 +23,12 from __future__ import print_function | |||||
23 | import __builtin__ as builtin_mod |
|
23 | import __builtin__ as builtin_mod | |
24 | import os |
|
24 | import os | |
25 | import sys |
|
25 | import sys | |
26 | from types import MethodType |
|
|||
27 |
|
26 | |||
28 | # our own |
|
27 | # our own | |
29 | from . import tools |
|
28 | from . import tools | |
30 |
|
29 | |||
31 | from IPython.utils import io |
|
30 | from IPython.utils import io | |
|
31 | from IPython.utils import py3compat | |||
32 | from IPython.frontend.terminal.interactiveshell import TerminalInteractiveShell |
|
32 | from IPython.frontend.terminal.interactiveshell import TerminalInteractiveShell | |
33 |
|
33 | |||
34 | #----------------------------------------------------------------------------- |
|
34 | #----------------------------------------------------------------------------- | |
@@ -204,11 +204,10 def start_ipython(): | |||||
204 | # Modify the IPython system call with one that uses getoutput, so that we |
|
204 | # Modify the IPython system call with one that uses getoutput, so that we | |
205 | # can capture subcommands and print them to Python's stdout, otherwise the |
|
205 | # can capture subcommands and print them to Python's stdout, otherwise the | |
206 | # doctest machinery would miss them. |
|
206 | # doctest machinery would miss them. | |
207 |
shell.system = MethodType(xsys, shell |
|
207 | shell.system = py3compat.MethodType(xsys, shell) | |
208 |
|
208 | |||
209 |
|
209 | |||
210 |
shell._showtraceback = MethodType(_showtraceback, shell |
|
210 | shell._showtraceback = py3compat.MethodType(_showtraceback, shell) | |
211 | TerminalInteractiveShell) |
|
|||
212 |
|
211 | |||
213 | # IPython is ready, now clean up some global state... |
|
212 | # IPython is ready, now clean up some global state... | |
214 |
|
213 |
@@ -27,6 +27,7 else: | |||||
27 | from ._process_posix import _find_cmd, system, getoutput |
|
27 | from ._process_posix import _find_cmd, system, getoutput | |
28 |
|
28 | |||
29 | from ._process_common import getoutputerror |
|
29 | from ._process_common import getoutputerror | |
|
30 | from IPython.utils import py3compat | |||
30 |
|
31 | |||
31 | #----------------------------------------------------------------------------- |
|
32 | #----------------------------------------------------------------------------- | |
32 | # Code |
|
33 | # Code | |
@@ -115,7 +116,7 def arg_split(s, posix=False): | |||||
115 | # At least encoding the input when it's unicode seems to help, but there |
|
116 | # At least encoding the input when it's unicode seems to help, but there | |
116 | # may be more problems lurking. Apparently this is fixed in python3. |
|
117 | # may be more problems lurking. Apparently this is fixed in python3. | |
117 | is_unicode = False |
|
118 | is_unicode = False | |
118 | if isinstance(s, unicode): |
|
119 | if (not py3compat.PY3) and isinstance(s, unicode): | |
119 | is_unicode = True |
|
120 | is_unicode = True | |
120 | s = s.encode('utf-8') |
|
121 | s = s.encode('utf-8') | |
121 | lex = shlex.shlex(s, posix=posix) |
|
122 | lex = shlex.shlex(s, posix=posix) |
@@ -1,6 +1,7 | |||||
1 | # coding: utf-8 |
|
1 | # coding: utf-8 | |
2 | """Compatibility tricks for Python 3. Mainly to do with unicode.""" |
|
2 | """Compatibility tricks for Python 3. Mainly to do with unicode.""" | |
3 | import sys |
|
3 | import sys | |
|
4 | import types | |||
4 |
|
5 | |||
5 | orig_open = open |
|
6 | orig_open = open | |
6 |
|
7 | |||
@@ -43,6 +44,8 if sys.version_info[0] >= 3: | |||||
43 | return s.isidentifier() |
|
44 | return s.isidentifier() | |
44 |
|
45 | |||
45 | open = orig_open |
|
46 | open = orig_open | |
|
47 | ||||
|
48 | MethodType = types.MethodType | |||
46 |
|
49 | |||
47 | else: |
|
50 | else: | |
48 | PY3 = False |
|
51 | PY3 = False | |
@@ -83,6 +86,9 else: | |||||
83 |
|
86 | |||
84 | def __exit__(self, etype, value, traceback): |
|
87 | def __exit__(self, etype, value, traceback): | |
85 | self.f.close() |
|
88 | self.f.close() | |
|
89 | ||||
|
90 | def MethodType(func, instance): | |||
|
91 | return types.MethodType(func, instance, type(instance)) | |||
86 |
|
92 | |||
87 | def execfile(fname, glob, loc=None): |
|
93 | def execfile(fname, glob, loc=None): | |
88 | loc = loc if (loc is not None) else glob |
|
94 | loc = loc if (loc is not None) else glob |
General Comments 0
You need to be logged in to leave comments.
Login now