##// END OF EJS Templates
start release notes
Matthias Bussonnier -
Show More
@@ -1,139 +1,166 b''
1 Issues closed in the 7.x development cycle
1 Issues closed in the 7.x development cycle
2 ==========================================
2 ==========================================
3
3
4 Issues closed in 7.3
5 --------------------
6
7 GitHub stats for 2018/11/30 - 2019/01/23 (tag: 7.2.0)
8
9 These lists are automatically generated, and may be incomplete or contain duplicates.
10
11 We closed 3 issues and merged 13 pull requests.
12 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.3>`__
13
14 The following 13 authors contributed 58 commits.
15
16 * Benjamin Ragan-Kelley
17 * Gabriel Potter
18 * Ian Bell
19 * Jake VanderPlas
20 * Jan S. (Milania1)
21 * Jesse Widner
22 * Kyungdahm Yun
23 * Laurent Gautier
24 * Matthias Bussonnier
25 * MickaΓ«l Schoentgen
26 * Philipp A
27 * Steve Nicholson
28 * Tony Fast
29
4 Issues closed in 7.2
30 Issues closed in 7.2
5 --------------------
31 --------------------
32
6 GitHub stats for 2018/10/28 - 2018/11/29 (tag: 7.1.1)
33 GitHub stats for 2018/10/28 - 2018/11/29 (tag: 7.1.1)
7
34
8 These lists are automatically generated, and may be incomplete or contain duplicates.
35 These lists are automatically generated, and may be incomplete or contain duplicates.
9
36
10 We closed 2 issues and merged 18 pull requests.
37 We closed 2 issues and merged 18 pull requests.
11 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.2>`__
38 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.2>`__
12
39
13 The following 16 authors contributed 95 commits.
40 The following 16 authors contributed 95 commits.
14
41
15 * Antony Lee
42 * Antony Lee
16 * Benjamin Ragan-Kelley
43 * Benjamin Ragan-Kelley
17 * CarsonGSmith
44 * CarsonGSmith
18 * Chris Mentzel
45 * Chris Mentzel
19 * Christopher Brown
46 * Christopher Brown
20 * Dan Allan
47 * Dan Allan
21 * Elliott Morgan Jobson
48 * Elliott Morgan Jobson
22 * is-this-valid
49 * is-this-valid
23 * kd2718
50 * kd2718
24 * Kevin Hess
51 * Kevin Hess
25 * Martin Bergtholdt
52 * Martin Bergtholdt
26 * Matthias Bussonnier
53 * Matthias Bussonnier
27 * Nicholas Bollweg
54 * Nicholas Bollweg
28 * Pavel Karateev
55 * Pavel Karateev
29 * Philipp A
56 * Philipp A
30 * Reuben Morais
57 * Reuben Morais
31
58
32 Issues closed in 7.1
59 Issues closed in 7.1
33 --------------------
60 --------------------
34
61
35 GitHub stats for 2018/09/27 - 2018/10/27 (since tag: 7.0.1)
62 GitHub stats for 2018/09/27 - 2018/10/27 (since tag: 7.0.1)
36
63
37 These lists are automatically generated, and may be incomplete or contain duplicates.
64 These lists are automatically generated, and may be incomplete or contain duplicates.
38
65
39 We closed 31 issues and merged 54 pull requests.
66 We closed 31 issues and merged 54 pull requests.
40 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.1>`__
67 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.1>`__
41
68
42 The following 33 authors contributed 254 commits.
69 The following 33 authors contributed 254 commits.
43
70
44 * ammarmallik
71 * ammarmallik
45 * Audrey Dutcher
72 * Audrey Dutcher
46 * Bart Skowron
73 * Bart Skowron
47 * Benjamin Ragan-Kelley
74 * Benjamin Ragan-Kelley
48 * BinaryCrochet
75 * BinaryCrochet
49 * Chris Barker
76 * Chris Barker
50 * Christopher Moura
77 * Christopher Moura
51 * Dedipyaman Das
78 * Dedipyaman Das
52 * Dominic Kuang
79 * Dominic Kuang
53 * Elyashiv
80 * Elyashiv
54 * Emil Hessman
81 * Emil Hessman
55 * felixzhuologist
82 * felixzhuologist
56 * hongshaoyang
83 * hongshaoyang
57 * Hugo
84 * Hugo
58 * kd2718
85 * kd2718
59 * kory donati
86 * kory donati
60 * Kory Donati
87 * Kory Donati
61 * koryd
88 * koryd
62 * luciana
89 * luciana
63 * luz.paz
90 * luz.paz
64 * Massimo Santini
91 * Massimo Santini
65 * Matthias Bussonnier
92 * Matthias Bussonnier
66 * Matthias Geier
93 * Matthias Geier
67 * meeseeksdev[bot]
94 * meeseeksdev[bot]
68 * Michael Penkov
95 * Michael Penkov
69 * Mukesh Bhandarkar
96 * Mukesh Bhandarkar
70 * Nguyen Duy Hai
97 * Nguyen Duy Hai
71 * Roy Wellington β…£
98 * Roy Wellington β…£
72 * Sha Liu
99 * Sha Liu
73 * Shao Yang
100 * Shao Yang
74 * Shashank Kumar
101 * Shashank Kumar
75 * Tony Fast
102 * Tony Fast
76 * wim glenn
103 * wim glenn
77
104
78
105
79 Issues closed in 7.0
106 Issues closed in 7.0
80 --------------------
107 --------------------
81
108
82 GitHub stats for 2018/07/29 - 2018/09/27 (since tag: 6.5.0)
109 GitHub stats for 2018/07/29 - 2018/09/27 (since tag: 6.5.0)
83
110
84 These lists are automatically generated, and may be incomplete or contain duplicates.
111 These lists are automatically generated, and may be incomplete or contain duplicates.
85
112
86 We closed 20 issues and merged 76 pull requests.
113 We closed 20 issues and merged 76 pull requests.
87 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.0>`__
114 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.0>`__
88
115
89 The following 49 authors contributed 471 commits.
116 The following 49 authors contributed 471 commits.
90
117
91 * alphaCTzo7G
118 * alphaCTzo7G
92 * Alyssa Whitwell
119 * Alyssa Whitwell
93 * Anatol Ulrich
120 * Anatol Ulrich
94 * apunisal
121 * apunisal
95 * Benjamin Ragan-Kelley
122 * Benjamin Ragan-Kelley
96 * Chaz Reid
123 * Chaz Reid
97 * Christoph
124 * Christoph
98 * Dale Jung
125 * Dale Jung
99 * Dave Hirschfeld
126 * Dave Hirschfeld
100 * dhirschf
127 * dhirschf
101 * Doug Latornell
128 * Doug Latornell
102 * Fernando Perez
129 * Fernando Perez
103 * Fred Mitchell
130 * Fred Mitchell
104 * Gabriel Potter
131 * Gabriel Potter
105 * gpotter2
132 * gpotter2
106 * Grant Nestor
133 * Grant Nestor
107 * hongshaoyang
134 * hongshaoyang
108 * Hugo
135 * Hugo
109 * J Forde
136 * J Forde
110 * Jonathan Slenders
137 * Jonathan Slenders
111 * JΓΆrg Dietrich
138 * JΓΆrg Dietrich
112 * Kyle Kelley
139 * Kyle Kelley
113 * luz.paz
140 * luz.paz
114 * M Pacer
141 * M Pacer
115 * Matthew R. Scott
142 * Matthew R. Scott
116 * Matthew Seal
143 * Matthew Seal
117 * Matthias Bussonnier
144 * Matthias Bussonnier
118 * meeseeksdev[bot]
145 * meeseeksdev[bot]
119 * Michael KΓ€ufl
146 * Michael KΓ€ufl
120 * Olesya Baranova
147 * Olesya Baranova
121 * oscar6echo
148 * oscar6echo
122 * Paul Ganssle
149 * Paul Ganssle
123 * Paul Ivanov
150 * Paul Ivanov
124 * Peter Parente
151 * Peter Parente
125 * prasanth
152 * prasanth
126 * Shailyn javier Ortiz jimenez
153 * Shailyn javier Ortiz jimenez
127 * Sourav Singh
154 * Sourav Singh
128 * Srinivas Reddy Thatiparthy
155 * Srinivas Reddy Thatiparthy
129 * Steven Silvester
156 * Steven Silvester
130 * stonebig
157 * stonebig
131 * Subhendu Ranjan Mishra
158 * Subhendu Ranjan Mishra
132 * Takafumi Arakaki
159 * Takafumi Arakaki
133 * Thomas A Caswell
160 * Thomas A Caswell
134 * Thomas Kluyver
161 * Thomas Kluyver
135 * Todd
162 * Todd
136 * Wei Yen
163 * Wei Yen
137 * Yarko Tymciurak
164 * Yarko Tymciurak
138 * Yutao Yuan
165 * Yutao Yuan
139 * Zi Chong Kao
166 * Zi Chong Kao
@@ -1,408 +1,435 b''
1 ============
1 ============
2 7.x Series
2 7.x Series
3 ============
3 ============
4
4
5 .. _whatsnew730:
6
7 IPython 7.3.0
8 =============
9
5 .. _whatsnew720:
10 .. _whatsnew720:
6
11
12 IPython 7.3.0 bring several bug fixes and small improvements that you will
13 described bellow.
14
15 The biggest change to this release is the implementation of the ``%conda`` and
16 ``%pip`` magics, that will attempt to install packages in the **current
17 environment**. You may still need to restart your interpreter or kernel for the
18 change to be taken into account, but it should simplify installation of packages
19 into remote environment. Installing using pip/conda from the command line is
20 still the prefer method.
21
22 The ``%pip`` magic was already present, but was only printing a warning; now it
23 will actually forward commands to pip.
24
25 Misc bug fixes and improvements:
26
27 - Do not expand shell variable in execution magics, and added the
28 ``no_var_expand`` decorator for magic requiring a similar functionality
29 :ghpull:`11516`
30 - Add ``%pip`` and ``%conda`` magic :ghpull:`11524`
31 - Re-initialize posix aliases after a ``%reset`` :ghpull:`11528`
32 - Allow the IPython command line to run ``*.ipynb`` files :ghpull:`11529`
33
7 IPython 7.2.0
34 IPython 7.2.0
8 =============
35 =============
9
36
10 IPython 7.2.0 brings minor bugfixes, improvements, and new configuration options:
37 IPython 7.2.0 brings minor bugfixes, improvements, and new configuration options:
11
38
12 - Fix a bug preventing PySide2 GUI integration from working :ghpull:`11464`
39 - Fix a bug preventing PySide2 GUI integration from working :ghpull:`11464`
13 - Run CI on Mac OS ! :ghpull:`11471`
40 - Run CI on Mac OS ! :ghpull:`11471`
14 - Fix IPython "Demo" mode. :ghpull:`11498`
41 - Fix IPython "Demo" mode. :ghpull:`11498`
15 - Fix ``%run`` magic with path in name :ghpull:`11499`
42 - Fix ``%run`` magic with path in name :ghpull:`11499`
16 - Fix: add CWD to sys.path *after* stdlib :ghpull:`11502`
43 - Fix: add CWD to sys.path *after* stdlib :ghpull:`11502`
17 - Better rendering of signatures, especially long ones. :ghpull:`11505`
44 - Better rendering of signatures, especially long ones. :ghpull:`11505`
18 - Re-enable jedi by default if it's installed :ghpull:`11506`
45 - Re-enable jedi by default if it's installed :ghpull:`11506`
19 - Add New ``minimal`` exception reporting mode (useful for educational purpose). See :ghpull:`11509`
46 - Add New ``minimal`` exception reporting mode (useful for educational purpose). See :ghpull:`11509`
20
47
21
48
22 Added ability to show subclasses when using pinfo and other utilities
49 Added ability to show subclasses when using pinfo and other utilities
23 ---------------------------------------------------------------------
50 ---------------------------------------------------------------------
24
51
25 When using ``?``/``??`` on a class, IPython will now list the first 10 subclasses.
52 When using ``?``/``??`` on a class, IPython will now list the first 10 subclasses.
26
53
27 Special Thanks to Chris Mentzel of the Moore Foundation for this feature. Chris
54 Special Thanks to Chris Mentzel of the Moore Foundation for this feature. Chris
28 is one of the people who played a critical role in IPython/Jupyter getting
55 is one of the people who played a critical role in IPython/Jupyter getting
29 funding.
56 funding.
30
57
31 We are grateful for all the help Chris has given us over the years,
58 We are grateful for all the help Chris has given us over the years,
32 and we're now proud to have code contributed by Chris in IPython.
59 and we're now proud to have code contributed by Chris in IPython.
33
60
34 OSMagics.cd_force_quiet configuration option
61 OSMagics.cd_force_quiet configuration option
35 --------------------------------------------
62 --------------------------------------------
36
63
37 You can set this option to force the %cd magic to behave as if ``-q`` was passed:
64 You can set this option to force the %cd magic to behave as if ``-q`` was passed:
38 ::
65 ::
39
66
40 In [1]: cd /
67 In [1]: cd /
41 /
68 /
42
69
43 In [2]: %config OSMagics.cd_force_quiet = True
70 In [2]: %config OSMagics.cd_force_quiet = True
44
71
45 In [3]: cd /tmp
72 In [3]: cd /tmp
46
73
47 In [4]:
74 In [4]:
48
75
49 See :ghpull:`11491`
76 See :ghpull:`11491`
50
77
51 In vi editing mode, whether the prompt includes the current vi mode can now be configured
78 In vi editing mode, whether the prompt includes the current vi mode can now be configured
52 -----------------------------------------------------------------------------------------
79 -----------------------------------------------------------------------------------------
53
80
54 Set the ``TerminalInteractiveShell.prompt_includes_vi_mode`` to a boolean value
81 Set the ``TerminalInteractiveShell.prompt_includes_vi_mode`` to a boolean value
55 (default: True) to control this feature. See :ghpull:`11492`
82 (default: True) to control this feature. See :ghpull:`11492`
56
83
57 .. _whatsnew710:
84 .. _whatsnew710:
58
85
59 IPython 7.1.0
86 IPython 7.1.0
60 =============
87 =============
61
88
62 IPython 7.1.0 is the first minor release after 7.0.0 and mostly brings fixes to
89 IPython 7.1.0 is the first minor release after 7.0.0 and mostly brings fixes to
63 new features, internal refactoring, and fixes for regressions that happened during the 6.x->7.x
90 new features, internal refactoring, and fixes for regressions that happened during the 6.x->7.x
64 transition. It also brings **Compatibility with Python 3.7.1**, as we're
91 transition. It also brings **Compatibility with Python 3.7.1**, as we're
65 unwillingly relying on a bug in CPython.
92 unwillingly relying on a bug in CPython.
66
93
67 New Core Dev:
94 New Core Dev:
68
95
69 - We welcome Jonathan Slenders to the commiters. Jonathan has done a fantastic
96 - We welcome Jonathan Slenders to the commiters. Jonathan has done a fantastic
70 work on prompt_toolkit, and we'd like to recognise his impact by giving him
97 work on prompt_toolkit, and we'd like to recognise his impact by giving him
71 commit rights. :ghissue:`11397`
98 commit rights. :ghissue:`11397`
72
99
73 Notable Changes
100 Notable Changes
74
101
75 - Major update of "latex to unicode" tab completion map (see below)
102 - Major update of "latex to unicode" tab completion map (see below)
76
103
77 Notable New Features:
104 Notable New Features:
78
105
79 - Restore functionality and documentation of the **sphinx directive**, which
106 - Restore functionality and documentation of the **sphinx directive**, which
80 is now stricter (fail on error by daefault), has new configuration options,
107 is now stricter (fail on error by daefault), has new configuration options,
81 has a brand new documentation page :ref:`ipython_directive` (which needs
108 has a brand new documentation page :ref:`ipython_directive` (which needs
82 some cleanup). It is also now *tested* so we hope to have less regressions.
109 some cleanup). It is also now *tested* so we hope to have less regressions.
83 :ghpull:`11402`
110 :ghpull:`11402`
84
111
85 - ``IPython.display.Video`` now supports ``width`` and ``height`` arguments,
112 - ``IPython.display.Video`` now supports ``width`` and ``height`` arguments,
86 allowing a custom width and height to be set instead of using the video's
113 allowing a custom width and height to be set instead of using the video's
87 width and height. :ghpull:`11353`
114 width and height. :ghpull:`11353`
88
115
89 - Warn when using ``HTML('<iframe>')`` instead of ``IFrame`` :ghpull:`11350`
116 - Warn when using ``HTML('<iframe>')`` instead of ``IFrame`` :ghpull:`11350`
90
117
91 - Allow Dynamic switching of editing mode between vi/emacs and show
118 - Allow Dynamic switching of editing mode between vi/emacs and show
92 normal/input mode in prompt when using vi. :ghpull:`11390`. Use ``%config
119 normal/input mode in prompt when using vi. :ghpull:`11390`. Use ``%config
93 TerminalInteractiveShell.editing_mode = 'vi'`` or ``%config
120 TerminalInteractiveShell.editing_mode = 'vi'`` or ``%config
94 TerminalInteractiveShell.editing_mode = 'emacs'`` to dynamically switch
121 TerminalInteractiveShell.editing_mode = 'emacs'`` to dynamically switch
95 between modes.
122 between modes.
96
123
97
124
98 Notable Fixes:
125 Notable Fixes:
99
126
100 - Fix entering of **multi-line blocks in terminal** IPython, and various
127 - Fix entering of **multi-line blocks in terminal** IPython, and various
101 crashes in the new input transformation machinery :ghpull:`11354`,
128 crashes in the new input transformation machinery :ghpull:`11354`,
102 :ghpull:`11356`, :ghpull:`11358`. These also fix a **Compatibility bug
129 :ghpull:`11356`, :ghpull:`11358`. These also fix a **Compatibility bug
103 with Python 3.7.1**.
130 with Python 3.7.1**.
104
131
105 - Fix moving through generator stack in ipdb :ghpull:`11266`
132 - Fix moving through generator stack in ipdb :ghpull:`11266`
106
133
107 - %Magic command arguments now support quoting. :ghpull:`11330`
134 - %Magic command arguments now support quoting. :ghpull:`11330`
108
135
109 - Re-add ``rprint`` and ``rprinte`` aliases. :ghpull:`11331`
136 - Re-add ``rprint`` and ``rprinte`` aliases. :ghpull:`11331`
110
137
111 - Remove implicit dependency on ``ipython_genutils`` :ghpull:`11317`
138 - Remove implicit dependency on ``ipython_genutils`` :ghpull:`11317`
112
139
113 - Make ``nonlocal`` raise ``SyntaxError`` instead of silently failing in async
140 - Make ``nonlocal`` raise ``SyntaxError`` instead of silently failing in async
114 mode. :ghpull:`11382`
141 mode. :ghpull:`11382`
115
142
116 - Fix mishandling of magics and ``= !`` assignment just after a dedent in
143 - Fix mishandling of magics and ``= !`` assignment just after a dedent in
117 nested code blocks :ghpull:`11418`
144 nested code blocks :ghpull:`11418`
118
145
119 - Fix instructions for custom shortcuts :ghpull:`11426`
146 - Fix instructions for custom shortcuts :ghpull:`11426`
120
147
121
148
122 Notable Internals improvements:
149 Notable Internals improvements:
123
150
124 - Use of ``os.scandir`` (Python 3 only) to speed up some file system operations.
151 - Use of ``os.scandir`` (Python 3 only) to speed up some file system operations.
125 :ghpull:`11365`
152 :ghpull:`11365`
126
153
127 - use ``perf_counter`` instead of ``clock`` for more precise
154 - use ``perf_counter`` instead of ``clock`` for more precise
128 timing results with ``%time`` :ghpull:`11376`
155 timing results with ``%time`` :ghpull:`11376`
129
156
130 Many thanks to all the contributors and in particular to ``bartskowron`` and
157 Many thanks to all the contributors and in particular to ``bartskowron`` and
131 ``tonyfast`` who handled some pretty complicated bugs in the input machinery. We
158 ``tonyfast`` who handled some pretty complicated bugs in the input machinery. We
132 had a number of first time contributors and maybe hacktoberfest participants that
159 had a number of first time contributors and maybe hacktoberfest participants that
133 made significant contributions and helped us free some time to focus on more
160 made significant contributions and helped us free some time to focus on more
134 complicated bugs.
161 complicated bugs.
135
162
136 You
163 You
137 can see all the closed issues and Merged PR, new features and fixes `here
164 can see all the closed issues and Merged PR, new features and fixes `here
138 <https://github.com/ipython/ipython/issues?utf8=%E2%9C%93&q=+is%3Aclosed+milestone%3A7.1+>`_.
165 <https://github.com/ipython/ipython/issues?utf8=%E2%9C%93&q=+is%3Aclosed+milestone%3A7.1+>`_.
139
166
140 Unicode Completion update
167 Unicode Completion update
141 -------------------------
168 -------------------------
142
169
143 In IPython 7.1 the Unicode completion map has been updated and synchronized with
170 In IPython 7.1 the Unicode completion map has been updated and synchronized with
144 the Julia language.
171 the Julia language.
145
172
146 Added and removed character characters:
173 Added and removed character characters:
147
174
148 ``\jmath`` (``Θ·``), ``\\underleftrightarrow`` (U+034D, combining) have been
175 ``\jmath`` (``Θ·``), ``\\underleftrightarrow`` (U+034D, combining) have been
149 added, while ``\\textasciicaron`` have been removed
176 added, while ``\\textasciicaron`` have been removed
150
177
151 Some sequences have seen their prefix removed:
178 Some sequences have seen their prefix removed:
152
179
153 - 6 characters ``\text...<tab>`` should now be inputed with ``\...<tab>`` directly,
180 - 6 characters ``\text...<tab>`` should now be inputed with ``\...<tab>`` directly,
154 - 45 characters ``\Elz...<tab>`` should now be inputed with ``\...<tab>`` directly,
181 - 45 characters ``\Elz...<tab>`` should now be inputed with ``\...<tab>`` directly,
155 - 65 characters ``\B...<tab>`` should now be inputed with ``\...<tab>`` directly,
182 - 65 characters ``\B...<tab>`` should now be inputed with ``\...<tab>`` directly,
156 - 450 characters ``\m...<tab>`` should now be inputed with ``\...<tab>`` directly,
183 - 450 characters ``\m...<tab>`` should now be inputed with ``\...<tab>`` directly,
157
184
158 Some sequences have seen their prefix shortened:
185 Some sequences have seen their prefix shortened:
159
186
160 - 5 characters ``\mitBbb...<tab>`` should now be inputed with ``\bbi...<tab>`` directly,
187 - 5 characters ``\mitBbb...<tab>`` should now be inputed with ``\bbi...<tab>`` directly,
161 - 52 characters ``\mit...<tab>`` should now be inputed with ``\i...<tab>`` directly,
188 - 52 characters ``\mit...<tab>`` should now be inputed with ``\i...<tab>`` directly,
162 - 216 characters ``\mbfit...<tab>`` should now be inputed with ``\bi...<tab>`` directly,
189 - 216 characters ``\mbfit...<tab>`` should now be inputed with ``\bi...<tab>`` directly,
163 - 222 characters ``\mbf...<tab>`` should now be inputed with ``\b...<tab>`` directly,
190 - 222 characters ``\mbf...<tab>`` should now be inputed with ``\b...<tab>`` directly,
164
191
165 A couple of characters had their sequence simplified:
192 A couple of characters had their sequence simplified:
166
193
167 - ``Γ°``, type ``\dh<tab>``, instead of ``\eth<tab>``
194 - ``Γ°``, type ``\dh<tab>``, instead of ``\eth<tab>``
168 - ``Δ§``, type ``\hbar<tab>``, instead of ``\Elzxh<tab>``
195 - ``Δ§``, type ``\hbar<tab>``, instead of ``\Elzxh<tab>``
169 - ``ΙΈ``, type ``\ltphi<tab>``, instead of ``\textphi<tab>``
196 - ``ΙΈ``, type ``\ltphi<tab>``, instead of ``\textphi<tab>``
170 - ``Ο΄``, type ``\varTheta<tab>``, instead of ``\textTheta<tab>``
197 - ``Ο΄``, type ``\varTheta<tab>``, instead of ``\textTheta<tab>``
171 - ``ℇ``, type ``\eulermascheroni<tab>``, instead of ``\Eulerconst<tab>``
198 - ``ℇ``, type ``\eulermascheroni<tab>``, instead of ``\Eulerconst<tab>``
172 - ``β„Ž``, type ``\planck<tab>``, instead of ``\Planckconst<tab>``
199 - ``β„Ž``, type ``\planck<tab>``, instead of ``\Planckconst<tab>``
173
200
174 - U+0336 (COMBINING LONG STROKE OVERLAY), type ``\strike<tab>``, instead of ``\Elzbar<tab>``.
201 - U+0336 (COMBINING LONG STROKE OVERLAY), type ``\strike<tab>``, instead of ``\Elzbar<tab>``.
175
202
176 A couple of sequences have been updated:
203 A couple of sequences have been updated:
177
204
178 - ``\varepsilon`` now gives ``Ι›`` (GREEK SMALL LETTER EPSILON) instead of ``Ξ΅`` (GREEK LUNATE EPSILON SYMBOL),
205 - ``\varepsilon`` now gives ``Ι›`` (GREEK SMALL LETTER EPSILON) instead of ``Ξ΅`` (GREEK LUNATE EPSILON SYMBOL),
179 - ``\underbar`` now gives U+0331 (COMBINING MACRON BELOW) instead of U+0332 (COMBINING LOW LINE).
206 - ``\underbar`` now gives U+0331 (COMBINING MACRON BELOW) instead of U+0332 (COMBINING LOW LINE).
180
207
181
208
182 .. _whatsnew700:
209 .. _whatsnew700:
183
210
184 IPython 7.0.0
211 IPython 7.0.0
185 =============
212 =============
186
213
187 Released Thursday September 27th, 2018
214 Released Thursday September 27th, 2018
188
215
189 IPython 7 includes major feature improvements.
216 IPython 7 includes major feature improvements.
190 This is also the second major version of IPython to support only
217 This is also the second major version of IPython to support only
191 Python 3 – starting at Python 3.4. Python 2 is still community-supported
218 Python 3 – starting at Python 3.4. Python 2 is still community-supported
192 on the bugfix only 5.x branch, but we remind you that Python 2 "end of life"
219 on the bugfix only 5.x branch, but we remind you that Python 2 "end of life"
193 is on Jan 1st 2020.
220 is on Jan 1st 2020.
194
221
195 We were able to backport bug fixes to the 5.x branch thanks to our backport bot which
222 We were able to backport bug fixes to the 5.x branch thanks to our backport bot which
196 backported more than `70 Pull-Requests
223 backported more than `70 Pull-Requests
197 <https://github.com/ipython/ipython/pulls?page=3&q=is%3Apr+sort%3Aupdated-desc+author%3Aapp%2Fmeeseeksdev++5.x&utf8=%E2%9C%93>`_, but there are still many PRs that required manual work. This is an area of the project where you can easily contribute by looking for `PRs that still need manual backport <https://github.com/ipython/ipython/issues?q=label%3A%22Still+Needs+Manual+Backport%22+is%3Aclosed+sort%3Aupdated-desc>`_
224 <https://github.com/ipython/ipython/pulls?page=3&q=is%3Apr+sort%3Aupdated-desc+author%3Aapp%2Fmeeseeksdev++5.x&utf8=%E2%9C%93>`_, but there are still many PRs that required manual work. This is an area of the project where you can easily contribute by looking for `PRs that still need manual backport <https://github.com/ipython/ipython/issues?q=label%3A%22Still+Needs+Manual+Backport%22+is%3Aclosed+sort%3Aupdated-desc>`_
198
225
199 The IPython 6.x branch will likely not see any further release unless critical
226 The IPython 6.x branch will likely not see any further release unless critical
200 bugs are found.
227 bugs are found.
201
228
202 Make sure you have pip > 9.0 before upgrading. You should be able to update by running:
229 Make sure you have pip > 9.0 before upgrading. You should be able to update by running:
203
230
204 .. code::
231 .. code::
205
232
206 pip install ipython --upgrade
233 pip install ipython --upgrade
207
234
208 .. only:: ipydev
235 .. only:: ipydev
209
236
210 If you are trying to install or update an ``alpha``, ``beta``, or ``rc``
237 If you are trying to install or update an ``alpha``, ``beta``, or ``rc``
211 version, use pip ``--pre`` flag.
238 version, use pip ``--pre`` flag.
212
239
213 .. code::
240 .. code::
214
241
215 pip install ipython --upgrade --pre
242 pip install ipython --upgrade --pre
216
243
217
244
218 Or, if you have conda installed:
245 Or, if you have conda installed:
219
246
220 .. code::
247 .. code::
221
248
222 conda install ipython
249 conda install ipython
223
250
224
251
225
252
226 Prompt Toolkit 2.0
253 Prompt Toolkit 2.0
227 ------------------
254 ------------------
228
255
229 IPython 7.0+ now uses ``prompt_toolkit 2.0``. If you still need to use an earlier
256 IPython 7.0+ now uses ``prompt_toolkit 2.0``. If you still need to use an earlier
230 ``prompt_toolkit`` version, you may need to pin IPython to ``<7.0``.
257 ``prompt_toolkit`` version, you may need to pin IPython to ``<7.0``.
231
258
232 Autowait: Asynchronous REPL
259 Autowait: Asynchronous REPL
233 ---------------------------
260 ---------------------------
234
261
235 Staring with IPython 7.0 on Python 3.6+, IPython can automatically ``await``
262 Staring with IPython 7.0 on Python 3.6+, IPython can automatically ``await``
236 top level code. You should not need to access an event loop or runner
263 top level code. You should not need to access an event loop or runner
237 yourself. To learn more, read the :ref:`autoawait` section of our docs, see
264 yourself. To learn more, read the :ref:`autoawait` section of our docs, see
238 :ghpull:`11265`, or try the following code::
265 :ghpull:`11265`, or try the following code::
239
266
240 Python 3.6.0
267 Python 3.6.0
241 Type 'copyright', 'credits' or 'license' for more information
268 Type 'copyright', 'credits' or 'license' for more information
242 IPython 7.0.0 -- An enhanced Interactive Python. Type '?' for help.
269 IPython 7.0.0 -- An enhanced Interactive Python. Type '?' for help.
243
270
244 In [1]: import aiohttp
271 In [1]: import aiohttp
245 ...: result = aiohttp.get('https://api.github.com')
272 ...: result = aiohttp.get('https://api.github.com')
246
273
247 In [2]: response = await result
274 In [2]: response = await result
248 <pause for a few 100s ms>
275 <pause for a few 100s ms>
249
276
250 In [3]: await response.json()
277 In [3]: await response.json()
251 Out[3]:
278 Out[3]:
252 {'authorizations_url': 'https://api.github.com/authorizations',
279 {'authorizations_url': 'https://api.github.com/authorizations',
253 'code_search_url': 'https://api.github.com/search/code?q={query}{&page,per_page,sort,order}',
280 'code_search_url': 'https://api.github.com/search/code?q={query}{&page,per_page,sort,order}',
254 ...
281 ...
255 }
282 }
256
283
257 .. note::
284 .. note::
258
285
259 Async integration is experimental code, behavior may change or be removed
286 Async integration is experimental code, behavior may change or be removed
260 between Python and IPython versions without warnings.
287 between Python and IPython versions without warnings.
261
288
262 Integration is by default with `asyncio`, but other libraries can be configured --
289 Integration is by default with `asyncio`, but other libraries can be configured --
263 like ``curio`` or ``trio`` -- to improve concurrency in the REPL::
290 like ``curio`` or ``trio`` -- to improve concurrency in the REPL::
264
291
265 In [1]: %autoawait trio
292 In [1]: %autoawait trio
266
293
267 In [2]: import trio
294 In [2]: import trio
268
295
269 In [3]: async def child(i):
296 In [3]: async def child(i):
270 ...: print(" child %s goes to sleep"%i)
297 ...: print(" child %s goes to sleep"%i)
271 ...: await trio.sleep(2)
298 ...: await trio.sleep(2)
272 ...: print(" child %s wakes up"%i)
299 ...: print(" child %s wakes up"%i)
273
300
274 In [4]: print('parent start')
301 In [4]: print('parent start')
275 ...: async with trio.open_nursery() as n:
302 ...: async with trio.open_nursery() as n:
276 ...: for i in range(3):
303 ...: for i in range(3):
277 ...: n.spawn(child, i)
304 ...: n.spawn(child, i)
278 ...: print('parent end')
305 ...: print('parent end')
279 parent start
306 parent start
280 child 2 goes to sleep
307 child 2 goes to sleep
281 child 0 goes to sleep
308 child 0 goes to sleep
282 child 1 goes to sleep
309 child 1 goes to sleep
283 <about 2 seconds pause>
310 <about 2 seconds pause>
284 child 2 wakes up
311 child 2 wakes up
285 child 1 wakes up
312 child 1 wakes up
286 child 0 wakes up
313 child 0 wakes up
287 parent end
314 parent end
288
315
289 See :ref:`autoawait` for more information.
316 See :ref:`autoawait` for more information.
290
317
291
318
292 Asynchronous code in a Notebook interface or any other frontend using the
319 Asynchronous code in a Notebook interface or any other frontend using the
293 Jupyter Protocol will require further updates to the IPykernel package.
320 Jupyter Protocol will require further updates to the IPykernel package.
294
321
295 Non-Asynchronous code
322 Non-Asynchronous code
296 ~~~~~~~~~~~~~~~~~~~~~
323 ~~~~~~~~~~~~~~~~~~~~~
297
324
298 As the internal API of IPython is now asynchronous, IPython needs to run under
325 As the internal API of IPython is now asynchronous, IPython needs to run under
299 an event loop. In order to allow many workflows, (like using the :magic:`%run`
326 an event loop. In order to allow many workflows, (like using the :magic:`%run`
300 magic, or copy-pasting code that explicitly starts/stop event loop), when
327 magic, or copy-pasting code that explicitly starts/stop event loop), when
301 top-level code is detected as not being asynchronous, IPython code is advanced
328 top-level code is detected as not being asynchronous, IPython code is advanced
302 via a pseudo-synchronous runner, and may not advance pending tasks.
329 via a pseudo-synchronous runner, and may not advance pending tasks.
303
330
304 Change to Nested Embed
331 Change to Nested Embed
305 ~~~~~~~~~~~~~~~~~~~~~~
332 ~~~~~~~~~~~~~~~~~~~~~~
306
333
307 The introduction of the ability to run async code had some effect on the
334 The introduction of the ability to run async code had some effect on the
308 ``IPython.embed()`` API. By default, embed will not allow you to run asynchronous
335 ``IPython.embed()`` API. By default, embed will not allow you to run asynchronous
309 code unless an event loop is specified.
336 code unless an event loop is specified.
310
337
311 Effects on Magics
338 Effects on Magics
312 ~~~~~~~~~~~~~~~~~
339 ~~~~~~~~~~~~~~~~~
313
340
314 Some magics will not work with async until they're updated.
341 Some magics will not work with async until they're updated.
315 Contributions welcome.
342 Contributions welcome.
316
343
317 Expected Future changes
344 Expected Future changes
318 ~~~~~~~~~~~~~~~~~~~~~~~
345 ~~~~~~~~~~~~~~~~~~~~~~~
319
346
320 We expect more internal but public IPython functions to become ``async``, and
347 We expect more internal but public IPython functions to become ``async``, and
321 will likely end up having a persistent event loop while IPython is running.
348 will likely end up having a persistent event loop while IPython is running.
322
349
323 Thanks
350 Thanks
324 ~~~~~~
351 ~~~~~~
325
352
326 This release took more than a year in the making.
353 This release took more than a year in the making.
327 The code was rebased a number of
354 The code was rebased a number of
328 times; leading to commit authorship that may have been lost in the final
355 times; leading to commit authorship that may have been lost in the final
329 Pull-Request. Huge thanks to many people for contribution, discussion, code,
356 Pull-Request. Huge thanks to many people for contribution, discussion, code,
330 documentation, use-cases: dalejung, danielballan, ellisonbg, fperez, gnestor,
357 documentation, use-cases: dalejung, danielballan, ellisonbg, fperez, gnestor,
331 minrk, njsmith, pganssle, tacaswell, takluyver , vidartf ... And many others.
358 minrk, njsmith, pganssle, tacaswell, takluyver , vidartf ... And many others.
332
359
333
360
334 Autoreload Improvement
361 Autoreload Improvement
335 ----------------------
362 ----------------------
336
363
337 The magic :magic:`%autoreload 2 <autoreload>` now captures new methods added to
364 The magic :magic:`%autoreload 2 <autoreload>` now captures new methods added to
338 classes. Earlier, only methods existing as of the initial import were being
365 classes. Earlier, only methods existing as of the initial import were being
339 tracked and updated.
366 tracked and updated.
340
367
341 This new feature helps dual environment development - Jupyter+IDE - where the
368 This new feature helps dual environment development - Jupyter+IDE - where the
342 code gradually moves from notebook cells to package files as it gets
369 code gradually moves from notebook cells to package files as it gets
343 structured.
370 structured.
344
371
345 **Example**: An instance of the class ``MyClass`` will be able to access the
372 **Example**: An instance of the class ``MyClass`` will be able to access the
346 method ``cube()`` after it is uncommented and the file ``file1.py`` is saved on
373 method ``cube()`` after it is uncommented and the file ``file1.py`` is saved on
347 disk.
374 disk.
348
375
349
376
350 .. code::
377 .. code::
351
378
352 # notebook
379 # notebook
353
380
354 from mymodule import MyClass
381 from mymodule import MyClass
355 first = MyClass(5)
382 first = MyClass(5)
356
383
357 .. code::
384 .. code::
358
385
359 # mymodule/file1.py
386 # mymodule/file1.py
360
387
361 class MyClass:
388 class MyClass:
362
389
363 def __init__(self, a=10):
390 def __init__(self, a=10):
364 self.a = a
391 self.a = a
365
392
366 def square(self):
393 def square(self):
367 print('compute square')
394 print('compute square')
368 return self.a*self.a
395 return self.a*self.a
369
396
370 # def cube(self):
397 # def cube(self):
371 # print('compute cube')
398 # print('compute cube')
372 # return self.a*self.a*self.a
399 # return self.a*self.a*self.a
373
400
374
401
375
402
376
403
377 Misc
404 Misc
378 ----
405 ----
379
406
380 The autoindent feature that was deprecated in 5.x was re-enabled and
407 The autoindent feature that was deprecated in 5.x was re-enabled and
381 un-deprecated in :ghpull:`11257`
408 un-deprecated in :ghpull:`11257`
382
409
383 Make :magic:`%run -n -i ... <run>` work correctly. Earlier, if :magic:`%run` was
410 Make :magic:`%run -n -i ... <run>` work correctly. Earlier, if :magic:`%run` was
384 passed both arguments, ``-n`` would be silently ignored. See :ghpull:`10308`
411 passed both arguments, ``-n`` would be silently ignored. See :ghpull:`10308`
385
412
386
413
387 The :cellmagic:`%%script` (as well as :cellmagic:`%%bash`,
414 The :cellmagic:`%%script` (as well as :cellmagic:`%%bash`,
388 :cellmagic:`%%ruby`... ) cell magics now raise by default if the return code of
415 :cellmagic:`%%ruby`... ) cell magics now raise by default if the return code of
389 the given code is non-zero (thus halting execution of further cells in a
416 the given code is non-zero (thus halting execution of further cells in a
390 notebook). The behavior can be disable by passing the ``--no-raise-error`` flag.
417 notebook). The behavior can be disable by passing the ``--no-raise-error`` flag.
391
418
392
419
393 Deprecations
420 Deprecations
394 ------------
421 ------------
395
422
396 A couple of unused functions and methods have been deprecated and will be removed
423 A couple of unused functions and methods have been deprecated and will be removed
397 in future versions:
424 in future versions:
398
425
399 - ``IPython.utils.io.raw_print_err``
426 - ``IPython.utils.io.raw_print_err``
400 - ``IPython.utils.io.raw_print``
427 - ``IPython.utils.io.raw_print``
401
428
402
429
403 Backwards incompatible changes
430 Backwards incompatible changes
404 ------------------------------
431 ------------------------------
405
432
406 * The API for transforming input before it is parsed as Python code has been
433 * The API for transforming input before it is parsed as Python code has been
407 completely redesigned: any custom input transformations will need to be
434 completely redesigned: any custom input transformations will need to be
408 rewritten. See :doc:`/config/inputtransforms` for details of the new API.
435 rewritten. See :doc:`/config/inputtransforms` for details of the new API.
General Comments 0
You need to be logged in to leave comments. Login now