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