##// END OF EJS Templates
update whatsnew with some 0.11 developments
MinRK -
Show More
@@ -17,8 +17,8 b' 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.HasTraitlets`.
19 * :class:`IPython.utils.traitlets.HasTraitlets`.
20 * :class:`IPython.core.component.Component`.
20 * :class:`IPython.config.configurable.Configurable`.
21 * :class:`IPython.core.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
@@ -27,6 +27,15 b' 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
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
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
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
37 never take arguments.
38
30 ZMQ architecture
39 ZMQ architecture
31 ----------------
40 ----------------
32
41
@@ -43,6 +52,25 b' new :mod:`IPython.parallel` module.'
43 New features
52 New features
44 ------------
53 ------------
45
54
55 * Added ``Bytes`` traitlet, removing ``Str``. All 'string' traitlets should
56 either be ``Unicode`` if a real string, or ``Bytes`` if a C-string. This
57 removes ambiguity and helps the Python 3 transition.
58
59 * New magic ``%loadpy`` loads a python file from disk or web URL into
60 the current input buffer.
61
62 * New magic ``%pastebin`` for sharing code via the 'Lodge it' pastebin.
63
64 * New magic ``%precision`` for controlling float and numpy pretty printing.
65
66 * IPython applications initiate logging, so any object can gain access to
67 a the logger of the currently running Application with:
68
69 .. sourcecode:: python
70
71 from IPython.config.application import Application
72 logger = Application.instance().log
73
46 * You can now get help on an object halfway through typing a command. For
74 * You can now get help on an object halfway through typing a command. For
47 instance, typing ``a = zip?`` shows the details of :func:`zip`. It also
75 instance, typing ``a = zip?`` shows the details of :func:`zip`. It also
48 leaves the command at the next prompt so you can carry on with it.
76 leaves the command at the next prompt so you can carry on with it.
@@ -59,13 +87,13 b' New features'
59 * The configuration system and configuration files are brand new. See the
87 * The configuration system and configuration files are brand new. See the
60 configuration system :ref:`documentation <config_index>` for more details.
88 configuration system :ref:`documentation <config_index>` for more details.
61
89
62 * The :class:`~IPython.core.iplib.InteractiveShell` class is now a
90 * The :class:`~IPython.core.interactiveshell.InteractiveShell` class is now a
63 :class:`~IPython.core.component.Component` subclass and has traitlets that
91 :class:`~IPython.config.configurable.Configurable` subclass and has traitlets that
64 determine the defaults and runtime environment. The ``__init__`` method has
92 determine the defaults and runtime environment. The ``__init__`` method has
65 also been refactored so this class can be instantiated and run without the
93 also been refactored so this class can be instantiated and run without the
66 old :mod:`ipmaker` module.
94 old :mod:`ipmaker` module.
67
95
68 * The methods of :class:`~IPython.core.iplib.InteractiveShell` have
96 * The methods of :class:`~IPython.core.interactiveshell.InteractiveShell` have
69 been organized into sections to make it easier to turn more sections
97 been organized into sections to make it easier to turn more sections
70 of functionality into components.
98 of functionality into components.
71
99
@@ -74,7 +102,7 b' New features'
74 embedding logic has been taken out of the base class and put into the
102 embedding logic has been taken out of the base class and put into the
75 embedded subclass.
103 embedded subclass.
76
104
77 * I have created methods of :class:`~IPython.core.iplib.InteractiveShell` to
105 * Added methods of :class:`~IPython.core.interactiveshell.InteractiveShell` to
78 help it cleanup after itself. The :meth:`cleanup` method controls this. We
106 help it cleanup after itself. The :meth:`cleanup` method controls this. We
79 couldn't do this in :meth:`__del__` because we have cycles in our object
107 couldn't do this in :meth:`__del__` because we have cycles in our object
80 graph that prevent it from being called.
108 graph that prevent it from being called.
@@ -83,7 +111,7 b' New features'
83 strings like ``foo.bar.Bar`` to the actual class.
111 strings like ``foo.bar.Bar`` to the actual class.
84
112
85 * Completely refactored the :mod:`IPython.core.prefilter` module into
113 * Completely refactored the :mod:`IPython.core.prefilter` module into
86 :class:`~IPython.core.component.Component` subclasses. Added a new layer
114 :class:`~IPython.config.configurable.Configurable` subclasses. Added a new layer
87 into the prefilter system, called "transformations" that all new prefilter
115 into the prefilter system, called "transformations" that all new prefilter
88 logic should use (rather than the older "checker/handler" approach).
116 logic should use (rather than the older "checker/handler" approach).
89
117
@@ -93,19 +121,19 b' New features'
93 :mod:`~IPython.external.argparse` to parse command line options for
121 :mod:`~IPython.external.argparse` to parse command line options for
94 :command:`ipython`.
122 :command:`ipython`.
95
123
96 * New top level :func:`~IPython.frontend.terminal.embed.embed` function that can be called
124 * New top level :func:`~IPython.frontend.terminal.embed.embed` function that can
97 to embed IPython at any place in user's code. One the first call it will
125 be called to embed IPython at any place in user's code. One the first call it
98 create an :class:`~IPython.frontend.terminal.embed.InteractiveShellEmbed` instance and
126 will create an :class:`~IPython.frontend.terminal.embed.InteractiveShellEmbed`
99 call it. In later calls, it just calls the previously created
127 instance and call it. In later calls, it just calls the previously created
100 :class:`~IPython.frontend.terminal.embed.InteractiveShellEmbed`.
128 :class:`~IPython.frontend.terminal.embed.InteractiveShellEmbed`.
101
129
102 * Created a component system (:mod:`IPython.core.component`) that is based on
130 * Created a configuration system (:mod:`IPython.config.configurable`) that is
103 :mod:`IPython.utils.traitlets`. Components are arranged into a runtime
131 based on :mod:`IPython.utils.traitlets`. Configurables are arranged into a
104 containment tree (not inheritance) that i) automatically propagates
132 runtime containment tree (not inheritance) that i) automatically propagates
105 configuration information and ii) allows components to discover each other
133 configuration information and ii) allows singletons to discover each other in
106 in a loosely coupled manner. In the future all parts of IPython will be
134 a loosely coupled manner. In the future all parts of IPython will be
107 subclasses of :class:`~IPython.core.component.Component`. All IPython
135 subclasses of :class:`~IPython.config.configurable.Configurable`. All IPython
108 developers should become familiar with the component system.
136 developers should become familiar with the config system.
109
137
110 * Created a new :class:`~IPython.config.loader.Config` for holding
138 * Created a new :class:`~IPython.config.loader.Config` for holding
111 configuration information. This is a dict like class with a few extras: i)
139 configuration information. This is a dict like class with a few extras: i)
@@ -122,11 +150,13 b' New features'
122
150
123 * Created a top-level :class:`Application` class in
151 * Created a top-level :class:`Application` class in
124 :mod:`IPython.core.application` that is designed to encapsulate the starting
152 :mod:`IPython.core.application` that is designed to encapsulate the starting
125 of any IPython process. An application loads and merges all the
153 of any basic Python program. An application loads and merges all the
126 configuration objects, constructs the main application :class:`Component`
154 configuration objects, constructs the main application, configures and
127 instances and then starts the application running. The default
155 initiates logging, and creates and configures any :class:`Configurable`
128 :class:`Application` class has built-in logic for handling the IPython
156 instances and then starts the application running. An extended
129 directory as well as profiles.
157 :class:`BaseIPythonApplication` class adds logic for handling the
158 IPython directory as well as profiles, and all IPython entry points
159 extend it.
130
160
131 * The :class:`Type` and :class:`Instance` traitlets now handle classes given
161 * The :class:`Type` and :class:`Instance` traitlets now handle classes given
132 as strings, like ``foo.bar.Bar``. This is needed for forward declarations.
162 as strings, like ``foo.bar.Bar``. This is needed for forward declarations.
@@ -152,10 +182,6 b' New features'
152 :command:`%gui` magic command. Type ``%gui?`` at an IPython prompt for
182 :command:`%gui` magic command. Type ``%gui?`` at an IPython prompt for
153 documentation.
183 documentation.
154
184
155 * The command line options ``-wthread``, ``-qthread`` and
156 ``-gthread`` just call the appropriate :mod:`IPython.lib.inputhook`
157 functions.
158
159 * For developers :mod:`IPython.lib.inputhook` provides a simple interface
185 * For developers :mod:`IPython.lib.inputhook` provides a simple interface
160 for managing the event loops in their interactive GUI applications.
186 for managing the event loops in their interactive GUI applications.
161 Examples can be found in our :file:`docs/examples/lib` directory.
187 Examples can be found in our :file:`docs/examples/lib` directory.
@@ -163,30 +189,48 b' New features'
163 Backwards incompatible changes
189 Backwards incompatible changes
164 ------------------------------
190 ------------------------------
165
191
192 * The Twisted-based :mod:`IPython.kernel` has been removed, and completely
193 rewritten as :mod:`IPython.parallel`, using ZeroMQ.
194
195 * 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
197 own IPython history, log files, and everything. To create a new profile, do
198 ``ipython profile create <name>``.
199
200 * All IPython applications have been rewritten to use
201 :class:`~IPython.config.loader.KeyValueConfigLoader`. This means that
202 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.
204
205 * The command line options ``-wthread``, ``-qthread`` and
206 ``-gthread`` have been removed. Use ``gui=wx``, ``gui=qt``, ``gui=gtk``
207 instead.
208
166 * The extension loading functions have been renamed to
209 * The extension loading functions have been renamed to
167 :func:`load_ipython_extension` and :func:`unload_ipython_extension`.
210 :func:`load_ipython_extension` and :func:`unload_ipython_extension`.
168
211
169 * :class:`~IPython.core.iplib.InteractiveShell` no longer takes an
212 * :class:`~IPython.core.interactiveshell.InteractiveShell` no longer takes an
170 ``embedded`` argument. Instead just use the
213 ``embedded`` argument. Instead just use the
171 :class:`~IPython.core.iplib.InteractiveShellEmbed` class.
214 :class:`~IPython.core.interactiveshell.InteractiveShellEmbed` class.
172
215
173 * ``__IPYTHON__`` is no longer injected into ``__builtin__``.
216 * ``__IPYTHON__`` is no longer injected into ``__builtin__``.
174
217
175 * :meth:`Struct.__init__` no longer takes `None` as its first argument. It
218 * :meth:`Struct.__init__` no longer takes `None` as its first argument. It
176 must be a :class:`dict` or :class:`Struct`.
219 must be a :class:`dict` or :class:`Struct`.
177
220
178 * :meth:`~IPython.core.iplib.InteractiveShell.ipmagic` has been renamed
221 * :meth:`~IPython.core.interactiveshell.InteractiveShell.ipmagic` has been
179 :meth:`~IPython.core.iplib.InteractiveShell.magic.`
222 renamed :meth:`~IPython.core.interactiveshell.InteractiveShell.magic.`
180
223
181 * The functions :func:`ipmagic` and :func:`ipalias` have been removed from
224 * The functions :func:`ipmagic` and :func:`ipalias` have been removed from
182 :mod:`__builtins__`.
225 :mod:`__builtins__`.
183
226
184 * The references to the global :class:`~IPython.core.iplib.InteractiveShell`
227 * The references to the global
185 instance (``_ip``, and ``__IP``) have been removed from the user's
228 :class:`~IPython.core.interactivehell.InteractiveShell` instance (``_ip``, and
186 namespace. They are replaced by a new function called :func:`get_ipython`
229 ``__IP``) have been removed from the user's namespace. They are replaced by a
187 that returns the current :class:`~IPython.core.iplib.InteractiveShell`
230 new function called :func:`get_ipython` that returns the current
188 instance. This function is injected into the user's namespace and is now the
231 :class:`~IPython.core.interactiveshell.InteractiveShell` instance. This
189 main way of accessing IPython's API.
232 function is injected into the user's namespace and is now the main way of
233 accessing the running IPython.
190
234
191 * Old style configuration files :file:`ipythonrc` and :file:`ipy_user_conf.py`
235 * Old style configuration files :file:`ipythonrc` and :file:`ipy_user_conf.py`
192 are no longer supported. Users should migrate there configuration files to
236 are no longer supported. Users should migrate there configuration files to
@@ -197,7 +241,7 b' Backwards incompatible changes'
197 completely removed. The new extension API is described :ref:`here
241 completely removed. The new extension API is described :ref:`here
198 <configuring_ipython>`.
242 <configuring_ipython>`.
199
243
200 * Support for ``qt3`` has been dropped. User's who need this should use
244 * Support for ``qt3`` has been dropped. Users who need this should use
201 previous versions of IPython.
245 previous versions of IPython.
202
246
203 * Removed :mod:`shellglobals` as it was obsolete.
247 * Removed :mod:`shellglobals` as it was obsolete.
@@ -206,10 +250,6 b' Backwards incompatible changes'
206 longer needed because of the new capabilities in
250 longer needed because of the new capabilities in
207 :mod:`IPython.lib.inputhook`.
251 :mod:`IPython.lib.inputhook`.
208
252
209 * The ``-pylab`` command line flag has been disabled until matplotlib adds
210 support for the new :mod:`IPython.lib.inputhook` approach. The new stuff
211 does work with matplotlib, but you have to set everything up by hand.
212
213 * New top-level sub-packages have been created: :mod:`IPython.core`,
253 * New top-level sub-packages have been created: :mod:`IPython.core`,
214 :mod:`IPython.lib`, :mod:`IPython.utils`, :mod:`IPython.deathrow`,
254 :mod:`IPython.lib`, :mod:`IPython.utils`, :mod:`IPython.deathrow`,
215 :mod:`IPython.quarantine`. All existing top-level modules have been
255 :mod:`IPython.quarantine`. All existing top-level modules have been
@@ -218,9 +258,9 b' Backwards incompatible changes'
218 and friends) have been updated. See :ref:`this section <module_reorg>` of the
258 and friends) have been updated. See :ref:`this section <module_reorg>` of the
219 documentation for descriptions of these new sub-packages.
259 documentation for descriptions of these new sub-packages.
220
260
221 * Compatability modules have been created for :mod:`IPython.Shell`,
261 * :mod:`IPython.ipapi` has been moved to :mod:`IPython.core.ipapi`.
222 :mod:`IPython.ipapi` and :mod:`IPython.iplib` that display warnings
262 :mod:`IPython.Shell` and :mod:`IPython.iplib` have been split and removed as
223 and then load the actual implementation from :mod:`IPython.core`.
263 part of the refactor.
224
264
225 * :mod:`Extensions` has been moved to :mod:`extensions` and all existing
265 * :mod:`Extensions` has been moved to :mod:`extensions` and all existing
226 extensions have been moved to either :mod:`IPython.quarantine` or
266 extensions have been moved to either :mod:`IPython.quarantine` or
@@ -230,10 +270,8 b' Backwards incompatible changes'
230 party libraries. More details about this can be found :ref:`here
270 party libraries. More details about this can be found :ref:`here
231 <module_reorg>`.
271 <module_reorg>`.
232
272
233 * The IPython GUIs in :mod:`IPython.frontend` and :mod:`IPython.gui` are likely
273 * Previous IPython GUIs in :mod:`IPython.frontend` and :mod:`IPython.gui` are
234 broken because of the refactoring in the core. With proper updates, these
274 likely broken, and have been removed to :mod:`IPython.deathrow` because of the
235 should still work. We probably want to get these so they are not using
275 refactoring in the core. With proper updates, these should still work.
236 :mod:`IPython.kernel.core` (which is being phased out).
237
238
276
239
277
General Comments 0
You need to be logged in to leave comments. Login now