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