Thanks to the help of Robert Bradshaw, and to the file IPython/
hooks.py, I've cobbled together the following sage.init file:
import IPython
from IPython import ipapi
from IPython.genutils import Term
from pprint import PrettyPrinter
pformat = PrettyPrinter().pformat
def repr_and_parent(self, arg):
if hasattr(arg, 'parent'):
try:
print >>Term.cout, "%s\n\nParent: %s"%(repr(arg),repr
(arg.parent()))
return
except:
pass
raise ipapi.TryNext
def repr_only(self,arg):
if self.rc.pprint:
out = pformat(arg)
if '\n' in out:
Term.cout.write('\n')
print >>Term.cout, out
else:
print >>Term.cout, repr(arg)
return None
def show_parent():
ipapi.get().set_hook("result_display", repr_and_parent)
def hide_parent():
ipapi.get().set_hook("result_display", repr_only)
However, it doesn't work. In console mode show_parent() should turn
the display of parents on, and hide_parent() should turn it off. It
seems to work once - but not again. That is, parent display can be
turned on, and then off, but not on again - show_parent() has no
effect after one "cycle". I'm not quite sure what's going on - my
python knowledge is limited. And sometimes when parent display is on,
hide_parent() has no effect.
Any ideas?
Thanks,
Alasdair
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---