##// END OF EJS Templates
Update changelog for 5.3
Thomas Kluyver -
Show More
@@ -1,277 +1,281 b''
1 1 ============
2 2 5.x Series
3 3 ============
4 4
5 5 IPython 5.3
6 6 ===========
7 7
8 8 Released on January 29th, 2017. Remarkable changes and fixes:
9 9
10 * fix a bug in ``set_next_input`` leading to crash of the terminal IPython.
10 * Fix a bug in ``set_next_input`` leading to a crash of terminal IPython.
11 11 :ghpull:`10231`, :ghissue:`10296`, :ghissue:`10229`
12 12 * Always wait for editor inputhook for terminal IPython :ghpull:`10239`,
13 13 :ghpull:`10240`
14 14 * Disable ``_ipython_display_`` in terminal :ghpull:`10249`, :ghpull:`10274`
15 15 * Update terminal colors to be more visible by default on windows
16 16 :ghpull:`10260`, :ghpull:`10238`, :ghissue:`10281`
17 17 * Add Ctrl-Z shortcut (suspend) in terminal debugger :ghpull:`10254`,
18 18 :ghissue:`10273`
19 19 * Indent on new line by looking at the text before the cursor :ghpull:`10264`,
20 20 :ghpull:`10275`, :ghissue:`9283`
21 21 * Update QtEventloop integration to fix some matplotlib integration issues
22 22 :ghpull:`10201`, :ghpull:`10311`, :ghissue:`10201`
23 23 * Respect completions display style in terminal debugger :ghpull:`10305`,
24 24 :ghpull:`10313`
25 * Add a config option ``TerminalInteractiveShell.extra_open_editor_shortcuts``
26 to enable extra shortcuts to open the input in an editor. These are :kbd:`v`
27 in vi mode, and :kbd:`C-X C-E` in emacs mode (:ghpull:`10330`).
28 The :kbd:`F2` shortcut is always enabled.
25 29
26 30 IPython 5.2.2
27 31 =============
28 32
29 33 * Fix error when starting with ``IPCompleter.limit_to__all__`` configured.
30 34
31 35 IPython 5.2.1
32 36 =============
33 37
34 38 * Fix tab completion in the debugger. :ghpull:`10223`
35 39
36 40 IPython 5.2
37 41 ===========
38 42
39 43 Released on January 29th, 2017. Remarkable changes and fixes:
40 44
41 45 * restore IPython's debugger to raise on quit. :ghpull:`10009`
42 46 * The configuration value ``c.TerminalInteractiveShell.highlighting_style`` can
43 47 now directly take a class argument for custom color style. :ghpull:`9848`
44 48 * Correctly handle matplotlib figures dpi :ghpull:`9868`
45 49 * Deprecate ``-e`` flag for the ``%notebook`` magic that had no effects.
46 50 :ghpull:`9872`
47 51 * You can now press F2 while typing at a terminal prompt to edit the contents
48 52 in your favourite terminal editor. Set the :envvar:`EDITOR` environment
49 53 variable to pick which editor is used. :ghpull:`9929`
50 54 * sdists will now only be ``.tar.gz`` as per upstream PyPI requirements.
51 55 :ghpull:`9925`
52 56 * :any:`IPython.core.debugger` have gained a ``set_trace()`` method for
53 57 convenience. :ghpull:`9947`
54 58 * The 'smart command mode' added to the debugger in 5.0 was removed, as more
55 59 people preferred the previous behaviour. Therefore, debugger commands such as
56 60 ``c`` will act as debugger commands even when ``c`` is defined as a variable.
57 61 :ghpull:`10050`
58 62 * Fixes OS X event loop issues at startup, :ghpull:`10150`
59 63 * Deprecate the ``%autoindent`` magic. :ghpull:`10176`
60 64 * Emit a :any:`DeprecationWarning` when setting the deprecated
61 65 ``limit_to_all`` option of the completer. :ghpull:`10198`
62 66
63 67
64 68 Changes of behavior to :any:`InteractiveShellEmbed`.
65 69
66 70 :any:`InteractiveShellEmbed` interactive behavior have changed a bit in between
67 71 5.1 and 5.2. By default ``%kill_embedded`` magic will prevent further invocation
68 72 of the current ``call location`` instead of preventing further invocation of
69 73 the current instance creation location. For most use case this will not change
70 74 much for you, though previous behavior was confusing and less consistent with
71 75 previous IPython versions.
72 76
73 77 You can now deactivate instances by using ``%kill_embedded --instance`` flag,
74 78 (or ``-i`` in short). The ``%kill_embedded`` magic also gained a
75 79 ``--yes``/``-y`` option which skip confirmation step, and ``-x``/``--exit``
76 80 which also exit the current embedded call without asking for confirmation.
77 81
78 82 See :ghpull:`10207`.
79 83
80 84
81 85
82 86 IPython 5.1
83 87 ===========
84 88
85 89 * Broken ``%timeit`` on Python2 due to the use of ``__qualname__``. :ghpull:`9804`
86 90 * Restore ``%gui qt`` to create and return a ``QApplication`` if necessary. :ghpull:`9789`
87 91 * Don't set terminal title by default. :ghpull:`9801`
88 92 * Preserve indentation when inserting newlines with ``Ctrl-O``. :ghpull:`9770`
89 93 * Restore completion in debugger. :ghpull:`9785`
90 94 * Deprecate ``IPython.core.debugger.Tracer()`` in favor of simpler, newer, APIs. :ghpull:`9731`
91 95 * Restore ``NoOpContext`` context manager removed by mistake, and add `DeprecationWarning`. :ghpull:`9765`
92 96 * Add option allowing ``Prompt_toolkit`` to use 24bits colors. :ghpull:`9736`
93 97 * Fix for closing interactive matplotlib windows on OS X. :ghpull:`9854`
94 98 * An embedded interactive shell instance can be used more than once. :ghpull:`9843`
95 99 * More robust check for whether IPython is in a terminal. :ghpull:`9833`
96 100 * Better pretty-printing of dicts on PyPy. :ghpull:`9827`
97 101 * Some coloured output now looks better on dark background command prompts in Windows.
98 102 :ghpull:`9838`
99 103 * Improved tab completion of paths on Windows . :ghpull:`9826`
100 104 * Fix tkinter event loop integration on Python 2 with ``future`` installed. :ghpull:`9824`
101 105 * Restore ``Ctrl-\`` as a shortcut to quit IPython.
102 106 * Make ``get_ipython()`` accessible when modules are imported by startup files. :ghpull:`9818`
103 107 * Add support for running directories containing a ``__main__.py`` file with the
104 108 ``ipython`` command. :ghpull:`9813`
105 109
106 110
107 111 True Color feature
108 112 ------------------
109 113
110 114 ``prompt_toolkit`` uses pygments styles for syntax highlighting. By default, the
111 115 colors specified in the style are approximated using a standard 256-color
112 116 palette. ``prompt_toolkit`` also supports 24bit, a.k.a. "true", a.k.a. 16-million
113 117 color escape sequences which enable compatible terminals to display the exact
114 118 colors specified instead of an approximation. This true_color option exposes
115 119 that capability in prompt_toolkit to the IPython shell.
116 120
117 121 Here is a good source for the current state of true color support in various
118 122 terminal emulators and software projects: https://gist.github.com/XVilka/8346728
119 123
120 124
121 125
122 126 IPython 5.0
123 127 ===========
124 128
125 129 Released July 7, 2016
126 130
127 131 New terminal interface
128 132 ----------------------
129 133
130 134 IPython 5 features a major upgrade to the terminal interface, bringing live
131 135 syntax highlighting as you type, proper multiline editing and multiline paste,
132 136 and tab completions that don't clutter up your history.
133 137
134 138 .. image:: ../_images/ptshell_features.png
135 139 :alt: New terminal interface features
136 140 :align: center
137 141 :target: ../_images/ptshell_features.png
138 142
139 143 These features are provided by the Python library `prompt_toolkit
140 144 <http://python-prompt-toolkit.readthedocs.io/en/stable/>`__, which replaces
141 145 ``readline`` throughout our terminal interface.
142 146
143 147 Relying on this pure-Python, cross platform module also makes it simpler to
144 148 install IPython. We have removed dependencies on ``pyreadline`` for Windows and
145 149 ``gnureadline`` for Mac.
146 150
147 151 Backwards incompatible changes
148 152 ------------------------------
149 153
150 154 - The ``%install_ext`` magic function, deprecated since 4.0, has now been deleted.
151 155 You can distribute and install extensions as packages on PyPI.
152 156 - Callbacks registered while an event is being handled will now only be called
153 157 for subsequent events; previously they could be called for the current event.
154 158 Similarly, callbacks removed while handling an event *will* always get that
155 159 event. See :ghissue:`9447` and :ghpull:`9453`.
156 160 - Integration with pydb has been removed since pydb development has been stopped
157 161 since 2012, and pydb is not installable from PyPI.
158 162 - The ``autoedit_syntax`` option has apparently been broken for many years.
159 163 It has been removed.
160 164
161 165 New terminal interface
162 166 ~~~~~~~~~~~~~~~~~~~~~~
163 167
164 168 The overhaul of the terminal interface will probably cause a range of minor
165 169 issues for existing users.
166 170 This is inevitable for such a significant change, and we've done our best to
167 171 minimise these issues.
168 172 Some changes that we're aware of, with suggestions on how to handle them:
169 173
170 174 IPython no longer uses readline configuration (``~/.inputrc``). We hope that
171 175 the functionality you want (e.g. vi input mode) will be available by configuring
172 176 IPython directly (see :doc:`/config/options/terminal`).
173 177 If something's missing, please file an issue.
174 178
175 179 The ``PromptManager`` class has been removed, and the prompt machinery simplified.
176 180 See :ref:`custom_prompts` to customise prompts with the new machinery.
177 181
178 182 :mod:`IPython.core.debugger` now provides a plainer interface.
179 183 :mod:`IPython.terminal.debugger` contains the terminal debugger using
180 184 prompt_toolkit.
181 185
182 186 There are new options to configure the colours used in syntax highlighting.
183 187 We have tried to integrate them with our classic ``--colors`` option and
184 188 ``%colors`` magic, but there's a mismatch in possibilities, so some configurations
185 189 may produce unexpected results. See :ref:`termcolour` for more information.
186 190
187 191 The new interface is not compatible with Emacs 'inferior-shell' feature. To
188 192 continue using this, add the ``--simple-prompt`` flag to the command Emacs
189 193 runs. This flag disables most IPython features, relying on Emacs to provide
190 194 things like tab completion.
191 195
192 196 Provisional Changes
193 197 -------------------
194 198
195 199 Provisional changes are experimental functionality that may, or may not, make
196 200 it into a future version of IPython, and which API may change without warnings.
197 201 Activating these features and using these API are at your own risk, and may have
198 202 security implication for your system, especially if used with the Jupyter notebook,
199 203
200 204 When running via the Jupyter notebook interfaces, or other compatible client,
201 205 you can enable rich documentation experimental functionality:
202 206
203 207 When the ``docrepr`` package is installed setting the boolean flag
204 208 ``InteractiveShell.sphinxify_docstring`` to ``True``, will process the various
205 209 object through sphinx before displaying them (see the ``docrepr`` package
206 210 documentation for more information.
207 211
208 212 You need to also enable the IPython pager display rich HTML representation
209 213 using the ``InteractiveShell.enable_html_pager`` boolean configuration option.
210 214 As usual you can set these configuration options globally in your configuration
211 215 files, alternatively you can turn them on dynamically using the following
212 216 snippet:
213 217
214 218 .. code-block:: python
215 219
216 220 ip = get_ipython()
217 221 ip.sphinxify_docstring = True
218 222 ip.enable_html_pager = True
219 223
220 224
221 225 You can test the effect of various combinations of the above configuration in
222 226 the Jupyter notebook, with things example like :
223 227
224 228 .. code-block:: ipython
225 229
226 230 import numpy as np
227 231 np.histogram?
228 232
229 233
230 234 This is part of an effort to make Documentation in Python richer and provide in
231 235 the long term if possible dynamic examples that can contain math, images,
232 236 widgets... As stated above this is nightly experimental feature with a lot of
233 237 (fun) problem to solve. We would be happy to get your feedback and expertise on
234 238 it.
235 239
236 240
237 241
238 242 Deprecated Features
239 243 -------------------
240 244
241 245 Some deprecated features are listed in this section. Don't forget to enable
242 246 ``DeprecationWarning`` as an error if you are using IPython in a Continuous
243 247 Integration setup or in your testing in general:
244 248
245 249 .. code-block:: python
246 250
247 251 import warnings
248 252 warnings.filterwarnings('error', '.*', DeprecationWarning, module='yourmodule.*')
249 253
250 254
251 255 - ``hooks.fix_error_editor`` seems unused and is pending deprecation.
252 256 - `IPython/core/excolors.py:ExceptionColors` is deprecated.
253 257 - `IPython.core.InteractiveShell:write()` is deprecated; use `sys.stdout` instead.
254 258 - `IPython.core.InteractiveShell:write_err()` is deprecated; use `sys.stderr` instead.
255 259 - The `formatter` keyword argument to `Inspector.info` in `IPython.core.oinspec` has no effect.
256 260 - The `global_ns` keyword argument of IPython Embed was deprecated, and has no effect. Use `module` keyword argument instead.
257 261
258 262
259 263 Known Issues:
260 264 -------------
261 265
262 266 - ``<Esc>`` Key does not dismiss the completer and does not clear the current
263 267 buffer. This is an on purpose modification due to current technical
264 268 limitation. Cf :ghpull:`9572`. Escape the control character which is used
265 269 for other shortcut, and there is no practical way to distinguish. Use Ctr-G
266 270 or Ctrl-C as an alternative.
267 271
268 272 - Cannot use ``Shift-Enter`` and ``Ctrl-Enter`` to submit code in terminal. cf
269 273 :ghissue:`9587` and :ghissue:`9401`. In terminal there is no practical way to
270 274 distinguish these key sequences from a normal new line return.
271 275
272 276 - ``PageUp`` and ``pageDown`` do not move through completion menu.
273 277
274 278 - Color styles might not adapt to terminal emulator themes. This will need new
275 279 version of Pygments to be released, and can be mitigated with custom themes.
276 280
277 281
General Comments 0
You need to be logged in to leave comments. Login now