Enhanced interactive Python shell
IPython can be used as a replacement for the standard Python shell,
or it can be used as a complete working environment for scientific
computing (like Matlab or Mathematica) when paired with the standard
Python scientific and numerical tools. It supports dynamic object
introspections, numbered input/output prompts, a macro system,
session logging, session restoring, complete system shell access,
verbose and colored traceback reports, auto-parentheses, auto-quoting,
and is embeddable in other Python programs.