* The IPControllerApp now uses ApplicationWithDir to manage the app_dir.
* The setup.py script and ipcontroller script have been updated to use
the new IPControllerApp.
* launch_new_instance created and being used.
This branch did start with the config system refactor, but moved on
from there. Here are some highlights.
* New config system.
* Traitlets
* Componenets
* Applications
* The main ipython program has been refactored to use these new
abstractions.
The ipapi.py module has been completely deprecated as of this point.
No new code should use it and all existing code that uses it will
migrate away from it. The launch_new_instance function has
been moved to ipapp and the setup.py scripts have been updated.
* New top-level sub-packages have been created: :mod:`IPython.core`,
:mod:`IPython.lib`, :mod:`IPython.utils`, :mod:`IPython.deathrow`,
:mod:`IPython.quarantine`. All existing top-level modules have been
moved to appropriate sub-packages. All internal import statements
have been updated and tests have been added. The build system (setup.py
and friends) have been updated.
* Compatability modules have been created for :mod:`IPython.Shell`,
:mod:`IPython.ipapi` and :mod:`IPython.iplib` that display warnings
and then load the actual implementation from :mod:`IPython.core`.
* :mod:`Extensions` has been moved to :mod:`extensions`.
A couple of issues came up:
* Some tests in testing and frontend rely on twisted, but are being
tested with nose. This is bad! We currently have hackish logic in
iptest to skip these if twisted is not installed, but if it is we
are testing them with nose!
* Some modules (engineservice, kernel/error, newserialized) have nose
skip logic even though they should never be tested with nose.
* When trial is run on testStrictDict we get an uncaught error.
testStrictDict ... ERROR: An unexpected error occurred while tokenizing
input The following traceback may be corrupted or invalid
The error message is: ('EOF in multi-line statement', (37, 0))
The main conflicts I had to fix were in ultratb. I have removed
the ultraTB.py in IPython/kernel/core. Now IPython/core/ultratb.py
is being used everywhere. Also I have protected the calls to ipapi.get
to see if None is returned. This happens when trial IPython.kernel
is run.
Check that wx.aui can be imported and otherwise exclude modules that use it to
avoid errors when loading the test suite.
Also, do load clearcmd so that the tests for %clear do work.