While IPython shows nice traceback for exceptions, even for 1/0 in the interpreter, it is quite confusing for warnings, e.g.
novoselt@sage:~/sage$ sage
┌────────────────────────────────────────────────────────────────────┐
│ SageMath version 7.3.beta0, Release Date: 2016-05-21 │
│ Type "notebook()" for the browser-based notebook interface. │
│ Type "help()" for help. │
└────────────────────────────────────────────────────────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Warning: this is a prerelease version, and it may be unstable. ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
sage: Piecewise([[(1,2),x]])
/home/novoselt/sage/src/bin/sage-ipython:1: DeprecationWarning: use lower-case piecewise instead
See
http://trac.sagemath.org/14801 for details.
#!/usr/bin/env python
/home/novoselt/sage/local/lib/python2.7/site-packages/IPython/core/formatters.py:92: DeprecationWarning: DisplayFormatter._ipython_display_formatter_default is deprecated: use @default decorator instead.
def _ipython_display_formatter_default(self):
/home/novoselt/sage/local/lib/python2.7/site-packages/IPython/core/formatters.py:98: DeprecationWarning: DisplayFormatter._formatters_default is deprecated: use @default decorator instead.
def _formatters_default(self):
/home/novoselt/sage/local/lib/python2.7/site-packages/IPython/core/formatters.py:677: DeprecationWarning: PlainTextFormatter._deferred_printers_default is deprecated: use @default decorator instead.
def _deferred_printers_default(self):
/home/novoselt/sage/local/lib/python2.7/site-packages/IPython/core/formatters.py:669: DeprecationWarning: PlainTextFormatter._singleton_printers_default is deprecated: use @default decorator instead.
def _singleton_printers_default(self):
/home/novoselt/sage/local/lib/python2.7/site-packages/IPython/core/formatters.py:672: DeprecationWarning: PlainTextFormatter._type_printers_default is deprecated: use @default decorator instead.
def _type_printers_default(self):
/home/novoselt/sage/local/lib/python2.7/site-packages/IPython/core/formatters.py:669: DeprecationWarning: PlainTextFormatter._singleton_printers_default is deprecated: use @default decorator instead.
def _singleton_printers_default(self):
/home/novoselt/sage/local/lib/python2.7/site-packages/IPython/core/formatters.py:672: DeprecationWarning: PlainTextFormatter._type_printers_default is deprecated: use @default decorator instead.
def _type_printers_default(self):
/home/novoselt/sage/local/lib/python2.7/site-packages/IPython/core/formatters.py:677: DeprecationWarning: PlainTextFormatter._deferred_printers_default is deprecated: use @default decorator instead.
def _deferred_printers_default(self):
Piecewise defined function with 1 parts, [[(1, 2), x]]
A lot of trailing messages are surely annoying, but right after the deprecation warning we see
#!/usr/bin/env python
which is the first line of the sage-ipython script which has nothing to do with my piecewise function.
I just managed to go from
/home/sc_serv/sagecell/receiver.py:79: DeprecationWarning: use lower-case piecewise instead
See
http://trac.sagemath.org/14801 for details.
# something here so that worker processes don't have this overhead
to
sagemathcell.py:79: DeprecationWarning: use lower-case piecewise instead
See
http://trac.sagemath.org/14801 for details.
f = Piecewise([((a, b), e.function(x)) for e, a, b in f])
warning message in a long interact entered in SageMathCell. The hack is here
https://github.com/sagemath/sagecell/commit/6c6216e4c8253ccd4c006bc055eaa8024c286940Should something like this be done in Sage or perhaps in IPython directly?