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