##// END OF EJS Templates
Line continuations now terminate after one blank line (#2108)...
Line continuations now terminate after one blank line (#2108) Previously, we had In [1]: 1\ ...: ...: ...: ...: In other words, no amount of blank lines would terminate after a line continuation, in contrast with regular Python: >>> 1\ ... 1 This made things really annoying when I typed \ instead of a newline--quite easy to do since they are right next to each other on the keyboard. Now, we have In [1]: 1\ ...: Out[1]: 1 This also fixes another related behavioral difference between IPython. If a space follows a line continuation character, it should be a SyntaxError("unexpected character after line continuation character"), even if the line is otherwise continuable, according to regular Python (e.g., `1 \ ` or `(1 + \ `). This now consistent between the two. Closes #2108

File last commit:

r4872:34c10438
r7823:9bd0c900
Show More
ipy_extutil.py
44 lines | 1.2 KiB | text/x-python | PythonLexer
""" IPython extension management tools.
After installation, you'll have the 'extutil' object in your namespace.
to.
"""
# for the purposes of this module, every module that has the name 'ip' globally
# installed as below is an IPython extension
from IPython.core import ipapi
ip = ipapi.get()
from IPython.core.iplib import InteractiveShell
import sys,textwrap,inspect
def indent(s, ind= ' '):
return '\n'.join([ind +l for l in s.splitlines()])
class ExtUtil:
""" IPython extensios (ipy_* etc.) management utilities """
def describe(self):
for n,mod in self._active():
doc = inspect.getdoc(mod)
if doc:
print '== %s ==' % n
print indent(doc)
def ls(self):
""" Show list of installed extensions. """
for n,m in self._active():
print '%-20s %s' % (n,m.__file__.replace('\\','/'))
def _active(self):
act = []
for mname,m in sys.modules.items():
o = getattr(m, 'ip', None)
if isinstance(o, InteractiveShell):
act.append((mname,m))
act.sort()
return act
extutil = ExtUtil()
ip.push('extutil')