##// END OF EJS Templates
Changes to pexpect so it does what we need after conversion to Python 3.
Changes to pexpect so it does what we need after conversion to Python 3.

File last commit:

r2498:3eae1372
r4835:a69359fb
Show More
ext_rescapture.py
59 lines | 1.4 KiB | text/x-python | PythonLexer
vivainio
a = !ls, a = %alias now work (captures output or gets ret val for aliases)...
r151 # -*- coding: utf-8 -*-
""" IPython extension: new prefilters for output grabbing
Provides
var = %magic blah blah
var = !ls
"""
Brian Granger
ipapi.py => core/ipapi.py and imports updated.
r2027 from IPython.core import ipapi
Brian Granger
Continuing a massive refactor of everything.
r2205 from IPython.core.error import TryNext
Brian Granger
Work to address the review comments on Fernando's branch....
r2498 from IPython.utils.text import make_quoted_expr
Brian Granger
genutils.py => utils/genutils.py and updated imports and tests.
r2023 from IPython.utils.genutils import *
vivainio
a = !ls, a = %alias now work (captures output or gets ret val for aliases)...
r151
Brian Granger
ipapi.py => core/ipapi.py and imports updated.
r2027 ip = ipapi.get()
vivainio
a = !ls, a = %alias now work (captures output or gets ret val for aliases)...
r151
import re
def hnd_magic(line,mo):
""" Handle a = %mymagic blah blah """
var = mo.group('varname')
cmd = mo.group('cmd')
expr = make_quoted_expr(cmd)
Brian Granger
Massive refactoring of of the core....
r2245 return itpl('$var = get_ipython().magic($expr)')
vivainio
a = !ls, a = %alias now work (captures output or gets ret val for aliases)...
r151
def hnd_syscmd(line,mo):
""" Handle a = !ls """
var = mo.group('varname')
cmd = mo.group('cmd')
vivainio
var = !cmd is no longer verbose
r902 expr = make_quoted_expr(itpl("sc -l =$cmd"))
Brian Granger
Massive refactoring of of the core....
r2245 return itpl('$var = get_ipython().magic($expr)')
vivainio
a = !ls, a = %alias now work (captures output or gets ret val for aliases)...
r151
def install_re_handler(pat, hnd):
fperez
Defaults rename, clean up api to use properties or direct access rather than...
r284 ip.meta.re_prefilters.append((re.compile(pat), hnd))
vivainio
a = !ls, a = %alias now work (captures output or gets ret val for aliases)...
r151
def init_handlers():
fperez
Defaults rename, clean up api to use properties or direct access rather than...
r284 ip.meta.re_prefilters = []
vivainio
a = !ls, a = %alias now work (captures output or gets ret val for aliases)...
r151
install_re_handler('(?P<varname>[\w\.]+)\s*=\s*%(?P<cmd>.*)',
hnd_magic
)
install_re_handler('(?P<varname>[\w\.]+)\s*=\s*!(?P<cmd>.*)',
hnd_syscmd
)
init_handlers()
Brian Granger
First go an implementing a=!ls and a=%who syntax....
r2256 def regex_prefilter_f(self,line):
fperez
Defaults rename, clean up api to use properties or direct access rather than...
r284 for pat, handler in ip.meta.re_prefilters:
vivainio
a = !ls, a = %alias now work (captures output or gets ret val for aliases)...
r151 mo = pat.match(line)
if mo:
return handler(line,mo)
Brian Granger
Continuing a massive refactor of everything.
r2205 raise TryNext
vivainio
a = !ls, a = %alias now work (captures output or gets ret val for aliases)...
r151
fperez
Defaults rename, clean up api to use properties or direct access rather than...
r284 ip.set_hook('input_prefilter', regex_prefilter_f)