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