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