##// END OF EJS Templates
Describe the IPython situation in What's New docs.
Thomas Kluyver -
Show More
@@ -1,298 +1,308 b''
1 ================================================
1 ================================================
2 Development version
2 Development version
3 ================================================
3 ================================================
4
4
5 The changes listed here are a brief summary of the substantial work on IPython
5 The changes listed here are a brief summary of the substantial work on IPython
6 since the 0.10.x release series. For more details, please consult the actual
6 since the 0.10.x release series. For more details, please consult the actual
7 source.
7 source.
8
8
9 Main `ipython` branch
9 Main `ipython` branch
10 =====================
10 =====================
11
11
12 Refactoring
12 Refactoring
13 -----------
13 -----------
14
14
15 As of the 0.11 version of IPython, a signifiant portion of the core has been
15 As of the 0.11 version of IPython, a signifiant portion of the core has been
16 refactored. This refactoring is founded on a number of new abstractions.
16 refactored. This refactoring is founded on a number of new abstractions.
17 The main new classes that implement these abstractions are:
17 The main new classes that implement these abstractions are:
18
18
19 * :class:`IPython.utils.traitlets.HasTraits`.
19 * :class:`IPython.utils.traitlets.HasTraits`.
20 * :class:`IPython.config.configurable.Configurable`.
20 * :class:`IPython.config.configurable.Configurable`.
21 * :class:`IPython.config.application.Application`.
21 * :class:`IPython.config.application.Application`.
22 * :class:`IPython.config.loader.ConfigLoader`.
22 * :class:`IPython.config.loader.ConfigLoader`.
23 * :class:`IPython.config.loader.Config`
23 * :class:`IPython.config.loader.Config`
24
24
25 We are still in the process of writing developer focused documentation about
25 We are still in the process of writing developer focused documentation about
26 these classes, but for now our :ref:`configuration documentation
26 these classes, but for now our :ref:`configuration documentation
27 <config_overview>` contains a high level overview of the concepts that these
27 <config_overview>` contains a high level overview of the concepts that these
28 classes express.
28 classes express.
29
29
30 The biggest user-visible change is likely the move to using the config system to
30 The biggest user-visible change is likely the move to using the config system to
31 determine the command-line arguments for IPython applications. The benefit of
31 determine the command-line arguments for IPython applications. The benefit of
32 this is that *all* configurable values in IPython are exposed on the
32 this is that *all* configurable values in IPython are exposed on the
33 command-line, but the syntax for specifying values has changed. The gist is that
33 command-line, but the syntax for specifying values has changed. The gist is that
34 assigning values is pure Python assignment, so there is always an '=', and never
34 assigning values is pure Python assignment, so there is always an '=', and never
35 a leading '-', nor a space separating key from value. Flags exist, to set
35 a leading '-', nor a space separating key from value. Flags exist, to set
36 multiple values or boolean flags, and these are always prefixed with '--', and
36 multiple values or boolean flags, and these are always prefixed with '--', and
37 never take arguments.
37 never take arguments.
38
38
39 ZMQ architecture
39 ZMQ architecture
40 ----------------
40 ----------------
41
41
42 There is a new GUI framework for IPython, based on a client-server model in
42 There is a new GUI framework for IPython, based on a client-server model in
43 which multiple clients can communicate with one IPython kernel, using the
43 which multiple clients can communicate with one IPython kernel, using the
44 ZeroMQ messaging framework. There is already a Qt console client, which can
44 ZeroMQ messaging framework. There is already a Qt console client, which can
45 be started by calling ``ipython qtconsole``. The protocol is :ref:`documented
45 be started by calling ``ipython qtconsole``. The protocol is :ref:`documented
46 <messaging>`.
46 <messaging>`.
47
47
48 The parallel computing framework has also been rewritten using ZMQ. The
48 The parallel computing framework has also been rewritten using ZMQ. The
49 protocol is described :ref:`here <parallel_messages>`, and the code is in the
49 protocol is described :ref:`here <parallel_messages>`, and the code is in the
50 new :mod:`IPython.parallel` module.
50 new :mod:`IPython.parallel` module.
51
51
52 Python 3 support
52 Python 3 support
53 ----------------
53 ----------------
54
54
55 A Python 3 version of IPython has been prepared. For the time being, this is
55 A Python 3 version of IPython has been prepared. For the time being, this is
56 maintained separately and updated from the main codebase. Its code can be found
56 maintained separately and updated from the main codebase. Its code can be found
57 `here <https://github.com/ipython/ipython-py3k>`_. Note that the parallel
57 `here <https://github.com/ipython/ipython-py3k>`_. Note that the parallel
58 computing features do not yet work in Python 3.
58 computing features do not yet work in Python 3.
59
59
60 Unicode
61 -------
62
63 Entering non-ascii characters in unicode literals (``u"€ø"``) now works properly
64 on all platforms. However, entering these in byte/string literals (``"€ø"``)
65 will not work as expected on Windows (or any platform where the terminal encoding
66 is not UTF-8, as it typically is for Linux & Mac OS X). You can use escape sequences
67 (``"\xe9\x82"``) to get bytes above 128, or use unicode literals and encode
68 them. This is a limitation of Python 2 which we cannot easily work around.
69
60 New features
70 New features
61 ------------
71 ------------
62
72
63 * Added ``Bytes`` traitlet, removing ``Str``. All 'string' traitlets should
73 * Added ``Bytes`` traitlet, removing ``Str``. All 'string' traitlets should
64 either be ``Unicode`` if a real string, or ``Bytes`` if a C-string. This
74 either be ``Unicode`` if a real string, or ``Bytes`` if a C-string. This
65 removes ambiguity and helps the Python 3 transition.
75 removes ambiguity and helps the Python 3 transition.
66
76
67 * New magic ``%loadpy`` loads a python file from disk or web URL into
77 * New magic ``%loadpy`` loads a python file from disk or web URL into
68 the current input buffer.
78 the current input buffer.
69
79
70 * New magic ``%pastebin`` for sharing code via the 'Lodge it' pastebin.
80 * New magic ``%pastebin`` for sharing code via the 'Lodge it' pastebin.
71
81
72 * New magic ``%precision`` for controlling float and numpy pretty printing.
82 * New magic ``%precision`` for controlling float and numpy pretty printing.
73
83
74 * IPython applications initiate logging, so any object can gain access to
84 * IPython applications initiate logging, so any object can gain access to
75 a the logger of the currently running Application with:
85 a the logger of the currently running Application with:
76
86
77 .. sourcecode:: python
87 .. sourcecode:: python
78
88
79 from IPython.config.application import Application
89 from IPython.config.application import Application
80 logger = Application.instance().log
90 logger = Application.instance().log
81
91
82 * You can now get help on an object halfway through typing a command. For
92 * You can now get help on an object halfway through typing a command. For
83 instance, typing ``a = zip?`` shows the details of :func:`zip`. It also
93 instance, typing ``a = zip?`` shows the details of :func:`zip`. It also
84 leaves the command at the next prompt so you can carry on with it.
94 leaves the command at the next prompt so you can carry on with it.
85
95
86 * The input history is now written to an SQLite database. The API for
96 * The input history is now written to an SQLite database. The API for
87 retrieving items from the history has also been redesigned.
97 retrieving items from the history has also been redesigned.
88
98
89 * The :mod:`IPython.extensions.pretty` extension has been moved out of
99 * The :mod:`IPython.extensions.pretty` extension has been moved out of
90 quarantine and fully updated to the new extension API.
100 quarantine and fully updated to the new extension API.
91
101
92 * New magics for loading/unloading/reloading extensions have been added:
102 * New magics for loading/unloading/reloading extensions have been added:
93 ``%load_ext``, ``%unload_ext`` and ``%reload_ext``.
103 ``%load_ext``, ``%unload_ext`` and ``%reload_ext``.
94
104
95 * The configuration system and configuration files are brand new. See the
105 * The configuration system and configuration files are brand new. See the
96 configuration system :ref:`documentation <config_index>` for more details.
106 configuration system :ref:`documentation <config_index>` for more details.
97
107
98 * The :class:`~IPython.core.interactiveshell.InteractiveShell` class is now a
108 * The :class:`~IPython.core.interactiveshell.InteractiveShell` class is now a
99 :class:`~IPython.config.configurable.Configurable` subclass and has traitlets that
109 :class:`~IPython.config.configurable.Configurable` subclass and has traitlets that
100 determine the defaults and runtime environment. The ``__init__`` method has
110 determine the defaults and runtime environment. The ``__init__`` method has
101 also been refactored so this class can be instantiated and run without the
111 also been refactored so this class can be instantiated and run without the
102 old :mod:`ipmaker` module.
112 old :mod:`ipmaker` module.
103
113
104 * The methods of :class:`~IPython.core.interactiveshell.InteractiveShell` have
114 * The methods of :class:`~IPython.core.interactiveshell.InteractiveShell` have
105 been organized into sections to make it easier to turn more sections
115 been organized into sections to make it easier to turn more sections
106 of functionality into components.
116 of functionality into components.
107
117
108 * The embedded shell has been refactored into a truly standalone subclass of
118 * The embedded shell has been refactored into a truly standalone subclass of
109 :class:`InteractiveShell` called :class:`InteractiveShellEmbed`. All
119 :class:`InteractiveShell` called :class:`InteractiveShellEmbed`. All
110 embedding logic has been taken out of the base class and put into the
120 embedding logic has been taken out of the base class and put into the
111 embedded subclass.
121 embedded subclass.
112
122
113 * Added methods of :class:`~IPython.core.interactiveshell.InteractiveShell` to
123 * Added methods of :class:`~IPython.core.interactiveshell.InteractiveShell` to
114 help it cleanup after itself. The :meth:`cleanup` method controls this. We
124 help it cleanup after itself. The :meth:`cleanup` method controls this. We
115 couldn't do this in :meth:`__del__` because we have cycles in our object
125 couldn't do this in :meth:`__del__` because we have cycles in our object
116 graph that prevent it from being called.
126 graph that prevent it from being called.
117
127
118 * Created a new module :mod:`IPython.utils.importstring` for resolving
128 * Created a new module :mod:`IPython.utils.importstring` for resolving
119 strings like ``foo.bar.Bar`` to the actual class.
129 strings like ``foo.bar.Bar`` to the actual class.
120
130
121 * Completely refactored the :mod:`IPython.core.prefilter` module into
131 * Completely refactored the :mod:`IPython.core.prefilter` module into
122 :class:`~IPython.config.configurable.Configurable` subclasses. Added a new layer
132 :class:`~IPython.config.configurable.Configurable` subclasses. Added a new layer
123 into the prefilter system, called "transformations" that all new prefilter
133 into the prefilter system, called "transformations" that all new prefilter
124 logic should use (rather than the older "checker/handler" approach).
134 logic should use (rather than the older "checker/handler" approach).
125
135
126 * Aliases are now components (:mod:`IPython.core.alias`).
136 * Aliases are now components (:mod:`IPython.core.alias`).
127
137
128 * We are now using an internally shipped version of
138 * We are now using an internally shipped version of
129 :mod:`~IPython.external.argparse` to parse command line options for
139 :mod:`~IPython.external.argparse` to parse command line options for
130 :command:`ipython`.
140 :command:`ipython`.
131
141
132 * New top level :func:`~IPython.frontend.terminal.embed.embed` function that can
142 * New top level :func:`~IPython.frontend.terminal.embed.embed` function that can
133 be called to embed IPython at any place in user's code. One the first call it
143 be called to embed IPython at any place in user's code. One the first call it
134 will create an :class:`~IPython.frontend.terminal.embed.InteractiveShellEmbed`
144 will create an :class:`~IPython.frontend.terminal.embed.InteractiveShellEmbed`
135 instance and call it. In later calls, it just calls the previously created
145 instance and call it. In later calls, it just calls the previously created
136 :class:`~IPython.frontend.terminal.embed.InteractiveShellEmbed`.
146 :class:`~IPython.frontend.terminal.embed.InteractiveShellEmbed`.
137
147
138 * Created a configuration system (:mod:`IPython.config.configurable`) that is
148 * Created a configuration system (:mod:`IPython.config.configurable`) that is
139 based on :mod:`IPython.utils.traitlets`. Configurables are arranged into a
149 based on :mod:`IPython.utils.traitlets`. Configurables are arranged into a
140 runtime containment tree (not inheritance) that i) automatically propagates
150 runtime containment tree (not inheritance) that i) automatically propagates
141 configuration information and ii) allows singletons to discover each other in
151 configuration information and ii) allows singletons to discover each other in
142 a loosely coupled manner. In the future all parts of IPython will be
152 a loosely coupled manner. In the future all parts of IPython will be
143 subclasses of :class:`~IPython.config.configurable.Configurable`. All IPython
153 subclasses of :class:`~IPython.config.configurable.Configurable`. All IPython
144 developers should become familiar with the config system.
154 developers should become familiar with the config system.
145
155
146 * Created a new :class:`~IPython.config.loader.Config` for holding
156 * Created a new :class:`~IPython.config.loader.Config` for holding
147 configuration information. This is a dict like class with a few extras: i)
157 configuration information. This is a dict like class with a few extras: i)
148 it supports attribute style access, ii) it has a merge function that merges
158 it supports attribute style access, ii) it has a merge function that merges
149 two :class:`~IPython.config.loader.Config` instances recursively and iii) it
159 two :class:`~IPython.config.loader.Config` instances recursively and iii) it
150 will automatically create sub-:class:`~IPython.config.loader.Config`
160 will automatically create sub-:class:`~IPython.config.loader.Config`
151 instances for attributes that start with an uppercase character.
161 instances for attributes that start with an uppercase character.
152
162
153 * Created new configuration loaders in :mod:`IPython.config.loader`. These
163 * Created new configuration loaders in :mod:`IPython.config.loader`. These
154 loaders provide a unified loading interface for all configuration
164 loaders provide a unified loading interface for all configuration
155 information including command line arguments and configuration files. We
165 information including command line arguments and configuration files. We
156 have two default implementations based on :mod:`argparse` and plain python
166 have two default implementations based on :mod:`argparse` and plain python
157 files. These are used to implement the new configuration system.
167 files. These are used to implement the new configuration system.
158
168
159 * Created a top-level :class:`Application` class in
169 * Created a top-level :class:`Application` class in
160 :mod:`IPython.core.application` that is designed to encapsulate the starting
170 :mod:`IPython.core.application` that is designed to encapsulate the starting
161 of any basic Python program. An application loads and merges all the
171 of any basic Python program. An application loads and merges all the
162 configuration objects, constructs the main application, configures and
172 configuration objects, constructs the main application, configures and
163 initiates logging, and creates and configures any :class:`Configurable`
173 initiates logging, and creates and configures any :class:`Configurable`
164 instances and then starts the application running. An extended
174 instances and then starts the application running. An extended
165 :class:`BaseIPythonApplication` class adds logic for handling the
175 :class:`BaseIPythonApplication` class adds logic for handling the
166 IPython directory as well as profiles, and all IPython entry points
176 IPython directory as well as profiles, and all IPython entry points
167 extend it.
177 extend it.
168
178
169 * The :class:`Type` and :class:`Instance` traitlets now handle classes given
179 * The :class:`Type` and :class:`Instance` traitlets now handle classes given
170 as strings, like ``foo.bar.Bar``. This is needed for forward declarations.
180 as strings, like ``foo.bar.Bar``. This is needed for forward declarations.
171 But, this was implemented in a careful way so that string to class
181 But, this was implemented in a careful way so that string to class
172 resolution is done at a single point, when the parent
182 resolution is done at a single point, when the parent
173 :class:`~IPython.utils.traitlets.HasTraitlets` is instantiated.
183 :class:`~IPython.utils.traitlets.HasTraitlets` is instantiated.
174
184
175 * :mod:`IPython.utils.ipstruct` has been refactored to be a subclass of
185 * :mod:`IPython.utils.ipstruct` has been refactored to be a subclass of
176 dict. It also now has full docstrings and doctests.
186 dict. It also now has full docstrings and doctests.
177 * Created a Trait's like implementation in :mod:`IPython.utils.traitlets`.
187 * Created a Trait's like implementation in :mod:`IPython.utils.traitlets`.
178 This is a pure Python, lightweight version of a library that is similar to
188 This is a pure Python, lightweight version of a library that is similar to
179 :mod:`enthought.traits`. We are using this for validation, defaults and
189 :mod:`enthought.traits`. We are using this for validation, defaults and
180 notification in our new component system. Although it is not API compatible
190 notification in our new component system. Although it is not API compatible
181 with :mod:`enthought.traits`, we plan on moving in this direction so that
191 with :mod:`enthought.traits`, we plan on moving in this direction so that
182 eventually our implementation could be replaced by a (yet to exist) pure
192 eventually our implementation could be replaced by a (yet to exist) pure
183 Python version of :mod:`enthought.traits`.
193 Python version of :mod:`enthought.traits`.
184
194
185 * Added a new module :mod:`IPython.lib.inputhook` to manage the integration
195 * Added a new module :mod:`IPython.lib.inputhook` to manage the integration
186 with GUI event loops using `PyOS_InputHook`. See the docstrings in this
196 with GUI event loops using `PyOS_InputHook`. See the docstrings in this
187 module or the main IPython docs for details.
197 module or the main IPython docs for details.
188
198
189 * For users, GUI event loop integration is now handled through the new
199 * For users, GUI event loop integration is now handled through the new
190 :command:`%gui` magic command. Type ``%gui?`` at an IPython prompt for
200 :command:`%gui` magic command. Type ``%gui?`` at an IPython prompt for
191 documentation.
201 documentation.
192
202
193 * For developers :mod:`IPython.lib.inputhook` provides a simple interface
203 * For developers :mod:`IPython.lib.inputhook` provides a simple interface
194 for managing the event loops in their interactive GUI applications.
204 for managing the event loops in their interactive GUI applications.
195 Examples can be found in our :file:`docs/examples/lib` directory.
205 Examples can be found in our :file:`docs/examples/lib` directory.
196
206
197 Backwards incompatible changes
207 Backwards incompatible changes
198 ------------------------------
208 ------------------------------
199
209
200 * The Twisted-based :mod:`IPython.kernel` has been removed, and completely
210 * The Twisted-based :mod:`IPython.kernel` has been removed, and completely
201 rewritten as :mod:`IPython.parallel`, using ZeroMQ.
211 rewritten as :mod:`IPython.parallel`, using ZeroMQ.
202
212
203 * Profiles are now directories. Instead of a profile being a single config file,
213 * Profiles are now directories. Instead of a profile being a single config file,
204 profiles are now self-contained directories. By default, profiles get their
214 profiles are now self-contained directories. By default, profiles get their
205 own IPython history, log files, and everything. To create a new profile, do
215 own IPython history, log files, and everything. To create a new profile, do
206 ``ipython profile create <name>``.
216 ``ipython profile create <name>``.
207
217
208 * All IPython applications have been rewritten to use
218 * All IPython applications have been rewritten to use
209 :class:`~IPython.config.loader.KeyValueConfigLoader`. This means that
219 :class:`~IPython.config.loader.KeyValueConfigLoader`. This means that
210 command-line options have changed. Now, all configurable values are accessible
220 command-line options have changed. Now, all configurable values are accessible
211 from the command-line with the same syntax as in a configuration file.
221 from the command-line with the same syntax as in a configuration file.
212
222
213 * The command line options ``-wthread``, ``-qthread`` and
223 * The command line options ``-wthread``, ``-qthread`` and
214 ``-gthread`` have been removed. Use ``gui=wx``, ``gui=qt``, ``gui=gtk``
224 ``-gthread`` have been removed. Use ``gui=wx``, ``gui=qt``, ``gui=gtk``
215 instead.
225 instead.
216
226
217 * The extension loading functions have been renamed to
227 * The extension loading functions have been renamed to
218 :func:`load_ipython_extension` and :func:`unload_ipython_extension`.
228 :func:`load_ipython_extension` and :func:`unload_ipython_extension`.
219
229
220 * :class:`~IPython.core.interactiveshell.InteractiveShell` no longer takes an
230 * :class:`~IPython.core.interactiveshell.InteractiveShell` no longer takes an
221 ``embedded`` argument. Instead just use the
231 ``embedded`` argument. Instead just use the
222 :class:`~IPython.core.interactiveshell.InteractiveShellEmbed` class.
232 :class:`~IPython.core.interactiveshell.InteractiveShellEmbed` class.
223
233
224 * ``__IPYTHON__`` is no longer injected into ``__builtin__``.
234 * ``__IPYTHON__`` is no longer injected into ``__builtin__``.
225
235
226 * :meth:`Struct.__init__` no longer takes `None` as its first argument. It
236 * :meth:`Struct.__init__` no longer takes `None` as its first argument. It
227 must be a :class:`dict` or :class:`Struct`.
237 must be a :class:`dict` or :class:`Struct`.
228
238
229 * :meth:`~IPython.core.interactiveshell.InteractiveShell.ipmagic` has been
239 * :meth:`~IPython.core.interactiveshell.InteractiveShell.ipmagic` has been
230 renamed :meth:`~IPython.core.interactiveshell.InteractiveShell.magic.`
240 renamed :meth:`~IPython.core.interactiveshell.InteractiveShell.magic.`
231
241
232 * The functions :func:`ipmagic` and :func:`ipalias` have been removed from
242 * The functions :func:`ipmagic` and :func:`ipalias` have been removed from
233 :mod:`__builtins__`.
243 :mod:`__builtins__`.
234
244
235 * The references to the global
245 * The references to the global
236 :class:`~IPython.core.interactivehell.InteractiveShell` instance (``_ip``, and
246 :class:`~IPython.core.interactivehell.InteractiveShell` instance (``_ip``, and
237 ``__IP``) have been removed from the user's namespace. They are replaced by a
247 ``__IP``) have been removed from the user's namespace. They are replaced by a
238 new function called :func:`get_ipython` that returns the current
248 new function called :func:`get_ipython` that returns the current
239 :class:`~IPython.core.interactiveshell.InteractiveShell` instance. This
249 :class:`~IPython.core.interactiveshell.InteractiveShell` instance. This
240 function is injected into the user's namespace and is now the main way of
250 function is injected into the user's namespace and is now the main way of
241 accessing the running IPython.
251 accessing the running IPython.
242
252
243 * Old style configuration files :file:`ipythonrc` and :file:`ipy_user_conf.py`
253 * Old style configuration files :file:`ipythonrc` and :file:`ipy_user_conf.py`
244 are no longer supported. Users should migrate there configuration files to
254 are no longer supported. Users should migrate there configuration files to
245 the new format described :ref:`here <config_overview>` and :ref:`here
255 the new format described :ref:`here <config_overview>` and :ref:`here
246 <configuring_ipython>`.
256 <configuring_ipython>`.
247
257
248 * The old IPython extension API that relied on :func:`ipapi` has been
258 * The old IPython extension API that relied on :func:`ipapi` has been
249 completely removed. The new extension API is described :ref:`here
259 completely removed. The new extension API is described :ref:`here
250 <configuring_ipython>`.
260 <configuring_ipython>`.
251
261
252 * Support for ``qt3`` has been dropped. Users who need this should use
262 * Support for ``qt3`` has been dropped. Users who need this should use
253 previous versions of IPython.
263 previous versions of IPython.
254
264
255 * Removed :mod:`shellglobals` as it was obsolete.
265 * Removed :mod:`shellglobals` as it was obsolete.
256
266
257 * Removed all the threaded shells in :mod:`IPython.core.shell`. These are no
267 * Removed all the threaded shells in :mod:`IPython.core.shell`. These are no
258 longer needed because of the new capabilities in
268 longer needed because of the new capabilities in
259 :mod:`IPython.lib.inputhook`.
269 :mod:`IPython.lib.inputhook`.
260
270
261 * New top-level sub-packages have been created: :mod:`IPython.core`,
271 * New top-level sub-packages have been created: :mod:`IPython.core`,
262 :mod:`IPython.lib`, :mod:`IPython.utils`, :mod:`IPython.deathrow`,
272 :mod:`IPython.lib`, :mod:`IPython.utils`, :mod:`IPython.deathrow`,
263 :mod:`IPython.quarantine`. All existing top-level modules have been
273 :mod:`IPython.quarantine`. All existing top-level modules have been
264 moved to appropriate sub-packages. All internal import statements
274 moved to appropriate sub-packages. All internal import statements
265 have been updated and tests have been added. The build system (setup.py
275 have been updated and tests have been added. The build system (setup.py
266 and friends) have been updated. See :ref:`this section <module_reorg>` of the
276 and friends) have been updated. See :ref:`this section <module_reorg>` of the
267 documentation for descriptions of these new sub-packages.
277 documentation for descriptions of these new sub-packages.
268
278
269 * :mod:`IPython.ipapi` has been moved to :mod:`IPython.core.ipapi`.
279 * :mod:`IPython.ipapi` has been moved to :mod:`IPython.core.ipapi`.
270 :mod:`IPython.Shell` and :mod:`IPython.iplib` have been split and removed as
280 :mod:`IPython.Shell` and :mod:`IPython.iplib` have been split and removed as
271 part of the refactor.
281 part of the refactor.
272
282
273 * :mod:`Extensions` has been moved to :mod:`extensions` and all existing
283 * :mod:`Extensions` has been moved to :mod:`extensions` and all existing
274 extensions have been moved to either :mod:`IPython.quarantine` or
284 extensions have been moved to either :mod:`IPython.quarantine` or
275 :mod:`IPython.deathrow`. :mod:`IPython.quarantine` contains modules that we
285 :mod:`IPython.deathrow`. :mod:`IPython.quarantine` contains modules that we
276 plan on keeping but that need to be updated. :mod:`IPython.deathrow`
286 plan on keeping but that need to be updated. :mod:`IPython.deathrow`
277 contains modules that are either dead or that should be maintained as third
287 contains modules that are either dead or that should be maintained as third
278 party libraries. More details about this can be found :ref:`here
288 party libraries. More details about this can be found :ref:`here
279 <module_reorg>`.
289 <module_reorg>`.
280
290
281 * Previous IPython GUIs in :mod:`IPython.frontend` and :mod:`IPython.gui` are
291 * Previous IPython GUIs in :mod:`IPython.frontend` and :mod:`IPython.gui` are
282 likely broken, and have been removed to :mod:`IPython.deathrow` because of the
292 likely broken, and have been removed to :mod:`IPython.deathrow` because of the
283 refactoring in the core. With proper updates, these should still work.
293 refactoring in the core. With proper updates, these should still work.
284
294
285
295
286 Known Regressions
296 Known Regressions
287 -----------------
297 -----------------
288
298
289 We do our best to improve IPython, but there are some known regressions in 0.11 relative
299 We do our best to improve IPython, but there are some known regressions in 0.11 relative
290 to 0.10.2.
300 to 0.10.2.
291
301
292 * The machinery that adds functionality to the 'sh' profile for using IPython as your
302 * The machinery that adds functionality to the 'sh' profile for using IPython as your
293 system shell has not been updated to use the new APIs. As a result, only the aesthetic
303 system shell has not been updated to use the new APIs. As a result, only the aesthetic
294 (prompt) changes are still implemented. We intend to fix this by 0.12.
304 (prompt) changes are still implemented. We intend to fix this by 0.12.
295
305
296 * The installation of scripts on Windows was broken without setuptools, so we now
306 * The installation of scripts on Windows was broken without setuptools, so we now
297 depend on setuptools on Windows. We hope to fix setuptools-less installation,
307 depend on setuptools on Windows. We hope to fix setuptools-less installation,
298 and then remove the setuptools dependency.
308 and then remove the setuptools dependency.
General Comments 0
You need to be logged in to leave comments. Login now