##// END OF EJS Templates
wahtsnew 5.10
Matthias Bussonnier -
Show More
@@ -1,453 +1,461 b''
1 ============
1 ============
2 5.x Series
2 5.x Series
3 ============
3 ============
4
4
5 .. _whatsnew5100
6
7 IPython 5.10.0
8 ==============
9
10 IPython 5.10 pins Pygments dependencies to version lower than ``2.6``, as it is
11 not compatible Python 2. See :ghpull:`12174`
12
5 .. _whatsnew590
13 .. _whatsnew590
6
14
7 IPython 5.9.0
15 IPython 5.9.0
8 =============
16 =============
9
17
10 IPython 5.9 is a release that accumulated fixes for Python 2 over the past 18
18 IPython 5.9 is a release that accumulated fixes for Python 2 over the past 18
11 month. Please see source and version control history for more informations.
19 month. Please see source and version control history for more informations.
12
20
13 .. _whatsnew580
21 .. _whatsnew580
14
22
15 IPython 5.8.0
23 IPython 5.8.0
16 =============
24 =============
17
25
18 * Update inspecting function/methods for future-proofing. :ghpull:`11139`
26 * Update inspecting function/methods for future-proofing. :ghpull:`11139`
19
27
20 .. _whatsnew570:
28 .. _whatsnew570:
21
29
22 IPython 5.7
30 IPython 5.7
23 ===========
31 ===========
24
32
25 * Fix IPython trying to import non-existing matplotlib backends :ghpull:`11087`
33 * Fix IPython trying to import non-existing matplotlib backends :ghpull:`11087`
26 * fix for display hook not publishing object metadata :ghpull:`11101`
34 * fix for display hook not publishing object metadata :ghpull:`11101`
27
35
28 .. _whatsnew560:
36 .. _whatsnew560:
29
37
30 IPython 5.6
38 IPython 5.6
31 ===========
39 ===========
32
40
33 * In Python 3.6 and above, dictionaries preserve the order items were added to
41 * In Python 3.6 and above, dictionaries preserve the order items were added to
34 them. On these versions, IPython will display dictionaries in their native
42 them. On these versions, IPython will display dictionaries in their native
35 order, rather than sorting by the keys (:ghpull:`10958`).
43 order, rather than sorting by the keys (:ghpull:`10958`).
36 * :class:`~.IPython.display.ProgressBar` can now be used as an iterator
44 * :class:`~.IPython.display.ProgressBar` can now be used as an iterator
37 (:ghpull:`10813`).
45 (:ghpull:`10813`).
38 * The shell object gains a :meth:`~.InteractiveShell.check_complete` method,
46 * The shell object gains a :meth:`~.InteractiveShell.check_complete` method,
39 to allow a smoother transition to new input processing machinery planned for
47 to allow a smoother transition to new input processing machinery planned for
40 IPython 7 (:ghpull:`11044`).
48 IPython 7 (:ghpull:`11044`).
41 * IPython should start faster, as it no longer looks for all available pygments
49 * IPython should start faster, as it no longer looks for all available pygments
42 styles on startup (:ghpull:`10859`).
50 styles on startup (:ghpull:`10859`).
43
51
44 You can see all the PR marked for the `5.6. milestone <https://github.com/ipython/ipython/pulls?utf8=%E2%9C%93&q=is%3Apr+milestone%3A5.6+is%3Aclosed+NOT+%22Backport+PR%22+>`_,
52 You can see all the PR marked for the `5.6. milestone <https://github.com/ipython/ipython/pulls?utf8=%E2%9C%93&q=is%3Apr+milestone%3A5.6+is%3Aclosed+NOT+%22Backport+PR%22+>`_,
45 and all the `backport versions <https://github.com/ipython/ipython/pulls?utf8=%E2%9C%93&q=is%3Apr%20milestone%3A5.6%20is%3Aclosed%20%22Backport%20PR%22%20>`__.
53 and all the `backport versions <https://github.com/ipython/ipython/pulls?utf8=%E2%9C%93&q=is%3Apr%20milestone%3A5.6%20is%3Aclosed%20%22Backport%20PR%22%20>`__.
46
54
47 .. _whatsnew550:
55 .. _whatsnew550:
48
56
49 IPython 5.5
57 IPython 5.5
50 ===========
58 ===========
51
59
52 System Wide config
60 System Wide config
53 ------------------
61 ------------------
54
62
55 - IPython now looks for config files in ``{sys.prefix}/etc/ipython``
63 - IPython now looks for config files in ``{sys.prefix}/etc/ipython``
56 for environment-specific configuration.
64 for environment-specific configuration.
57 - Startup files can be found in ``/etc/ipython/startup`` or ``{sys.prefix}/etc/ipython/startup``
65 - Startup files can be found in ``/etc/ipython/startup`` or ``{sys.prefix}/etc/ipython/startup``
58 in addition to the profile directory, for system-wide or env-specific startup files.
66 in addition to the profile directory, for system-wide or env-specific startup files.
59
67
60 See :ghpull:`10644`
68 See :ghpull:`10644`
61
69
62 ProgressBar
70 ProgressBar
63 -----------
71 -----------
64
72
65
73
66 IPython now has built-in support for progressbars::
74 IPython now has built-in support for progressbars::
67
75
68 In[1]: from IPython.display import ProgressBar
76 In[1]: from IPython.display import ProgressBar
69 ... : pb = ProgressBar(100)
77 ... : pb = ProgressBar(100)
70 ... : pb
78 ... : pb
71
79
72 In[2]: pb.progress = 50
80 In[2]: pb.progress = 50
73
81
74 # progress bar in cell 1 updates.
82 # progress bar in cell 1 updates.
75
83
76 See :ghpull:`10755`
84 See :ghpull:`10755`
77
85
78
86
79 Misc
87 Misc
80 ----
88 ----
81
89
82 - Fix ``IPython.core.display:Pretty._repr_pretty_`` had the wrong signature.
90 - Fix ``IPython.core.display:Pretty._repr_pretty_`` had the wrong signature.
83 (:ghpull:`10625`)
91 (:ghpull:`10625`)
84 - :magic:`timeit` now give a correct ``SyntaxError`` if naked ``return`` used.
92 - :magic:`timeit` now give a correct ``SyntaxError`` if naked ``return`` used.
85 (:ghpull:`10637`)
93 (:ghpull:`10637`)
86 - Prepare the ``:ipython:`` directive to be compatible with Sphinx 1.7.
94 - Prepare the ``:ipython:`` directive to be compatible with Sphinx 1.7.
87 (:ghpull:`10668`)
95 (:ghpull:`10668`)
88 - Make IPython work with OpenSSL in FIPS mode; change hash algorithm of input
96 - Make IPython work with OpenSSL in FIPS mode; change hash algorithm of input
89 from md5 to sha1. (:ghpull:`10696`)
97 from md5 to sha1. (:ghpull:`10696`)
90 - Clear breakpoints before running any script with debugger. (:ghpull:`10699`)
98 - Clear breakpoints before running any script with debugger. (:ghpull:`10699`)
91 - Document that :magic:`profile` is deprecated, not to be confused with :magic:`prun`. (:ghpull:`10707`)
99 - Document that :magic:`profile` is deprecated, not to be confused with :magic:`prun`. (:ghpull:`10707`)
92 - Limit default number of returned completions to 500. (:ghpull:`10743`)
100 - Limit default number of returned completions to 500. (:ghpull:`10743`)
93
101
94 You can see all the PR marked for the `5.5. milestone <https://github.com/ipython/ipython/pulls?q=is%3Apr%20milestone%3A5.5%20is%3Aclosed%20NOT%20%22Backport%20PR%22>`_,
102 You can see all the PR marked for the `5.5. milestone <https://github.com/ipython/ipython/pulls?q=is%3Apr%20milestone%3A5.5%20is%3Aclosed%20NOT%20%22Backport%20PR%22>`_,
95 and all the `backport versions <https://github.com/ipython/ipython/pulls?utf8=%E2%9C%93&q=is%3Apr%20milestone%3A5.5%20is%3Aclosed%20%22Backport%20PR%22%20>`_.
103 and all the `backport versions <https://github.com/ipython/ipython/pulls?utf8=%E2%9C%93&q=is%3Apr%20milestone%3A5.5%20is%3Aclosed%20%22Backport%20PR%22%20>`_.
96
104
97 IPython 5.4.1
105 IPython 5.4.1
98 =============
106 =============
99 Released a few hours after 5.4, fix a crash when
107 Released a few hours after 5.4, fix a crash when
100 ``backports.shutil-get-terminal-size`` is not installed. :ghissue:`10629`
108 ``backports.shutil-get-terminal-size`` is not installed. :ghissue:`10629`
101
109
102 .. _whatsnew540:
110 .. _whatsnew540:
103
111
104 IPython 5.4
112 IPython 5.4
105 ===========
113 ===========
106
114
107 IPython 5.4-LTS is the first release of IPython after the release of the 6.x
115 IPython 5.4-LTS is the first release of IPython after the release of the 6.x
108 series which is Python 3 only. It backports most of the new exposed API
116 series which is Python 3 only. It backports most of the new exposed API
109 additions made in IPython 6.0 and 6.1 and avoid having to write conditional
117 additions made in IPython 6.0 and 6.1 and avoid having to write conditional
110 logics depending of the version of IPython.
118 logics depending of the version of IPython.
111
119
112 Please upgrade to pip 9 or greater before upgrading IPython.
120 Please upgrade to pip 9 or greater before upgrading IPython.
113 Failing to do so on Python 2 may lead to a broken IPython install.
121 Failing to do so on Python 2 may lead to a broken IPython install.
114
122
115 Configurable TerminalInteractiveShell
123 Configurable TerminalInteractiveShell
116 -------------------------------------
124 -------------------------------------
117
125
118 Backported from the 6.x branch as an exceptional new feature. See
126 Backported from the 6.x branch as an exceptional new feature. See
119 :ghpull:`10373` and :ghissue:`10364`
127 :ghpull:`10373` and :ghissue:`10364`
120
128
121 IPython gained a new ``c.TerminalIPythonApp.interactive_shell_class`` option
129 IPython gained a new ``c.TerminalIPythonApp.interactive_shell_class`` option
122 that allow to customize the class used to start the terminal frontend. This
130 that allow to customize the class used to start the terminal frontend. This
123 should allow user to use custom interfaces, like reviving the former readline
131 should allow user to use custom interfaces, like reviving the former readline
124 interface which is now a separate package not maintained by the core team.
132 interface which is now a separate package not maintained by the core team.
125
133
126 Define ``_repr_mimebundle_``
134 Define ``_repr_mimebundle_``
127 ----------------------------
135 ----------------------------
128
136
129 Object can now define `_repr_mimebundle_` in place of multiple `_repr_*_`
137 Object can now define `_repr_mimebundle_` in place of multiple `_repr_*_`
130 methods and return a full mimebundle. This greatly simplify many implementation
138 methods and return a full mimebundle. This greatly simplify many implementation
131 and allow to publish custom mimetypes (like geojson, plotly, dataframes....).
139 and allow to publish custom mimetypes (like geojson, plotly, dataframes....).
132 See the ``Cutom Display Logic`` example notebook for more informations.
140 See the ``Cutom Display Logic`` example notebook for more informations.
133
141
134 Execution Heuristics
142 Execution Heuristics
135 --------------------
143 --------------------
136
144
137 The heuristic for execution in the command line interface is now more biased
145 The heuristic for execution in the command line interface is now more biased
138 toward executing for single statement. While in IPython 4.x and before a single
146 toward executing for single statement. While in IPython 4.x and before a single
139 line would be executed when enter is pressed, IPython 5.x would insert a new
147 line would be executed when enter is pressed, IPython 5.x would insert a new
140 line. For single line statement this is not true anymore and if a single line is
148 line. For single line statement this is not true anymore and if a single line is
141 valid Python, IPython will execute it regardless of the cursor position. Use
149 valid Python, IPython will execute it regardless of the cursor position. Use
142 :kbd:`Ctrl-O` to insert a new line. :ghpull:`10489`
150 :kbd:`Ctrl-O` to insert a new line. :ghpull:`10489`
143
151
144
152
145 Implement Display IDs
153 Implement Display IDs
146 ---------------------
154 ---------------------
147
155
148 Implement display id and ability to update a given display. This should greatly
156 Implement display id and ability to update a given display. This should greatly
149 simplify a lot of code by removing the need for widgets and allow other frontend
157 simplify a lot of code by removing the need for widgets and allow other frontend
150 to implement things like progress-bars. See :ghpull:`10048`
158 to implement things like progress-bars. See :ghpull:`10048`
151
159
152 Display function
160 Display function
153 ----------------
161 ----------------
154
162
155 The :func:`display() <IPython.display.display>` function is now available by
163 The :func:`display() <IPython.display.display>` function is now available by
156 default in an IPython session, meaning users can call it on any object to see
164 default in an IPython session, meaning users can call it on any object to see
157 their rich representation. This should allow for better interactivity both at
165 their rich representation. This should allow for better interactivity both at
158 the REPL and in notebook environment.
166 the REPL and in notebook environment.
159
167
160 Scripts and library that rely on display and may be run outside of IPython still
168 Scripts and library that rely on display and may be run outside of IPython still
161 need to import the display function using ``from IPython.display import
169 need to import the display function using ``from IPython.display import
162 display``. See :ghpull:`10596`
170 display``. See :ghpull:`10596`
163
171
164
172
165 Miscs
173 Miscs
166 -----
174 -----
167
175
168 * ``_mp_main_`` is not reloaded which fixes issues with multiprocessing.
176 * ``_mp_main_`` is not reloaded which fixes issues with multiprocessing.
169 :ghpull:`10523`
177 :ghpull:`10523`
170 * Use user colorscheme in Pdb as well :ghpull:`10479`
178 * Use user colorscheme in Pdb as well :ghpull:`10479`
171 * Faster shutdown. :ghpull:`10408`
179 * Faster shutdown. :ghpull:`10408`
172 * Fix a crash in reverse search. :ghpull:`10371`
180 * Fix a crash in reverse search. :ghpull:`10371`
173 * added ``Completer.backslash_combining_completions`` boolean option to
181 * added ``Completer.backslash_combining_completions`` boolean option to
174 deactivate backslash-tab completion that may conflict with windows path.
182 deactivate backslash-tab completion that may conflict with windows path.
175
183
176 IPython 5.3
184 IPython 5.3
177 ===========
185 ===========
178
186
179 Released on February 24th, 2017. Remarkable changes and fixes:
187 Released on February 24th, 2017. Remarkable changes and fixes:
180
188
181 * Fix a bug in ``set_next_input`` leading to a crash of terminal IPython.
189 * Fix a bug in ``set_next_input`` leading to a crash of terminal IPython.
182 :ghpull:`10231`, :ghissue:`10296`, :ghissue:`10229`
190 :ghpull:`10231`, :ghissue:`10296`, :ghissue:`10229`
183 * Always wait for editor inputhook for terminal IPython :ghpull:`10239`,
191 * Always wait for editor inputhook for terminal IPython :ghpull:`10239`,
184 :ghpull:`10240`
192 :ghpull:`10240`
185 * Disable ``_ipython_display_`` in terminal :ghpull:`10249`, :ghpull:`10274`
193 * Disable ``_ipython_display_`` in terminal :ghpull:`10249`, :ghpull:`10274`
186 * Update terminal colors to be more visible by default on windows
194 * Update terminal colors to be more visible by default on windows
187 :ghpull:`10260`, :ghpull:`10238`, :ghissue:`10281`
195 :ghpull:`10260`, :ghpull:`10238`, :ghissue:`10281`
188 * Add Ctrl-Z shortcut (suspend) in terminal debugger :ghpull:`10254`,
196 * Add Ctrl-Z shortcut (suspend) in terminal debugger :ghpull:`10254`,
189 :ghissue:`10273`
197 :ghissue:`10273`
190 * Indent on new line by looking at the text before the cursor :ghpull:`10264`,
198 * Indent on new line by looking at the text before the cursor :ghpull:`10264`,
191 :ghpull:`10275`, :ghissue:`9283`
199 :ghpull:`10275`, :ghissue:`9283`
192 * Update QtEventloop integration to fix some matplotlib integration issues
200 * Update QtEventloop integration to fix some matplotlib integration issues
193 :ghpull:`10201`, :ghpull:`10311`, :ghissue:`10201`
201 :ghpull:`10201`, :ghpull:`10311`, :ghissue:`10201`
194 * Respect completions display style in terminal debugger :ghpull:`10305`,
202 * Respect completions display style in terminal debugger :ghpull:`10305`,
195 :ghpull:`10313`
203 :ghpull:`10313`
196 * Add a config option ``TerminalInteractiveShell.extra_open_editor_shortcuts``
204 * Add a config option ``TerminalInteractiveShell.extra_open_editor_shortcuts``
197 to enable extra shortcuts to open the input in an editor. These are :kbd:`v`
205 to enable extra shortcuts to open the input in an editor. These are :kbd:`v`
198 in vi mode, and :kbd:`C-X C-E` in emacs mode (:ghpull:`10330`).
206 in vi mode, and :kbd:`C-X C-E` in emacs mode (:ghpull:`10330`).
199 The :kbd:`F2` shortcut is always enabled.
207 The :kbd:`F2` shortcut is always enabled.
200
208
201 IPython 5.2.2
209 IPython 5.2.2
202 =============
210 =============
203
211
204 * Fix error when starting with ``IPCompleter.limit_to__all__`` configured.
212 * Fix error when starting with ``IPCompleter.limit_to__all__`` configured.
205
213
206 IPython 5.2.1
214 IPython 5.2.1
207 =============
215 =============
208
216
209 * Fix tab completion in the debugger. :ghpull:`10223`
217 * Fix tab completion in the debugger. :ghpull:`10223`
210
218
211 IPython 5.2
219 IPython 5.2
212 ===========
220 ===========
213
221
214 Released on January 29th, 2017. Remarkable changes and fixes:
222 Released on January 29th, 2017. Remarkable changes and fixes:
215
223
216 * restore IPython's debugger to raise on quit. :ghpull:`10009`
224 * restore IPython's debugger to raise on quit. :ghpull:`10009`
217 * The configuration value ``c.TerminalInteractiveShell.highlighting_style`` can
225 * The configuration value ``c.TerminalInteractiveShell.highlighting_style`` can
218 now directly take a class argument for custom color style. :ghpull:`9848`
226 now directly take a class argument for custom color style. :ghpull:`9848`
219 * Correctly handle matplotlib figures dpi :ghpull:`9868`
227 * Correctly handle matplotlib figures dpi :ghpull:`9868`
220 * Deprecate ``-e`` flag for the ``%notebook`` magic that had no effects.
228 * Deprecate ``-e`` flag for the ``%notebook`` magic that had no effects.
221 :ghpull:`9872`
229 :ghpull:`9872`
222 * You can now press F2 while typing at a terminal prompt to edit the contents
230 * You can now press F2 while typing at a terminal prompt to edit the contents
223 in your favourite terminal editor. Set the :envvar:`EDITOR` environment
231 in your favourite terminal editor. Set the :envvar:`EDITOR` environment
224 variable to pick which editor is used. :ghpull:`9929`
232 variable to pick which editor is used. :ghpull:`9929`
225 * sdists will now only be ``.tar.gz`` as per upstream PyPI requirements.
233 * sdists will now only be ``.tar.gz`` as per upstream PyPI requirements.
226 :ghpull:`9925`
234 :ghpull:`9925`
227 * :any:`IPython.core.debugger` have gained a ``set_trace()`` method for
235 * :any:`IPython.core.debugger` have gained a ``set_trace()`` method for
228 convenience. :ghpull:`9947`
236 convenience. :ghpull:`9947`
229 * The 'smart command mode' added to the debugger in 5.0 was removed, as more
237 * The 'smart command mode' added to the debugger in 5.0 was removed, as more
230 people preferred the previous behaviour. Therefore, debugger commands such as
238 people preferred the previous behaviour. Therefore, debugger commands such as
231 ``c`` will act as debugger commands even when ``c`` is defined as a variable.
239 ``c`` will act as debugger commands even when ``c`` is defined as a variable.
232 :ghpull:`10050`
240 :ghpull:`10050`
233 * Fixes OS X event loop issues at startup, :ghpull:`10150`
241 * Fixes OS X event loop issues at startup, :ghpull:`10150`
234 * Deprecate the ``%autoindent`` magic. :ghpull:`10176`
242 * Deprecate the ``%autoindent`` magic. :ghpull:`10176`
235 * Emit a :any:`DeprecationWarning` when setting the deprecated
243 * Emit a :any:`DeprecationWarning` when setting the deprecated
236 ``limit_to_all`` option of the completer. :ghpull:`10198`
244 ``limit_to_all`` option of the completer. :ghpull:`10198`
237 * The :cellmagic:`capture` magic can now capture the result of a cell (from an
245 * The :cellmagic:`capture` magic can now capture the result of a cell (from an
238 expression on the last line), as well as printed and displayed output.
246 expression on the last line), as well as printed and displayed output.
239 :ghpull:`9851`.
247 :ghpull:`9851`.
240
248
241
249
242 Changes of behavior to :any:`InteractiveShellEmbed`.
250 Changes of behavior to :any:`InteractiveShellEmbed`.
243
251
244 :any:`InteractiveShellEmbed` interactive behavior have changed a bit in between
252 :any:`InteractiveShellEmbed` interactive behavior have changed a bit in between
245 5.1 and 5.2. By default ``%kill_embedded`` magic will prevent further invocation
253 5.1 and 5.2. By default ``%kill_embedded`` magic will prevent further invocation
246 of the current ``call location`` instead of preventing further invocation of
254 of the current ``call location`` instead of preventing further invocation of
247 the current instance creation location. For most use case this will not change
255 the current instance creation location. For most use case this will not change
248 much for you, though previous behavior was confusing and less consistent with
256 much for you, though previous behavior was confusing and less consistent with
249 previous IPython versions.
257 previous IPython versions.
250
258
251 You can now deactivate instances by using ``%kill_embedded --instance`` flag,
259 You can now deactivate instances by using ``%kill_embedded --instance`` flag,
252 (or ``-i`` in short). The ``%kill_embedded`` magic also gained a
260 (or ``-i`` in short). The ``%kill_embedded`` magic also gained a
253 ``--yes``/``-y`` option which skip confirmation step, and ``-x``/``--exit``
261 ``--yes``/``-y`` option which skip confirmation step, and ``-x``/``--exit``
254 which also exit the current embedded call without asking for confirmation.
262 which also exit the current embedded call without asking for confirmation.
255
263
256 See :ghpull:`10207`.
264 See :ghpull:`10207`.
257
265
258
266
259
267
260 IPython 5.1
268 IPython 5.1
261 ===========
269 ===========
262
270
263 * Broken ``%timeit`` on Python2 due to the use of ``__qualname__``. :ghpull:`9804`
271 * Broken ``%timeit`` on Python2 due to the use of ``__qualname__``. :ghpull:`9804`
264 * Restore ``%gui qt`` to create and return a ``QApplication`` if necessary. :ghpull:`9789`
272 * Restore ``%gui qt`` to create and return a ``QApplication`` if necessary. :ghpull:`9789`
265 * Don't set terminal title by default. :ghpull:`9801`
273 * Don't set terminal title by default. :ghpull:`9801`
266 * Preserve indentation when inserting newlines with ``Ctrl-O``. :ghpull:`9770`
274 * Preserve indentation when inserting newlines with ``Ctrl-O``. :ghpull:`9770`
267 * Restore completion in debugger. :ghpull:`9785`
275 * Restore completion in debugger. :ghpull:`9785`
268 * Deprecate ``IPython.core.debugger.Tracer()`` in favor of simpler, newer, APIs. :ghpull:`9731`
276 * Deprecate ``IPython.core.debugger.Tracer()`` in favor of simpler, newer, APIs. :ghpull:`9731`
269 * Restore ``NoOpContext`` context manager removed by mistake, and add `DeprecationWarning`. :ghpull:`9765`
277 * Restore ``NoOpContext`` context manager removed by mistake, and add `DeprecationWarning`. :ghpull:`9765`
270 * Add option allowing ``Prompt_toolkit`` to use 24bits colors. :ghpull:`9736`
278 * Add option allowing ``Prompt_toolkit`` to use 24bits colors. :ghpull:`9736`
271 * Fix for closing interactive matplotlib windows on OS X. :ghpull:`9854`
279 * Fix for closing interactive matplotlib windows on OS X. :ghpull:`9854`
272 * An embedded interactive shell instance can be used more than once. :ghpull:`9843`
280 * An embedded interactive shell instance can be used more than once. :ghpull:`9843`
273 * More robust check for whether IPython is in a terminal. :ghpull:`9833`
281 * More robust check for whether IPython is in a terminal. :ghpull:`9833`
274 * Better pretty-printing of dicts on PyPy. :ghpull:`9827`
282 * Better pretty-printing of dicts on PyPy. :ghpull:`9827`
275 * Some coloured output now looks better on dark background command prompts in Windows.
283 * Some coloured output now looks better on dark background command prompts in Windows.
276 :ghpull:`9838`
284 :ghpull:`9838`
277 * Improved tab completion of paths on Windows . :ghpull:`9826`
285 * Improved tab completion of paths on Windows . :ghpull:`9826`
278 * Fix tkinter event loop integration on Python 2 with ``future`` installed. :ghpull:`9824`
286 * Fix tkinter event loop integration on Python 2 with ``future`` installed. :ghpull:`9824`
279 * Restore ``Ctrl-\`` as a shortcut to quit IPython.
287 * Restore ``Ctrl-\`` as a shortcut to quit IPython.
280 * Make ``get_ipython()`` accessible when modules are imported by startup files. :ghpull:`9818`
288 * Make ``get_ipython()`` accessible when modules are imported by startup files. :ghpull:`9818`
281 * Add support for running directories containing a ``__main__.py`` file with the
289 * Add support for running directories containing a ``__main__.py`` file with the
282 ``ipython`` command. :ghpull:`9813`
290 ``ipython`` command. :ghpull:`9813`
283
291
284
292
285 True Color feature
293 True Color feature
286 ------------------
294 ------------------
287
295
288 ``prompt_toolkit`` uses pygments styles for syntax highlighting. By default, the
296 ``prompt_toolkit`` uses pygments styles for syntax highlighting. By default, the
289 colors specified in the style are approximated using a standard 256-color
297 colors specified in the style are approximated using a standard 256-color
290 palette. ``prompt_toolkit`` also supports 24bit, a.k.a. "true", a.k.a. 16-million
298 palette. ``prompt_toolkit`` also supports 24bit, a.k.a. "true", a.k.a. 16-million
291 color escape sequences which enable compatible terminals to display the exact
299 color escape sequences which enable compatible terminals to display the exact
292 colors specified instead of an approximation. This true_color option exposes
300 colors specified instead of an approximation. This true_color option exposes
293 that capability in prompt_toolkit to the IPython shell.
301 that capability in prompt_toolkit to the IPython shell.
294
302
295 Here is a good source for the current state of true color support in various
303 Here is a good source for the current state of true color support in various
296 terminal emulators and software projects: https://gist.github.com/XVilka/8346728
304 terminal emulators and software projects: https://gist.github.com/XVilka/8346728
297
305
298
306
299
307
300 IPython 5.0
308 IPython 5.0
301 ===========
309 ===========
302
310
303 Released July 7, 2016
311 Released July 7, 2016
304
312
305 New terminal interface
313 New terminal interface
306 ----------------------
314 ----------------------
307
315
308 IPython 5 features a major upgrade to the terminal interface, bringing live
316 IPython 5 features a major upgrade to the terminal interface, bringing live
309 syntax highlighting as you type, proper multiline editing and multiline paste,
317 syntax highlighting as you type, proper multiline editing and multiline paste,
310 and tab completions that don't clutter up your history.
318 and tab completions that don't clutter up your history.
311
319
312 .. image:: ../_images/ptshell_features.png
320 .. image:: ../_images/ptshell_features.png
313 :alt: New terminal interface features
321 :alt: New terminal interface features
314 :align: center
322 :align: center
315 :target: ../_images/ptshell_features.png
323 :target: ../_images/ptshell_features.png
316
324
317 These features are provided by the Python library `prompt_toolkit
325 These features are provided by the Python library `prompt_toolkit
318 <http://python-prompt-toolkit.readthedocs.io/en/stable/>`__, which replaces
326 <http://python-prompt-toolkit.readthedocs.io/en/stable/>`__, which replaces
319 ``readline`` throughout our terminal interface.
327 ``readline`` throughout our terminal interface.
320
328
321 Relying on this pure-Python, cross platform module also makes it simpler to
329 Relying on this pure-Python, cross platform module also makes it simpler to
322 install IPython. We have removed dependencies on ``pyreadline`` for Windows and
330 install IPython. We have removed dependencies on ``pyreadline`` for Windows and
323 ``gnureadline`` for Mac.
331 ``gnureadline`` for Mac.
324
332
325 Backwards incompatible changes
333 Backwards incompatible changes
326 ------------------------------
334 ------------------------------
327
335
328 - The ``%install_ext`` magic function, deprecated since 4.0, has now been deleted.
336 - The ``%install_ext`` magic function, deprecated since 4.0, has now been deleted.
329 You can distribute and install extensions as packages on PyPI.
337 You can distribute and install extensions as packages on PyPI.
330 - Callbacks registered while an event is being handled will now only be called
338 - Callbacks registered while an event is being handled will now only be called
331 for subsequent events; previously they could be called for the current event.
339 for subsequent events; previously they could be called for the current event.
332 Similarly, callbacks removed while handling an event *will* always get that
340 Similarly, callbacks removed while handling an event *will* always get that
333 event. See :ghissue:`9447` and :ghpull:`9453`.
341 event. See :ghissue:`9447` and :ghpull:`9453`.
334 - Integration with pydb has been removed since pydb development has been stopped
342 - Integration with pydb has been removed since pydb development has been stopped
335 since 2012, and pydb is not installable from PyPI.
343 since 2012, and pydb is not installable from PyPI.
336 - The ``autoedit_syntax`` option has apparently been broken for many years.
344 - The ``autoedit_syntax`` option has apparently been broken for many years.
337 It has been removed.
345 It has been removed.
338
346
339 New terminal interface
347 New terminal interface
340 ~~~~~~~~~~~~~~~~~~~~~~
348 ~~~~~~~~~~~~~~~~~~~~~~
341
349
342 The overhaul of the terminal interface will probably cause a range of minor
350 The overhaul of the terminal interface will probably cause a range of minor
343 issues for existing users.
351 issues for existing users.
344 This is inevitable for such a significant change, and we've done our best to
352 This is inevitable for such a significant change, and we've done our best to
345 minimise these issues.
353 minimise these issues.
346 Some changes that we're aware of, with suggestions on how to handle them:
354 Some changes that we're aware of, with suggestions on how to handle them:
347
355
348 IPython no longer uses readline configuration (``~/.inputrc``). We hope that
356 IPython no longer uses readline configuration (``~/.inputrc``). We hope that
349 the functionality you want (e.g. vi input mode) will be available by configuring
357 the functionality you want (e.g. vi input mode) will be available by configuring
350 IPython directly (see :doc:`/config/options/terminal`).
358 IPython directly (see :doc:`/config/options/terminal`).
351 If something's missing, please file an issue.
359 If something's missing, please file an issue.
352
360
353 The ``PromptManager`` class has been removed, and the prompt machinery simplified.
361 The ``PromptManager`` class has been removed, and the prompt machinery simplified.
354 See :ref:`custom_prompts` to customise prompts with the new machinery.
362 See :ref:`custom_prompts` to customise prompts with the new machinery.
355
363
356 :mod:`IPython.core.debugger` now provides a plainer interface.
364 :mod:`IPython.core.debugger` now provides a plainer interface.
357 :mod:`IPython.terminal.debugger` contains the terminal debugger using
365 :mod:`IPython.terminal.debugger` contains the terminal debugger using
358 prompt_toolkit.
366 prompt_toolkit.
359
367
360 There are new options to configure the colours used in syntax highlighting.
368 There are new options to configure the colours used in syntax highlighting.
361 We have tried to integrate them with our classic ``--colors`` option and
369 We have tried to integrate them with our classic ``--colors`` option and
362 ``%colors`` magic, but there's a mismatch in possibilities, so some configurations
370 ``%colors`` magic, but there's a mismatch in possibilities, so some configurations
363 may produce unexpected results. See :ref:`termcolour` for more information.
371 may produce unexpected results. See :ref:`termcolour` for more information.
364
372
365 The new interface is not compatible with Emacs 'inferior-shell' feature. To
373 The new interface is not compatible with Emacs 'inferior-shell' feature. To
366 continue using this, add the ``--simple-prompt`` flag to the command Emacs
374 continue using this, add the ``--simple-prompt`` flag to the command Emacs
367 runs. This flag disables most IPython features, relying on Emacs to provide
375 runs. This flag disables most IPython features, relying on Emacs to provide
368 things like tab completion.
376 things like tab completion.
369
377
370 Provisional Changes
378 Provisional Changes
371 -------------------
379 -------------------
372
380
373 Provisional changes are experimental functionality that may, or may not, make
381 Provisional changes are experimental functionality that may, or may not, make
374 it into a future version of IPython, and which API may change without warnings.
382 it into a future version of IPython, and which API may change without warnings.
375 Activating these features and using these API are at your own risk, and may have
383 Activating these features and using these API are at your own risk, and may have
376 security implication for your system, especially if used with the Jupyter notebook,
384 security implication for your system, especially if used with the Jupyter notebook,
377
385
378 When running via the Jupyter notebook interfaces, or other compatible client,
386 When running via the Jupyter notebook interfaces, or other compatible client,
379 you can enable rich documentation experimental functionality:
387 you can enable rich documentation experimental functionality:
380
388
381 When the ``docrepr`` package is installed setting the boolean flag
389 When the ``docrepr`` package is installed setting the boolean flag
382 ``InteractiveShell.sphinxify_docstring`` to ``True``, will process the various
390 ``InteractiveShell.sphinxify_docstring`` to ``True``, will process the various
383 object through sphinx before displaying them (see the ``docrepr`` package
391 object through sphinx before displaying them (see the ``docrepr`` package
384 documentation for more information.
392 documentation for more information.
385
393
386 You need to also enable the IPython pager display rich HTML representation
394 You need to also enable the IPython pager display rich HTML representation
387 using the ``InteractiveShell.enable_html_pager`` boolean configuration option.
395 using the ``InteractiveShell.enable_html_pager`` boolean configuration option.
388 As usual you can set these configuration options globally in your configuration
396 As usual you can set these configuration options globally in your configuration
389 files, alternatively you can turn them on dynamically using the following
397 files, alternatively you can turn them on dynamically using the following
390 snippet:
398 snippet:
391
399
392 .. code-block:: python
400 .. code-block:: python
393
401
394 ip = get_ipython()
402 ip = get_ipython()
395 ip.sphinxify_docstring = True
403 ip.sphinxify_docstring = True
396 ip.enable_html_pager = True
404 ip.enable_html_pager = True
397
405
398
406
399 You can test the effect of various combinations of the above configuration in
407 You can test the effect of various combinations of the above configuration in
400 the Jupyter notebook, with things example like :
408 the Jupyter notebook, with things example like :
401
409
402 .. code-block:: ipython
410 .. code-block:: ipython
403
411
404 import numpy as np
412 import numpy as np
405 np.histogram?
413 np.histogram?
406
414
407
415
408 This is part of an effort to make Documentation in Python richer and provide in
416 This is part of an effort to make Documentation in Python richer and provide in
409 the long term if possible dynamic examples that can contain math, images,
417 the long term if possible dynamic examples that can contain math, images,
410 widgets... As stated above this is nightly experimental feature with a lot of
418 widgets... As stated above this is nightly experimental feature with a lot of
411 (fun) problem to solve. We would be happy to get your feedback and expertise on
419 (fun) problem to solve. We would be happy to get your feedback and expertise on
412 it.
420 it.
413
421
414
422
415
423
416 Deprecated Features
424 Deprecated Features
417 -------------------
425 -------------------
418
426
419 Some deprecated features are listed in this section. Don't forget to enable
427 Some deprecated features are listed in this section. Don't forget to enable
420 ``DeprecationWarning`` as an error if you are using IPython in a Continuous
428 ``DeprecationWarning`` as an error if you are using IPython in a Continuous
421 Integration setup or in your testing in general:
429 Integration setup or in your testing in general:
422
430
423 .. code-block:: python
431 .. code-block:: python
424
432
425 import warnings
433 import warnings
426 warnings.filterwarnings('error', '.*', DeprecationWarning, module='yourmodule.*')
434 warnings.filterwarnings('error', '.*', DeprecationWarning, module='yourmodule.*')
427
435
428
436
429 - ``hooks.fix_error_editor`` seems unused and is pending deprecation.
437 - ``hooks.fix_error_editor`` seems unused and is pending deprecation.
430 - `IPython/core/excolors.py:ExceptionColors` is deprecated.
438 - `IPython/core/excolors.py:ExceptionColors` is deprecated.
431 - `IPython.core.InteractiveShell:write()` is deprecated; use `sys.stdout` instead.
439 - `IPython.core.InteractiveShell:write()` is deprecated; use `sys.stdout` instead.
432 - `IPython.core.InteractiveShell:write_err()` is deprecated; use `sys.stderr` instead.
440 - `IPython.core.InteractiveShell:write_err()` is deprecated; use `sys.stderr` instead.
433 - The `formatter` keyword argument to `Inspector.info` in `IPython.core.oinspec` has no effect.
441 - The `formatter` keyword argument to `Inspector.info` in `IPython.core.oinspec` has no effect.
434 - The `global_ns` keyword argument of IPython Embed was deprecated, and has no effect. Use `module` keyword argument instead.
442 - The `global_ns` keyword argument of IPython Embed was deprecated, and has no effect. Use `module` keyword argument instead.
435
443
436
444
437 Known Issues:
445 Known Issues:
438 -------------
446 -------------
439
447
440 - ``<Esc>`` Key does not dismiss the completer and does not clear the current
448 - ``<Esc>`` Key does not dismiss the completer and does not clear the current
441 buffer. This is an on purpose modification due to current technical
449 buffer. This is an on purpose modification due to current technical
442 limitation. Cf :ghpull:`9572`. Escape the control character which is used
450 limitation. Cf :ghpull:`9572`. Escape the control character which is used
443 for other shortcut, and there is no practical way to distinguish. Use Ctr-G
451 for other shortcut, and there is no practical way to distinguish. Use Ctr-G
444 or Ctrl-C as an alternative.
452 or Ctrl-C as an alternative.
445
453
446 - Cannot use ``Shift-Enter`` and ``Ctrl-Enter`` to submit code in terminal. cf
454 - Cannot use ``Shift-Enter`` and ``Ctrl-Enter`` to submit code in terminal. cf
447 :ghissue:`9587` and :ghissue:`9401`. In terminal there is no practical way to
455 :ghissue:`9587` and :ghissue:`9401`. In terminal there is no practical way to
448 distinguish these key sequences from a normal new line return.
456 distinguish these key sequences from a normal new line return.
449
457
450 - ``PageUp`` and ``pageDown`` do not move through completion menu.
458 - ``PageUp`` and ``pageDown`` do not move through completion menu.
451
459
452 - Color styles might not adapt to terminal emulator themes. This will need new
460 - Color styles might not adapt to terminal emulator themes. This will need new
453 version of Pygments to be released, and can be mitigated with custom themes.
461 version of Pygments to be released, and can be mitigated with custom themes.
General Comments 0
You need to be logged in to leave comments. Login now