##// END OF EJS Templates
restart channels on kernel restart...
restart channels on kernel restart generally not necessary, but sometimes the kernel connection can be dirty. We have only seen this by starting a qtconsole via %qtconsole, then killing the kernel, at which point the original notebook's connection (at the zmq level) is never restored to the new kernel at the same endpoint. It's weird, and probably a zmq bug, but a simple reconnect seems to solve it.

File last commit:

r8335:50c631dd
r10335:652de7b3
Show More
ulinecache.py
45 lines | 1.6 KiB | text/x-python | PythonLexer
Thomas Kluyver
Fix getting unicode lines in IPython.core.debugger.
r8324 """Wrapper around linecache which decodes files to unicode according to PEP 263.
This is only needed for Python 2 - linecache in Python 3 does the same thing
itself.
"""
import functools
import linecache
Jörgen Stenarson
Convert filename to bytes in getlines....
r8335 import sys
Thomas Kluyver
Fix getting unicode lines in IPython.core.debugger.
r8324
from IPython.utils import py3compat
from IPython.utils import openpy
if py3compat.PY3:
getline = linecache.getline
# getlines has to be looked up at runtime, because doctests monkeypatch it.
@functools.wraps(linecache.getlines)
def getlines(filename, module_globals=None):
return linecache.getlines(filename, module_globals=module_globals)
else:
def getlines(filename, module_globals=None):
"""Get the lines (as unicode) for a file from the cache.
Update the cache if it doesn't contain an entry for this file already."""
Jörgen Stenarson
Convert filename to bytes in getlines....
r8335 filename = py3compat.cast_bytes(filename, sys.getfilesystemencoding())
Thomas Kluyver
Fixes for producing unicode tracebacks.
r8325 lines = linecache.getlines(filename, module_globals=module_globals)
# The bits we cache ourselves can be unicode.
if (not lines) or isinstance(lines[0], unicode):
return lines
readline = openpy._list_readline(lines)
Thomas Kluyver
Fix getting unicode lines in IPython.core.debugger.
r8324 try:
encoding, _ = openpy.detect_encoding(readline)
except SyntaxError:
encoding = 'ascii'
Thomas Kluyver
Fixes for producing unicode tracebacks.
r8325 return [l.decode(encoding, 'replace') for l in lines]
Thomas Kluyver
Fix getting unicode lines in IPython.core.debugger.
r8324
# This is a straight copy of linecache.getline
def getline(filename, lineno, module_globals=None):
lines = getlines(filename, module_globals)
if 1 <= lineno <= len(lines):
return lines[lineno-1]
else:
return ''