##// END OF EJS Templates
Updating docs to reflect new examples....
Updating docs to reflect new examples. * Changed literalinclude paths to point to /examples. * Removed parallel options demo from parallel_demos.txt as it is now a notebook. Eventually we will find a way to integrate notebooks with the sphinx docs, but that is beyond the scope of this branch.

File last commit:

r8335:50c631dd
r9200:daa73a3d
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 ''