iPython is an interactive interpreter that allows for object introspection, system shell access, and its own command system for adding interactive functionality. iPython is also embeddable, allowing its use within other programs. iPython has a flexible framework allowing its use as a base environment with Python as the underlying language
There are a few primary features that iPython offers which our framework interface can benefit from. Though I will try to address much of this, for a complete and detailed description please refer to the iPython User Manual.
Dynamic Object Introspection and Namespace Completion
Allowing for an interpreter to have knowledge of its functional interface is a very powerful feature of iPython. With this, along with namespace completion, script developers can easily have knowledge of what is available within their environment. iPython allows for TAB completion of local symbols, filenames, and environment variables.
Command History and Session Logging
Commands that have been issued are available through the command history environment similar to what is offered in Unix shells. This, coupled with system logging and restoring, ensures that a script developer can reissue commands with very little effort. System logging allows for a given state of a session to be restored.
Permanent setting of all comman-line options, module loading, and code execution can be implemented within iPythons flexible configuration system. A base "deployment" configuration can be layered on top of with user customizations.
Extenisble and System Calls
iPython allows for syntax extensions and reconfiguration of its environment (such as reassignment of the prompt for prompt customization). System calls can be made directly from within iPython through special syntax rules.
Implementing an interactive interpreter within an application is offered through a single function call to iPython.
Debugger and Profiler Support
iPython allows for triggers to be set for uncaught exceptions that will invoke the Python debugger (pdb) and drop into the code that triggered the exception. This allows for the script developer to view live data and navigate the stack for bug tracking. Profiling is also offered.
Python version 2.2 or newer is required for iPython.