[IPython-dev] IPyAutocall-like dispatching with simplegeneric
Ville M. Vainio
vivainio at gmail.com
Wed May 16 11:24:13 EDT 2007
Introduction of IPyAutocall made me think that we could make the
'command dispatching' more 'generic' (pun not intended) by harnessing
simplegeneric, already introduced to IPython by Walter
That is, if the command part (iFun) is an object in user_ns that has
association created to a generic function, e.g. ipycmd, it would
always be called with specified arguments. This would avoid the need
to subclass IPyAutocall and override __call__, just tag the function
as generic and be done with it.
Something like (liberally copy-pasting from simplegeneric home page):
... def ipycmd(item, ip, iFun, rest):
... """Default implementation goes here"""
... print "we don't really want a default implementation..."
OScmdmarker = object()
def callsyscmd(item, ip,iFun, rest):
ip.system(iFun+' ' + rest)
cp = OScmdmarker
mv = OScmdmarker
def callmacro(item, ip, iFun, rest):
ip.user_ns['_margv'] = rest
I guess at least Walter might want to chip in, I have never actually
used this simplegeneric myself.
Ville M. Vainio - vivainio.googlepages.com
blog=360.yahoo.com/villevainio - g[mail | talk]='vivainio'
More information about the IPython-dev