IPython provides a replacement for the interactive python (Python)
interpreter with extra functionality.
* Comprehensive object introspection.
* Input history that is persistent across sessions.
* Caching of output results during a session with automatically
* Readline-based name completion.
* Extensible system of 'magic' commands for controlling the
environment and performing many tasks related either to IPython
or the operating system.
* Configuration system with easy switching between different setups
(simpler than changing $PYTHONSTARTUP environment variables every
* Session logging and reloading.
* Extensible syntax processing for special purpose situations.
* Access to the system shell with user-extensible alias system.
* Easily embeddable in other Python programs.
* Integrated access to the pdb debugger and the Python profiler