##// END OF EJS Templates
Backport PR #12476: Update What's new for 7.17
Matthias Bussonnier -
Show More
@@ -1,548 +1,565 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.17
5 ---------------------
6
7 GitHub stats for 2020/06/26 - 2020/07/31 (tag: 7.16.1)
8
9 These lists are automatically generated, and may be incomplete or contain duplicates.
10
11 We closed 2 issues and merged 19 pull requests.
12 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.17>`__
13
14 The following 3 authors contributed 31 commits.
15
16 * Maor Kleinberger
17 * Matthias Bussonnier
18 * Quentin Peter
19
20
4
21
5 Issues closed in 7.16
22 Issues closed in 7.16
6 ---------------------
23 ---------------------
7
24
8 GitHub stats for 2020/05/29 - 2020/06/26 (tag: 7.15.0)
25 GitHub stats for 2020/05/29 - 2020/06/26 (tag: 7.15.0)
9
26
10 These lists are automatically generated, and may be incomplete or contain duplicates.
27 These lists are automatically generated, and may be incomplete or contain duplicates.
11
28
12 We closed 0 issues and merged 18 pull requests.
29 We closed 0 issues and merged 18 pull requests.
13 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.16>`__
30 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.16>`__
14
31
15 The following 7 authors contributed 22 commits.
32 The following 7 authors contributed 22 commits.
16
33
17 * Benjamin Ragan-Kelley
34 * Benjamin Ragan-Kelley
18 * dalthviz
35 * dalthviz
19 * Frank Tobia
36 * Frank Tobia
20 * Matthias Bussonnier
37 * Matthias Bussonnier
21 * palewire
38 * palewire
22 * Paul McCarthy
39 * Paul McCarthy
23 * Talley Lambert
40 * Talley Lambert
24
41
25
42
26 Issues closed in 7.15
43 Issues closed in 7.15
27 ---------------------
44 ---------------------
28
45
29 GitHub stats for 2020/05/01 - 2020/05/29 (tag: 7.14.0)
46 GitHub stats for 2020/05/01 - 2020/05/29 (tag: 7.14.0)
30
47
31 These lists are automatically generated, and may be incomplete or contain duplicates.
48 These lists are automatically generated, and may be incomplete or contain duplicates.
32
49
33 We closed 1 issues and merged 29 pull requests.
50 We closed 1 issues and merged 29 pull requests.
34 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.15>`__
51 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.15>`__
35
52
36 The following 6 authors contributed 31 commits.
53 The following 6 authors contributed 31 commits.
37
54
38 * Blake Griffin
55 * Blake Griffin
39 * Inception95
56 * Inception95
40 * Marcio Mazza
57 * Marcio Mazza
41 * Matthias Bussonnier
58 * Matthias Bussonnier
42 * Talley Lambert
59 * Talley Lambert
43 * Thomas
60 * Thomas
44
61
45 Issues closed in 7.14
62 Issues closed in 7.14
46 ---------------------
63 ---------------------
47
64
48 GitHub stats for 2020/02/29 - 2020/05/01 (tag: 7.13.0)
65 GitHub stats for 2020/02/29 - 2020/05/01 (tag: 7.13.0)
49
66
50 These lists are automatically generated, and may be incomplete or contain duplicates.
67 These lists are automatically generated, and may be incomplete or contain duplicates.
51
68
52 We closed 0 issues and merged 30 pull requests.
69 We closed 0 issues and merged 30 pull requests.
53 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.14>`__
70 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.14>`__
54
71
55 The following 10 authors contributed 47 commits.
72 The following 10 authors contributed 47 commits.
56
73
57 * Eric Wieser
74 * Eric Wieser
58 * foobarbyte
75 * foobarbyte
59 * Ian Castleden
76 * Ian Castleden
60 * Itamar Turner-Trauring
77 * Itamar Turner-Trauring
61 * Lumir Balhar
78 * Lumir Balhar
62 * Markus Wageringel
79 * Markus Wageringel
63 * Matthias Bussonnier
80 * Matthias Bussonnier
64 * Matthieu Ancellin
81 * Matthieu Ancellin
65 * Quentin Peter
82 * Quentin Peter
66 * Theo Ouzhinski
83 * Theo Ouzhinski
67
84
68 Issues closed in 7.13
85 Issues closed in 7.13
69 ---------------------
86 ---------------------
70
87
71 GitHub stats for 2020/02/29 - 2020/05/01 (tag: 7.13.0)
88 GitHub stats for 2020/02/29 - 2020/05/01 (tag: 7.13.0)
72
89
73 These lists are automatically generated, and may be incomplete or contain duplicates.
90 These lists are automatically generated, and may be incomplete or contain duplicates.
74
91
75 We closed 0 issues and merged 30 pull requests.
92 We closed 0 issues and merged 30 pull requests.
76 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.14>`__
93 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.14>`__
77
94
78 The following 10 authors contributed 47 commits.
95 The following 10 authors contributed 47 commits.
79
96
80 * Eric Wieser
97 * Eric Wieser
81 * foobarbyte
98 * foobarbyte
82 * Ian Castleden
99 * Ian Castleden
83 * Itamar Turner-Trauring
100 * Itamar Turner-Trauring
84 * Lumir Balhar
101 * Lumir Balhar
85 * Markus Wageringel
102 * Markus Wageringel
86 * Matthias Bussonnier
103 * Matthias Bussonnier
87 * Matthieu Ancellin
104 * Matthieu Ancellin
88 * Quentin Peter
105 * Quentin Peter
89 * Theo Ouzhinski
106 * Theo Ouzhinski
90
107
91 Issues closed in 7.13
108 Issues closed in 7.13
92 ---------------------
109 ---------------------
93
110
94 GitHub stats for 2020/02/01 - 2020/02/28 (tag: 7.12.0)
111 GitHub stats for 2020/02/01 - 2020/02/28 (tag: 7.12.0)
95
112
96 These lists are automatically generated, and may be incomplete or contain duplicates.
113 These lists are automatically generated, and may be incomplete or contain duplicates.
97
114
98 We closed 1 issues and merged 24 pull requests.
115 We closed 1 issues and merged 24 pull requests.
99 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.13>`__
116 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.13>`__
100
117
101 The following 12 authors contributed 108 commits.
118 The following 12 authors contributed 108 commits.
102
119
103 * Alex Hall
120 * Alex Hall
104 * Augusto
121 * Augusto
105 * Coon, Ethan T
122 * Coon, Ethan T
106 * Daniel Hahler
123 * Daniel Hahler
107 * Inception95
124 * Inception95
108 * Itamar Turner-Trauring
125 * Itamar Turner-Trauring
109 * Jonas Haag
126 * Jonas Haag
110 * Jonathan Slenders
127 * Jonathan Slenders
111 * linar-jether
128 * linar-jether
112 * Matthias Bussonnier
129 * Matthias Bussonnier
113 * Nathan Goldbaum
130 * Nathan Goldbaum
114 * Terry Davis
131 * Terry Davis
115
132
116
133
117 Issues closed in 7.12
134 Issues closed in 7.12
118 ---------------------
135 ---------------------
119
136
120 GitHub stats for 2020/01/01 - 2020/01/31 (tag: 7.11.1)
137 GitHub stats for 2020/01/01 - 2020/01/31 (tag: 7.11.1)
121
138
122 These lists are automatically generated, and may be incomplete or contain duplicates.
139 These lists are automatically generated, and may be incomplete or contain duplicates.
123
140
124 We closed 2 issues and merged 14 pull requests.
141 We closed 2 issues and merged 14 pull requests.
125 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.12>`__
142 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.12>`__
126
143
127 The following 11 authors contributed 48 commits.
144 The following 11 authors contributed 48 commits.
128
145
129 * Augusto
146 * Augusto
130 * Eric Wieser
147 * Eric Wieser
131 * Jeff Potter
148 * Jeff Potter
132 * Mark E. Haase
149 * Mark E. Haase
133 * Matthias Bussonnier
150 * Matthias Bussonnier
134 * ossdev07
151 * ossdev07
135 * ras44
152 * ras44
136 * takuya fujiwara
153 * takuya fujiwara
137 * Terry Davis
154 * Terry Davis
138 * Thomas A Caswell
155 * Thomas A Caswell
139 * yangyang
156 * yangyang
140
157
141 Issues closed in 7.11
158 Issues closed in 7.11
142 ---------------------
159 ---------------------
143
160
144 GitHub stats for 2019/12/01 - 2019/12/27 (tag: 7.10.1)
161 GitHub stats for 2019/12/01 - 2019/12/27 (tag: 7.10.1)
145
162
146 These lists are automatically generated, and may be incomplete or contain duplicates.
163 These lists are automatically generated, and may be incomplete or contain duplicates.
147
164
148 We closed 4 issues and merged 36 pull requests.
165 We closed 4 issues and merged 36 pull requests.
149 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.11>`__
166 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.11>`__
150
167
151 The following 16 authors contributed 114 commits.
168 The following 16 authors contributed 114 commits.
152
169
153 * Augusto
170 * Augusto
154 * Benjamin Ragan-Kelley
171 * Benjamin Ragan-Kelley
155 * Chemss Eddine Ben Hassine
172 * Chemss Eddine Ben Hassine
156 * Danny Hermes
173 * Danny Hermes
157 * Dominik Miedziński
174 * Dominik Miedziński
158 * Jonathan Feinberg
175 * Jonathan Feinberg
159 * Jonathan Slenders
176 * Jonathan Slenders
160 * Joseph Kahn
177 * Joseph Kahn
161 * kousik
178 * kousik
162 * Kousik Mitra
179 * Kousik Mitra
163 * Marc Hernandez Cabot
180 * Marc Hernandez Cabot
164 * Matthias Bussonnier
181 * Matthias Bussonnier
165 * Naveen Honest Raj K
182 * Naveen Honest Raj K
166 * Pratyay Pandey
183 * Pratyay Pandey
167 * Quentin Peter
184 * Quentin Peter
168 * takuya fujiwara
185 * takuya fujiwara
169
186
170
187
171 Issues closed in 7.10.2
188 Issues closed in 7.10.2
172 -----------------------
189 -----------------------
173
190
174
191
175 GitHub stats for 2019/12/01 - 2019/12/14 (tag: 7.10.1)
192 GitHub stats for 2019/12/01 - 2019/12/14 (tag: 7.10.1)
176
193
177 These lists are automatically generated, and may be incomplete or contain duplicates.
194 These lists are automatically generated, and may be incomplete or contain duplicates.
178
195
179 We closed 3 issues and merged 10 pull requests.
196 We closed 3 issues and merged 10 pull requests.
180 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.10.2>`__
197 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.10.2>`__
181
198
182 The following 3 authors contributed 11 commits.
199 The following 3 authors contributed 11 commits.
183
200
184 * Jonathan Slenders
201 * Jonathan Slenders
185 * Joseph Kahn
202 * Joseph Kahn
186 * Matthias Bussonnier
203 * Matthias Bussonnier
187
204
188 Issues closed in 7.10.1
205 Issues closed in 7.10.1
189 -----------------------
206 -----------------------
190
207
191 GitHub stats for 2019/11/27 - 2019/12/01 (tag: 7.10.0)
208 GitHub stats for 2019/11/27 - 2019/12/01 (tag: 7.10.0)
192
209
193 These lists are automatically generated, and may be incomplete or contain duplicates.
210 These lists are automatically generated, and may be incomplete or contain duplicates.
194
211
195 We closed 5 issues and merged 7 pull requests.
212 We closed 5 issues and merged 7 pull requests.
196 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.10.1>`__
213 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.10.1>`__
197
214
198 The following 2 authors contributed 14 commits.
215 The following 2 authors contributed 14 commits.
199
216
200 * Jonathan Slenders
217 * Jonathan Slenders
201 * Matthias Bussonnier
218 * Matthias Bussonnier
202
219
203 Issues closed in 7.10
220 Issues closed in 7.10
204 ---------------------
221 ---------------------
205
222
206 GitHub stats for 2019/10/25 - 2019/11/27 (tag: 7.9.0)
223 GitHub stats for 2019/10/25 - 2019/11/27 (tag: 7.9.0)
207
224
208 These lists are automatically generated, and may be incomplete or contain duplicates.
225 These lists are automatically generated, and may be incomplete or contain duplicates.
209
226
210 We closed 4 issues and merged 22 pull requests.
227 We closed 4 issues and merged 22 pull requests.
211 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.10>`__
228 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.10>`__
212
229
213 The following 15 authors contributed 101 commits.
230 The following 15 authors contributed 101 commits.
214
231
215 * anatoly techtonik
232 * anatoly techtonik
216 * Ben Lewis
233 * Ben Lewis
217 * Benjamin Ragan-Kelley
234 * Benjamin Ragan-Kelley
218 * Gerrit Buss
235 * Gerrit Buss
219 * grey275
236 * grey275
220 * Gökcen Eraslan
237 * Gökcen Eraslan
221 * Jonathan Slenders
238 * Jonathan Slenders
222 * Joris Van den Bossche
239 * Joris Van den Bossche
223 * kousik
240 * kousik
224 * Matthias Bussonnier
241 * Matthias Bussonnier
225 * Nicholas Bollweg
242 * Nicholas Bollweg
226 * Paul McCarthy
243 * Paul McCarthy
227 * Srinivas Reddy Thatiparthy
244 * Srinivas Reddy Thatiparthy
228 * Timo Kaufmann
245 * Timo Kaufmann
229 * Tony Fast
246 * Tony Fast
230
247
231 Issues closed in 7.9
248 Issues closed in 7.9
232 --------------------
249 --------------------
233
250
234 GitHub stats for 2019/08/30 - 2019/10/25 (tag: 7.8.0)
251 GitHub stats for 2019/08/30 - 2019/10/25 (tag: 7.8.0)
235
252
236 These lists are automatically generated, and may be incomplete or contain duplicates.
253 These lists are automatically generated, and may be incomplete or contain duplicates.
237
254
238 We closed 1 issues and merged 9 pull requests.
255 We closed 1 issues and merged 9 pull requests.
239 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.9>`__
256 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.9>`__
240
257
241 The following 8 authors contributed 20 commits.
258 The following 8 authors contributed 20 commits.
242
259
243 * Benjamin Ragan-Kelley
260 * Benjamin Ragan-Kelley
244 * Hugo
261 * Hugo
245 * Matthias Bussonnier
262 * Matthias Bussonnier
246 * mfh92
263 * mfh92
247 * Mohammad Hossein Sekhavat
264 * Mohammad Hossein Sekhavat
248 * Niclas
265 * Niclas
249 * Vidar Tonaas Fauske
266 * Vidar Tonaas Fauske
250 * Георгий Фролов
267 * Георгий Фролов
251
268
252 Issues closed in 7.8
269 Issues closed in 7.8
253 --------------------
270 --------------------
254
271
255 GitHub stats for 2019/07/26 - 2019/08/30 (tag: 7.7.0)
272 GitHub stats for 2019/07/26 - 2019/08/30 (tag: 7.7.0)
256
273
257 These lists are automatically generated, and may be incomplete or contain duplicates.
274 These lists are automatically generated, and may be incomplete or contain duplicates.
258
275
259 We closed 1 issues and merged 4 pull requests.
276 We closed 1 issues and merged 4 pull requests.
260 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.8>`__
277 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.8>`__
261
278
262 The following 5 authors contributed 27 commits.
279 The following 5 authors contributed 27 commits.
263
280
264 * Dan Allan
281 * Dan Allan
265 * Matthias Bussonnier
282 * Matthias Bussonnier
266 * Min ho Kim
283 * Min ho Kim
267 * Oscar Gustafsson
284 * Oscar Gustafsson
268 * Terry Davis
285 * Terry Davis
269
286
270 Issues closed in 7.7
287 Issues closed in 7.7
271 --------------------
288 --------------------
272
289
273 GitHub stats for 2019/07/03 - 2019/07/26 (tag: 7.6.1)
290 GitHub stats for 2019/07/03 - 2019/07/26 (tag: 7.6.1)
274
291
275 These lists are automatically generated, and may be incomplete or contain duplicates.
292 These lists are automatically generated, and may be incomplete or contain duplicates.
276
293
277 We closed 5 issues and merged 9 pull requests.
294 We closed 5 issues and merged 9 pull requests.
278 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.7>`__
295 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.7>`__
279
296
280 The following 8 authors contributed 26 commits.
297 The following 8 authors contributed 26 commits.
281
298
282 * Brandon T. Willard
299 * Brandon T. Willard
283 * juanis2112
300 * juanis2112
284 * lllf
301 * lllf
285 * Matthias Bussonnier
302 * Matthias Bussonnier
286 * Min ho Kim
303 * Min ho Kim
287 * Oriol (Prodesk)
304 * Oriol (Prodesk)
288 * Po-Chuan Hsieh
305 * Po-Chuan Hsieh
289 * techassetskris
306 * techassetskris
290
307
291 Issues closed in 7.6
308 Issues closed in 7.6
292 --------------------
309 --------------------
293
310
294 GitHub stats for 2019/04/24 - 2019/06/28 (tag: 7.5.0)
311 GitHub stats for 2019/04/24 - 2019/06/28 (tag: 7.5.0)
295
312
296 These lists are automatically generated, and may be incomplete or contain duplicates.
313 These lists are automatically generated, and may be incomplete or contain duplicates.
297
314
298 We closed 9 issues and merged 43 pull requests.
315 We closed 9 issues and merged 43 pull requests.
299 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.6>`__
316 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.6>`__
300
317
301 The following 19 authors contributed 144 commits.
318 The following 19 authors contributed 144 commits.
302
319
303 * Alok Singh
320 * Alok Singh
304 * Andreas
321 * Andreas
305 * Antony Lee
322 * Antony Lee
306 * Daniel Hahler
323 * Daniel Hahler
307 * Ed OBrien
324 * Ed OBrien
308 * Kevin Sheppard
325 * Kevin Sheppard
309 * Luciana da Costa Marques
326 * Luciana da Costa Marques
310 * Maor Kleinberger
327 * Maor Kleinberger
311 * Matthias Bussonnier
328 * Matthias Bussonnier
312 * Miro Hrončok
329 * Miro Hrončok
313 * Niclas
330 * Niclas
314 * Nikita Bezdolniy
331 * Nikita Bezdolniy
315 * Oriol Abril
332 * Oriol Abril
316 * Piers Titus van der Torren
333 * Piers Titus van der Torren
317 * Pragnya Srinivasan
334 * Pragnya Srinivasan
318 * Robin Gustafsson
335 * Robin Gustafsson
319 * stonebig
336 * stonebig
320 * Thomas A Caswell
337 * Thomas A Caswell
321 * zzzz-qq
338 * zzzz-qq
322
339
323
340
324 Issues closed in 7.5
341 Issues closed in 7.5
325 --------------------
342 --------------------
326
343
327 GitHub stats for 2019/03/21 - 2019/04/24 (tag: 7.4.0)
344 GitHub stats for 2019/03/21 - 2019/04/24 (tag: 7.4.0)
328
345
329 These lists are automatically generated, and may be incomplete or contain duplicates.
346 These lists are automatically generated, and may be incomplete or contain duplicates.
330
347
331 We closed 2 issues and merged 9 pull requests.
348 We closed 2 issues and merged 9 pull requests.
332 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.5>`__
349 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.5>`__
333
350
334 The following 7 authors contributed 28 commits.
351 The following 7 authors contributed 28 commits.
335
352
336 * Akshay Paropkari
353 * Akshay Paropkari
337 * Benjamin Ragan-Kelley
354 * Benjamin Ragan-Kelley
338 * Ivan Tham
355 * Ivan Tham
339 * Matthias Bussonnier
356 * Matthias Bussonnier
340 * Nick Tallant
357 * Nick Tallant
341 * Sebastian Witowski
358 * Sebastian Witowski
342 * stef-ubuntu
359 * stef-ubuntu
343
360
344
361
345 Issues closed in 7.4
362 Issues closed in 7.4
346 --------------------
363 --------------------
347
364
348 GitHub stats for 2019/02/18 - 2019/03/21 (tag: 7.3.0)
365 GitHub stats for 2019/02/18 - 2019/03/21 (tag: 7.3.0)
349
366
350 These lists are automatically generated, and may be incomplete or contain duplicates.
367 These lists are automatically generated, and may be incomplete or contain duplicates.
351
368
352 We closed 9 issues and merged 20 pull requests.
369 We closed 9 issues and merged 20 pull requests.
353 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.3>`__
370 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.3>`__
354
371
355 The following 23 authors contributed 69 commits.
372 The following 23 authors contributed 69 commits.
356
373
357 * anatoly techtonik
374 * anatoly techtonik
358 * Benjamin Ragan-Kelley
375 * Benjamin Ragan-Kelley
359 * bnables
376 * bnables
360 * Frédéric Chapoton
377 * Frédéric Chapoton
361 * Gabriel Potter
378 * Gabriel Potter
362 * Ian Bell
379 * Ian Bell
363 * Jake VanderPlas
380 * Jake VanderPlas
364 * Jan S. (Milania1)
381 * Jan S. (Milania1)
365 * Jesse Widner
382 * Jesse Widner
366 * jsnydes
383 * jsnydes
367 * Kyungdahm Yun
384 * Kyungdahm Yun
368 * Laurent Gautier
385 * Laurent Gautier
369 * Luciana da Costa Marques
386 * Luciana da Costa Marques
370 * Matan Gover
387 * Matan Gover
371 * Matthias Bussonnier
388 * Matthias Bussonnier
372 * memeplex
389 * memeplex
373 * Mickaël Schoentgen
390 * Mickaël Schoentgen
374 * Partha P. Mukherjee
391 * Partha P. Mukherjee
375 * Philipp A
392 * Philipp A
376 * Sanyam Agarwal
393 * Sanyam Agarwal
377 * Steve Nicholson
394 * Steve Nicholson
378 * Tony Fast
395 * Tony Fast
379 * Wouter Overmeire
396 * Wouter Overmeire
380
397
381
398
382 Issues closed in 7.3
399 Issues closed in 7.3
383 --------------------
400 --------------------
384
401
385 GitHub stats for 2018/11/30 - 2019/02/18 (tag: 7.2.0)
402 GitHub stats for 2018/11/30 - 2019/02/18 (tag: 7.2.0)
386
403
387 These lists are automatically generated, and may be incomplete or contain duplicates.
404 These lists are automatically generated, and may be incomplete or contain duplicates.
388
405
389 We closed 4 issues and merged 20 pull requests.
406 We closed 4 issues and merged 20 pull requests.
390 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.3>`__
407 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.3>`__
391
408
392 The following 17 authors contributed 99 commits.
409 The following 17 authors contributed 99 commits.
393
410
394 * anatoly techtonik
411 * anatoly techtonik
395 * Benjamin Ragan-Kelley
412 * Benjamin Ragan-Kelley
396 * Gabriel Potter
413 * Gabriel Potter
397 * Ian Bell
414 * Ian Bell
398 * Jake VanderPlas
415 * Jake VanderPlas
399 * Jan S. (Milania1)
416 * Jan S. (Milania1)
400 * Jesse Widner
417 * Jesse Widner
401 * Kyungdahm Yun
418 * Kyungdahm Yun
402 * Laurent Gautier
419 * Laurent Gautier
403 * Matthias Bussonnier
420 * Matthias Bussonnier
404 * memeplex
421 * memeplex
405 * Mickaël Schoentgen
422 * Mickaël Schoentgen
406 * Partha P. Mukherjee
423 * Partha P. Mukherjee
407 * Philipp A
424 * Philipp A
408 * Sanyam Agarwal
425 * Sanyam Agarwal
409 * Steve Nicholson
426 * Steve Nicholson
410 * Tony Fast
427 * Tony Fast
411
428
412 Issues closed in 7.2
429 Issues closed in 7.2
413 --------------------
430 --------------------
414
431
415 GitHub stats for 2018/10/28 - 2018/11/29 (tag: 7.1.1)
432 GitHub stats for 2018/10/28 - 2018/11/29 (tag: 7.1.1)
416
433
417 These lists are automatically generated, and may be incomplete or contain duplicates.
434 These lists are automatically generated, and may be incomplete or contain duplicates.
418
435
419 We closed 2 issues and merged 18 pull requests.
436 We closed 2 issues and merged 18 pull requests.
420 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.2>`__
437 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.2>`__
421
438
422 The following 16 authors contributed 95 commits.
439 The following 16 authors contributed 95 commits.
423
440
424 * Antony Lee
441 * Antony Lee
425 * Benjamin Ragan-Kelley
442 * Benjamin Ragan-Kelley
426 * CarsonGSmith
443 * CarsonGSmith
427 * Chris Mentzel
444 * Chris Mentzel
428 * Christopher Brown
445 * Christopher Brown
429 * Dan Allan
446 * Dan Allan
430 * Elliott Morgan Jobson
447 * Elliott Morgan Jobson
431 * is-this-valid
448 * is-this-valid
432 * kd2718
449 * kd2718
433 * Kevin Hess
450 * Kevin Hess
434 * Martin Bergtholdt
451 * Martin Bergtholdt
435 * Matthias Bussonnier
452 * Matthias Bussonnier
436 * Nicholas Bollweg
453 * Nicholas Bollweg
437 * Pavel Karateev
454 * Pavel Karateev
438 * Philipp A
455 * Philipp A
439 * Reuben Morais
456 * Reuben Morais
440
457
441 Issues closed in 7.1
458 Issues closed in 7.1
442 --------------------
459 --------------------
443
460
444 GitHub stats for 2018/09/27 - 2018/10/27 (since tag: 7.0.1)
461 GitHub stats for 2018/09/27 - 2018/10/27 (since tag: 7.0.1)
445
462
446 These lists are automatically generated, and may be incomplete or contain duplicates.
463 These lists are automatically generated, and may be incomplete or contain duplicates.
447
464
448 We closed 31 issues and merged 54 pull requests.
465 We closed 31 issues and merged 54 pull requests.
449 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.1>`__
466 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.1>`__
450
467
451 The following 33 authors contributed 254 commits.
468 The following 33 authors contributed 254 commits.
452
469
453 * ammarmallik
470 * ammarmallik
454 * Audrey Dutcher
471 * Audrey Dutcher
455 * Bart Skowron
472 * Bart Skowron
456 * Benjamin Ragan-Kelley
473 * Benjamin Ragan-Kelley
457 * BinaryCrochet
474 * BinaryCrochet
458 * Chris Barker
475 * Chris Barker
459 * Christopher Moura
476 * Christopher Moura
460 * Dedipyaman Das
477 * Dedipyaman Das
461 * Dominic Kuang
478 * Dominic Kuang
462 * Elyashiv
479 * Elyashiv
463 * Emil Hessman
480 * Emil Hessman
464 * felixzhuologist
481 * felixzhuologist
465 * hongshaoyang
482 * hongshaoyang
466 * Hugo
483 * Hugo
467 * kd2718
484 * kd2718
468 * kory donati
485 * kory donati
469 * Kory Donati
486 * Kory Donati
470 * koryd
487 * koryd
471 * luciana
488 * luciana
472 * luz.paz
489 * luz.paz
473 * Massimo Santini
490 * Massimo Santini
474 * Matthias Bussonnier
491 * Matthias Bussonnier
475 * Matthias Geier
492 * Matthias Geier
476 * meeseeksdev[bot]
493 * meeseeksdev[bot]
477 * Michael Penkov
494 * Michael Penkov
478 * Mukesh Bhandarkar
495 * Mukesh Bhandarkar
479 * Nguyen Duy Hai
496 * Nguyen Duy Hai
480 * Roy Wellington Ⅳ
497 * Roy Wellington Ⅳ
481 * Sha Liu
498 * Sha Liu
482 * Shao Yang
499 * Shao Yang
483 * Shashank Kumar
500 * Shashank Kumar
484 * Tony Fast
501 * Tony Fast
485 * wim glenn
502 * wim glenn
486
503
487
504
488 Issues closed in 7.0
505 Issues closed in 7.0
489 --------------------
506 --------------------
490
507
491 GitHub stats for 2018/07/29 - 2018/09/27 (since tag: 6.5.0)
508 GitHub stats for 2018/07/29 - 2018/09/27 (since tag: 6.5.0)
492
509
493 These lists are automatically generated, and may be incomplete or contain duplicates.
510 These lists are automatically generated, and may be incomplete or contain duplicates.
494
511
495 We closed 20 issues and merged 76 pull requests.
512 We closed 20 issues and merged 76 pull requests.
496 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.0>`__
513 The full list can be seen `on GitHub <https://github.com/ipython/ipython/issues?q=milestone%3A7.0>`__
497
514
498 The following 49 authors contributed 471 commits.
515 The following 49 authors contributed 471 commits.
499
516
500 * alphaCTzo7G
517 * alphaCTzo7G
501 * Alyssa Whitwell
518 * Alyssa Whitwell
502 * Anatol Ulrich
519 * Anatol Ulrich
503 * apunisal
520 * apunisal
504 * Benjamin Ragan-Kelley
521 * Benjamin Ragan-Kelley
505 * Chaz Reid
522 * Chaz Reid
506 * Christoph
523 * Christoph
507 * Dale Jung
524 * Dale Jung
508 * Dave Hirschfeld
525 * Dave Hirschfeld
509 * dhirschf
526 * dhirschf
510 * Doug Latornell
527 * Doug Latornell
511 * Fernando Perez
528 * Fernando Perez
512 * Fred Mitchell
529 * Fred Mitchell
513 * Gabriel Potter
530 * Gabriel Potter
514 * gpotter2
531 * gpotter2
515 * Grant Nestor
532 * Grant Nestor
516 * hongshaoyang
533 * hongshaoyang
517 * Hugo
534 * Hugo
518 * J Forde
535 * J Forde
519 * Jonathan Slenders
536 * Jonathan Slenders
520 * Jörg Dietrich
537 * Jörg Dietrich
521 * Kyle Kelley
538 * Kyle Kelley
522 * luz.paz
539 * luz.paz
523 * M Pacer
540 * M Pacer
524 * Matthew R. Scott
541 * Matthew R. Scott
525 * Matthew Seal
542 * Matthew Seal
526 * Matthias Bussonnier
543 * Matthias Bussonnier
527 * meeseeksdev[bot]
544 * meeseeksdev[bot]
528 * Michael Käufl
545 * Michael Käufl
529 * Olesya Baranova
546 * Olesya Baranova
530 * oscar6echo
547 * oscar6echo
531 * Paul Ganssle
548 * Paul Ganssle
532 * Paul Ivanov
549 * Paul Ivanov
533 * Peter Parente
550 * Peter Parente
534 * prasanth
551 * prasanth
535 * Shailyn javier Ortiz jimenez
552 * Shailyn javier Ortiz jimenez
536 * Sourav Singh
553 * Sourav Singh
537 * Srinivas Reddy Thatiparthy
554 * Srinivas Reddy Thatiparthy
538 * Steven Silvester
555 * Steven Silvester
539 * stonebig
556 * stonebig
540 * Subhendu Ranjan Mishra
557 * Subhendu Ranjan Mishra
541 * Takafumi Arakaki
558 * Takafumi Arakaki
542 * Thomas A Caswell
559 * Thomas A Caswell
543 * Thomas Kluyver
560 * Thomas Kluyver
544 * Todd
561 * Todd
545 * Wei Yen
562 * Wei Yen
546 * Yarko Tymciurak
563 * Yarko Tymciurak
547 * Yutao Yuan
564 * Yutao Yuan
548 * Zi Chong Kao
565 * Zi Chong Kao
@@ -1,1066 +1,1146 b''
1 ============
1 ============
2 7.x Series
2 7.x Series
3 ============
3 ============
4
4
5 .. _version 717:
6
7 IPython 7.17
8 ============
9
10 IPython 7.17 brings a couple of new improvements to API and a couple of user
11 facing changes to make the terminal experience more user friendly.
12
13 :ghpull:`12407` introduces the ability to pass extra argument to the IPython
14 debugger class; this is to help a new project from ``kmaork``
15 (https://github.com/kmaork/madbg) to feature a fully remote debugger.
16
17 :ghpull:`12410` finally remove support for 3.6, while the codebase is still
18 technically compatible; IPython will not install on Python 3.6.
19
20 lots of work on the debugger and hidden frames from ``@impact27`` in
21 :ghpull:`12437`, :ghpull:`12445`, :ghpull:`12460` and in particular
22 :ghpull:`12453` which make the debug magic more robust at handling spaces.
23
24 Biggest API addition is code transformation which is done before code execution;
25 IPython allows a number of hooks to catch non-valid Python syntax (magic, prompt
26 stripping...etc). Transformers are usually called many time; typically:
27
28 - When trying to figure out whether the code is complete and valid (should we
29 insert a new line or execute ?)
30 - During actual code execution pass before giving the code to Python's
31 ``exec``.
32
33 This lead to issues when transformer might have had side effects; or do external
34 queries. Starting with IPython 7.17 you can expect your transformer to be called
35 less time.
36
37 Input transformers are now called only once in the execution path of
38 `InteractiveShell`, allowing to register transformer that potentially have side
39 effects (note that this is not recommended). Internal methods `should_run_async`, and
40 `run_cell_async` now take a recommended optional `transformed_cell`, and
41 `preprocessing_exc_tuple` parameters that will become mandatory at some point in
42 the future; that is to say cells need to be explicitly transformed to be valid
43 Python syntax ahead of trying to run them. :ghpull:`12440`;
44
45 ``input_transformers`` can now also have an attribute ``has_side_effects`` set
46 to `True`, when this attribute is present; this will prevent the transformers
47 from being ran when IPython is trying to guess whether the user input is
48 complete. Note that this may means you will need to explicitly execute in some
49 case where your transformations are now not ran; but will not affect users with
50 no custom extensions.
51
52
53 API Changes
54 -----------
55
56 Change of API and exposed objects automatically detected using `frappuccino
57 <https://pypi.org/project/frappuccino/>`_
58
59
60 The following items are new since 7.16.0::
61
62 + IPython.core.interactiveshell.InteractiveShell.get_local_scope(self, stack_depth)
63
64 The following signatures differ since 7.16.0::
65
66 - IPython.core.interactiveshell.InteractiveShell.run_cell_async(self, raw_cell, store_history=False, silent=False, shell_futures=True)
67 + IPython.core.interactiveshell.InteractiveShell.run_cell_async(self, raw_cell, store_history=False, silent=False, shell_futures=True, *, transformed_cell=None, preprocessing_exc_tuple=None)
68
69 - IPython.core.interactiveshell.InteractiveShell.should_run_async(self, raw_cell)
70 + IPython.core.interactiveshell.InteractiveShell.should_run_async(self, raw_cell, *, transformed_cell=None, preprocessing_exc_tuple=None)
71
72 - IPython.terminal.debugger.TerminalPdb.pt_init(self)
73 + IPython.terminal.debugger.TerminalPdb.pt_init(self, pt_session_options=None)
74
75 This method was added::
76
77 + IPython.core.interactiveshell.InteractiveShell.get_local_scope
78
79 Which is now also present on subclasses::
80
81 + IPython.terminal.embed.InteractiveShellEmbed.get_local_scope
82 + IPython.terminal.interactiveshell.TerminalInteractiveShell.get_local_scope
83
84
5 .. _version 716:
85 .. _version 716:
6
86
7 IPython 7.16
87 IPython 7.16
8 ============
88 ============
9
89
10
90
11 The default traceback mode will now skip frames that are marked with
91 The default traceback mode will now skip frames that are marked with
12 ``__tracebackhide__ = True`` and show how many traceback frames have been
92 ``__tracebackhide__ = True`` and show how many traceback frames have been
13 skipped. This can be toggled by using :magic:`xmode` with the ``--show`` or
93 skipped. This can be toggled by using :magic:`xmode` with the ``--show`` or
14 ``--hide`` attribute. It will have no effect on non verbose traceback modes.
94 ``--hide`` attribute. It will have no effect on non verbose traceback modes.
15
95
16 The ipython debugger also now understands ``__tracebackhide__`` as well and will
96 The ipython debugger also now understands ``__tracebackhide__`` as well and will
17 skip hidden frames when displaying. Movement up and down the stack will skip the
97 skip hidden frames when displaying. Movement up and down the stack will skip the
18 hidden frames and will show how many frames were hidden. Internal IPython frames
98 hidden frames and will show how many frames were hidden. Internal IPython frames
19 are also now hidden by default. The behavior can be changed with the
99 are also now hidden by default. The behavior can be changed with the
20 ``skip_hidden`` while in the debugger, command and accepts "yes", "no", "true"
100 ``skip_hidden`` while in the debugger, command and accepts "yes", "no", "true"
21 and "false" case insensitive parameters.
101 and "false" case insensitive parameters.
22
102
23
103
24 Misc Noticeable changes:
104 Misc Noticeable changes:
25 ------------------------
105 ------------------------
26
106
27 - Exceptions are now (re)raised when running notebooks via the :magic:`%run`, helping to catch issues in workflows and
107 - Exceptions are now (re)raised when running notebooks via the :magic:`%run`, helping to catch issues in workflows and
28 pipelines. :ghpull:`12301`
108 pipelines. :ghpull:`12301`
29 - Fix inputhook for qt 5.15.0 :ghpull:`12355`
109 - Fix inputhook for qt 5.15.0 :ghpull:`12355`
30 - Fix wx inputhook :ghpull:`12375`
110 - Fix wx inputhook :ghpull:`12375`
31 - Add handling for malformed pathext env var (Windows) :ghpull:`12367`
111 - Add handling for malformed pathext env var (Windows) :ghpull:`12367`
32 - use $SHELL in system_piped :ghpull:`12360` for uniform behavior with
112 - use $SHELL in system_piped :ghpull:`12360` for uniform behavior with
33 ipykernel.
113 ipykernel.
34
114
35 Reproducible Build
115 Reproducible Build
36 ------------------
116 ------------------
37
117
38 IPython 7.15 reproducible build did not work, so we try again this month
118 IPython 7.15 reproducible build did not work, so we try again this month
39 :ghpull:`12358`.
119 :ghpull:`12358`.
40
120
41
121
42 API Changes
122 API Changes
43 -----------
123 -----------
44
124
45 Change of API and exposed objects automatically detected using `frappuccino
125 Change of API and exposed objects automatically detected using `frappuccino
46 <https://pypi.org/project/frappuccino/>`_ (still in beta):
126 <https://pypi.org/project/frappuccino/>`_ (still in beta):
47
127
48
128
49 The following items are new and mostly related to understanding ``__tracebackbhide__``::
129 The following items are new and mostly related to understanding ``__tracebackbhide__``::
50
130
51 + IPython.core.debugger.Pdb.do_down(self, arg)
131 + IPython.core.debugger.Pdb.do_down(self, arg)
52 + IPython.core.debugger.Pdb.do_skip_hidden(self, arg)
132 + IPython.core.debugger.Pdb.do_skip_hidden(self, arg)
53 + IPython.core.debugger.Pdb.do_up(self, arg)
133 + IPython.core.debugger.Pdb.do_up(self, arg)
54 + IPython.core.debugger.Pdb.hidden_frames(self, stack)
134 + IPython.core.debugger.Pdb.hidden_frames(self, stack)
55 + IPython.core.debugger.Pdb.stop_here(self, frame)
135 + IPython.core.debugger.Pdb.stop_here(self, frame)
56
136
57
137
58 The following items have been removed::
138 The following items have been removed::
59
139
60 - IPython.core.debugger.Pdb.new_do_down
140 - IPython.core.debugger.Pdb.new_do_down
61 - IPython.core.debugger.Pdb.new_do_up
141 - IPython.core.debugger.Pdb.new_do_up
62
142
63 Those were implementation details.
143 Those were implementation details.
64
144
65
145
66 .. _version 715:
146 .. _version 715:
67
147
68 IPython 7.15
148 IPython 7.15
69 ============
149 ============
70
150
71 IPython 7.15 brings a number of bug fixes and user facing improvements.
151 IPython 7.15 brings a number of bug fixes and user facing improvements.
72
152
73 Misc Noticeable changes:
153 Misc Noticeable changes:
74 ------------------------
154 ------------------------
75
155
76 - Long completion name have better elision in terminal :ghpull:`12284`
156 - Long completion name have better elision in terminal :ghpull:`12284`
77 - I've started to test on Python 3.9 :ghpull:`12307` and fix some errors.
157 - I've started to test on Python 3.9 :ghpull:`12307` and fix some errors.
78 - Hi DPI scaling of figures when using qt eventloop :ghpull:`12314`
158 - Hi DPI scaling of figures when using qt eventloop :ghpull:`12314`
79 - Document the ability to have systemwide configuration for IPython.
159 - Document the ability to have systemwide configuration for IPython.
80 :ghpull:`12328`
160 :ghpull:`12328`
81 - Fix issues with input autoformatting :ghpull:`12336`
161 - Fix issues with input autoformatting :ghpull:`12336`
82 - ``IPython.core.debugger.Pdb`` is now interruptible (:ghpull:`12168`, in 7.14
162 - ``IPython.core.debugger.Pdb`` is now interruptible (:ghpull:`12168`, in 7.14
83 but forgotten in release notes)
163 but forgotten in release notes)
84 - Video HTML attributes (:ghpull:`12212`, in 7.14 but forgotten in release
164 - Video HTML attributes (:ghpull:`12212`, in 7.14 but forgotten in release
85 notes)
165 notes)
86
166
87 Reproducible Build
167 Reproducible Build
88 ------------------
168 ------------------
89
169
90 Starting with IPython 7.15, I am attempting to provide reproducible builds,
170 Starting with IPython 7.15, I am attempting to provide reproducible builds,
91 that is to say you should be able from the source tree to generate an sdist
171 that is to say you should be able from the source tree to generate an sdist
92 and wheel that are identical byte for byte with the publish version on PyPI.
172 and wheel that are identical byte for byte with the publish version on PyPI.
93
173
94 I've only tested on a couple of machines so far and the process is relatively
174 I've only tested on a couple of machines so far and the process is relatively
95 straightforward, so this mean that IPython not only have a deterministic build
175 straightforward, so this mean that IPython not only have a deterministic build
96 process, but also I have either removed, or put under control all effects of
176 process, but also I have either removed, or put under control all effects of
97 the build environments on the final artifact. I encourage you to attempt the
177 the build environments on the final artifact. I encourage you to attempt the
98 build process on your machine as documented in :ref:`core_developer_guide`
178 build process on your machine as documented in :ref:`core_developer_guide`
99 and let me know if you do not obtain an identical artifact.
179 and let me know if you do not obtain an identical artifact.
100
180
101 While reproducible builds is critical to check that the supply chain of (open
181 While reproducible builds is critical to check that the supply chain of (open
102 source) software has not been compromised, it can also help to speedup many
182 source) software has not been compromised, it can also help to speedup many
103 of the build processes in large environment (conda, apt...) by allowing
183 of the build processes in large environment (conda, apt...) by allowing
104 better caching of intermediate build steps.
184 better caching of intermediate build steps.
105
185
106 Learn more on `<https://reproducible-builds.org/>`_. `Reflections on trusting
186 Learn more on `<https://reproducible-builds.org/>`_. `Reflections on trusting
107 trust <https://dl.acm.org/doi/10.1145/358198.358210>`_ is also one of the
187 trust <https://dl.acm.org/doi/10.1145/358198.358210>`_ is also one of the
108 cornerstone and recommended reads on this subject.
188 cornerstone and recommended reads on this subject.
109
189
110 .. note::
190 .. note::
111
191
112 The build commit from which the sdist is generated is also `signed
192 The build commit from which the sdist is generated is also `signed
113 <https://en.wikipedia.org/wiki/Digital_signature>`_, so you should be able to
193 <https://en.wikipedia.org/wiki/Digital_signature>`_, so you should be able to
114 check it has not been compromised, and the git repository is a `merkle-tree
194 check it has not been compromised, and the git repository is a `merkle-tree
115 <https://en.wikipedia.org/wiki/Merkle_tree>`_, you can check the consistency
195 <https://en.wikipedia.org/wiki/Merkle_tree>`_, you can check the consistency
116 with `git-fsck <https://git-scm.com/docs/git-fsck>`_ which you likely `want
196 with `git-fsck <https://git-scm.com/docs/git-fsck>`_ which you likely `want
117 to enable by default
197 to enable by default
118 <https://gist.github.com/mbbx6spp/14b86437e794bffb4120>`_.
198 <https://gist.github.com/mbbx6spp/14b86437e794bffb4120>`_.
119
199
120 NEP29: Last version to support Python 3.6
200 NEP29: Last version to support Python 3.6
121 -----------------------------------------
201 -----------------------------------------
122
202
123 IPython 7.15 will be the Last IPython version to officially support Python
203 IPython 7.15 will be the Last IPython version to officially support Python
124 3.6, as stated by `NumPy Enhancement Proposal 29
204 3.6, as stated by `NumPy Enhancement Proposal 29
125 <https://numpy.org/neps/nep-0029-deprecation_policy.html>`_. Starting with
205 <https://numpy.org/neps/nep-0029-deprecation_policy.html>`_. Starting with
126 next minor version of IPython I may stop testing on Python 3.6 and may stop
206 next minor version of IPython I may stop testing on Python 3.6 and may stop
127 publishing release artifacts that install on Python 3.6
207 publishing release artifacts that install on Python 3.6
128
208
129 Highlighted features
209 Highlighted features
130 --------------------
210 --------------------
131
211
132 Highlighted features are not new, but seem to not be widely known, this
212 Highlighted features are not new, but seem to not be widely known, this
133 section will help you discover in more narrative form what you can do with
213 section will help you discover in more narrative form what you can do with
134 IPython.
214 IPython.
135
215
136 Increase Tab Completion Menu Height
216 Increase Tab Completion Menu Height
137 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
217 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
138
218
139 In terminal IPython it is possible to increase the hight of the tab-completion
219 In terminal IPython it is possible to increase the hight of the tab-completion
140 menu. To do so set the value of
220 menu. To do so set the value of
141 :configtrait:`TerminalInteractiveShell.space_for_menu`, this will reserve more
221 :configtrait:`TerminalInteractiveShell.space_for_menu`, this will reserve more
142 space at the bottom of the screen for various kind of menus in IPython including
222 space at the bottom of the screen for various kind of menus in IPython including
143 tab completion and searching in history.
223 tab completion and searching in history.
144
224
145 Autoformat Code in the terminal
225 Autoformat Code in the terminal
146 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
226 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
147
227
148 If you have a preferred code formatter, you can configure IPython to
228 If you have a preferred code formatter, you can configure IPython to
149 reformat your code. Set the value of
229 reformat your code. Set the value of
150 :configtrait:`TerminalInteractiveShell.autoformatter` to for example ``'black'``
230 :configtrait:`TerminalInteractiveShell.autoformatter` to for example ``'black'``
151 and IPython will auto format your code when possible.
231 and IPython will auto format your code when possible.
152
232
153
233
154 .. _version 714:
234 .. _version 714:
155
235
156 IPython 7.14
236 IPython 7.14
157 ============
237 ============
158
238
159 IPython 7.14 is a minor release that fix a couple of bugs and prepare
239 IPython 7.14 is a minor release that fix a couple of bugs and prepare
160 compatibility with new or future versions of some libraries.
240 compatibility with new or future versions of some libraries.
161
241
162 Important changes:
242 Important changes:
163 ------------------
243 ------------------
164
244
165 - Fix compatibility with Sphinx 3+ :ghpull:`12235`
245 - Fix compatibility with Sphinx 3+ :ghpull:`12235`
166 - Remove deprecated matplotlib parameter usage, compatibility with matplotlib
246 - Remove deprecated matplotlib parameter usage, compatibility with matplotlib
167 3.3+ :`122250`
247 3.3+ :`122250`
168
248
169 Misc Changes
249 Misc Changes
170 ------------
250 ------------
171
251
172 - set ``.py`` extension when editing current buffer in vi/emacs. :ghpull:`12167`
252 - set ``.py`` extension when editing current buffer in vi/emacs. :ghpull:`12167`
173 - support for unicode identifiers in ``?``/``??`` :ghpull:`12208`
253 - support for unicode identifiers in ``?``/``??`` :ghpull:`12208`
174 - add extra options to the ``Video`` Rich objects :ghpull:`12212`
254 - add extra options to the ``Video`` Rich objects :ghpull:`12212`
175 - add pretty-printing to ``SimpleNamespace`` :ghpull:`12230`
255 - add pretty-printing to ``SimpleNamespace`` :ghpull:`12230`
176
256
177 IPython.core.debugger.Pdb is now interruptible
257 IPython.core.debugger.Pdb is now interruptible
178 ----------------------------------------------
258 ----------------------------------------------
179
259
180 A ``KeyboardInterrupt`` will now interrupt IPython's extended debugger, in order to make Jupyter able to interrupt it. (:ghpull:`12168`)
260 A ``KeyboardInterrupt`` will now interrupt IPython's extended debugger, in order to make Jupyter able to interrupt it. (:ghpull:`12168`)
181
261
182 Video HTML attributes
262 Video HTML attributes
183 ---------------------
263 ---------------------
184
264
185 Add an option to `IPython.display.Video` to change the attributes of the HTML display of the video (:ghpull:`12212`)
265 Add an option to `IPython.display.Video` to change the attributes of the HTML display of the video (:ghpull:`12212`)
186
266
187
267
188 Pending deprecated imports
268 Pending deprecated imports
189 --------------------------
269 --------------------------
190
270
191 Many object present in ``IPython.core.display`` are there for internal use only,
271 Many object present in ``IPython.core.display`` are there for internal use only,
192 and should already been imported from ``IPython.display`` by users and external
272 and should already been imported from ``IPython.display`` by users and external
193 libraries. Trying to import those from ``IPython.core.display`` is still possible
273 libraries. Trying to import those from ``IPython.core.display`` is still possible
194 but will trigger a
274 but will trigger a
195 deprecation warning in later versions of IPython and will become errors in the
275 deprecation warning in later versions of IPython and will become errors in the
196 future.
276 future.
197
277
198 This will simplify compatibility with other Python kernels (like Xeus-Python),
278 This will simplify compatibility with other Python kernels (like Xeus-Python),
199 and simplify code base.
279 and simplify code base.
200
280
201
281
202
282
203
283
204 .. _version 713:
284 .. _version 713:
205
285
206 IPython 7.13
286 IPython 7.13
207 ============
287 ============
208
288
209 IPython 7.13 is the final release of the 7.x branch since master is diverging
289 IPython 7.13 is the final release of the 7.x branch since master is diverging
210 toward an 8.0. Exiting new features have already been merged in 8.0 and will
290 toward an 8.0. Exiting new features have already been merged in 8.0 and will
211 not be available on the 7.x branch. All the changes below have been backported
291 not be available on the 7.x branch. All the changes below have been backported
212 from the master branch.
292 from the master branch.
213
293
214
294
215 - Fix inability to run PDB when inside an event loop :ghpull:`12141`
295 - Fix inability to run PDB when inside an event loop :ghpull:`12141`
216 - Fix ability to interrupt some processes on windows :ghpull:`12137`
296 - Fix ability to interrupt some processes on windows :ghpull:`12137`
217 - Fix debugger shortcuts :ghpull:`12132`
297 - Fix debugger shortcuts :ghpull:`12132`
218 - improve tab completion when inside a string by removing irrelevant elements :ghpull:`12128`
298 - improve tab completion when inside a string by removing irrelevant elements :ghpull:`12128`
219 - Fix display of filename tab completion when the path is long :ghpull:`12122`
299 - Fix display of filename tab completion when the path is long :ghpull:`12122`
220 - Many removal of Python 2 specific code path :ghpull:`12110`
300 - Many removal of Python 2 specific code path :ghpull:`12110`
221 - displaying wav files do not require NumPy anymore, and is 5x to 30x faster :ghpull:`12113`
301 - displaying wav files do not require NumPy anymore, and is 5x to 30x faster :ghpull:`12113`
222
302
223 See the list of all closed issues and pull request on `github
303 See the list of all closed issues and pull request on `github
224 <https://github.com/ipython/ipython/pulls?q=is%3Aclosed+milestone%3A7.13>`_.
304 <https://github.com/ipython/ipython/pulls?q=is%3Aclosed+milestone%3A7.13>`_.
225
305
226 .. _version 712:
306 .. _version 712:
227
307
228 IPython 7.12
308 IPython 7.12
229 ============
309 ============
230
310
231 IPython 7.12 is a minor update that mostly brings code cleanup, removal of
311 IPython 7.12 is a minor update that mostly brings code cleanup, removal of
232 longtime deprecated function and a couple update to documentation cleanup as well.
312 longtime deprecated function and a couple update to documentation cleanup as well.
233
313
234 Notable changes are the following:
314 Notable changes are the following:
235
315
236 - Exit non-zero when ipython is given a file path to run that doesn't exist :ghpull:`12074`
316 - Exit non-zero when ipython is given a file path to run that doesn't exist :ghpull:`12074`
237 - Test PR on ARM64 with Travis-CI :ghpull:`12073`
317 - Test PR on ARM64 with Travis-CI :ghpull:`12073`
238 - Update CI to work with latest Pytest :ghpull:`12086`
318 - Update CI to work with latest Pytest :ghpull:`12086`
239 - Add infrastructure to run ipykernel eventloop via trio :ghpull:`12097`
319 - Add infrastructure to run ipykernel eventloop via trio :ghpull:`12097`
240 - Support git blame ignore revs :ghpull:`12091`
320 - Support git blame ignore revs :ghpull:`12091`
241 - Start multi-line ``__repr__`` s on their own line :ghpull:`12099`
321 - Start multi-line ``__repr__`` s on their own line :ghpull:`12099`
242
322
243 .. _version 7111:
323 .. _version 7111:
244
324
245 IPython 7.11.1
325 IPython 7.11.1
246 ==============
326 ==============
247
327
248 A couple of deprecated functions (no-op) have been reintroduces in py3compat as
328 A couple of deprecated functions (no-op) have been reintroduces in py3compat as
249 Cython was still relying on them, and will be removed in a couple of versions.
329 Cython was still relying on them, and will be removed in a couple of versions.
250
330
251 .. _version 711:
331 .. _version 711:
252
332
253 IPython 7.11
333 IPython 7.11
254 ============
334 ============
255
335
256 IPython 7.11 received a couple of compatibility fixes and code cleanup.
336 IPython 7.11 received a couple of compatibility fixes and code cleanup.
257
337
258 A number of function in the ``py3compat`` have been removed; a number of types
338 A number of function in the ``py3compat`` have been removed; a number of types
259 in the IPython code base are now non-ambiguous and now always ``unicode``
339 in the IPython code base are now non-ambiguous and now always ``unicode``
260 instead of ``Union[Unicode,bytes]``; many of the relevant code path have thus
340 instead of ``Union[Unicode,bytes]``; many of the relevant code path have thus
261 been simplified/cleaned and types annotation added.
341 been simplified/cleaned and types annotation added.
262
342
263 IPython support several verbosity level from exceptions. ``xmode plain`` now
343 IPython support several verbosity level from exceptions. ``xmode plain`` now
264 support chained exceptions. :ghpull:`11999`
344 support chained exceptions. :ghpull:`11999`
265
345
266 We are starting to remove ``shell=True`` in some usages of subprocess. While not directly
346 We are starting to remove ``shell=True`` in some usages of subprocess. While not directly
267 a security issue (as IPython is made to run arbitrary code anyway) it is not good
347 a security issue (as IPython is made to run arbitrary code anyway) it is not good
268 practice and we'd like to show the example. :ghissue:`12023`. This discussion
348 practice and we'd like to show the example. :ghissue:`12023`. This discussion
269 was started by ``@mschwager`` thanks to a new auditing tool they are working on
349 was started by ``@mschwager`` thanks to a new auditing tool they are working on
270 with duo-labs (`dlint <https://github.com/duo-labs/dlint>`_).
350 with duo-labs (`dlint <https://github.com/duo-labs/dlint>`_).
271
351
272 Work around some bugs in Python 3.9 tokenizer :ghpull:`12057`
352 Work around some bugs in Python 3.9 tokenizer :ghpull:`12057`
273
353
274 IPython will now print its version after a crash. :ghpull:`11986`
354 IPython will now print its version after a crash. :ghpull:`11986`
275
355
276 This is likely the last release from the 7.x series that will see new feature.
356 This is likely the last release from the 7.x series that will see new feature.
277 The master branch will soon accept large code changes and thrilling new
357 The master branch will soon accept large code changes and thrilling new
278 features; the 7.x branch will only start to accept critical bug fixes, and
358 features; the 7.x branch will only start to accept critical bug fixes, and
279 update dependencies.
359 update dependencies.
280
360
281 .. _version 7102:
361 .. _version 7102:
282
362
283 IPython 7.10.2
363 IPython 7.10.2
284 ==============
364 ==============
285
365
286 IPython 7.10.2 fix a couple of extra incompatibility between IPython, ipdb,
366 IPython 7.10.2 fix a couple of extra incompatibility between IPython, ipdb,
287 asyncio and Prompt Toolkit 3.
367 asyncio and Prompt Toolkit 3.
288
368
289 .. _version 7101:
369 .. _version 7101:
290
370
291 IPython 7.10.1
371 IPython 7.10.1
292 ==============
372 ==============
293
373
294 IPython 7.10.1 fix a couple of incompatibilities with Prompt toolkit 3 (please
374 IPython 7.10.1 fix a couple of incompatibilities with Prompt toolkit 3 (please
295 update Prompt toolkit to 3.0.2 at least), and fixes some interaction with
375 update Prompt toolkit to 3.0.2 at least), and fixes some interaction with
296 headless IPython.
376 headless IPython.
297
377
298 .. _version 7100:
378 .. _version 7100:
299
379
300 IPython 7.10.0
380 IPython 7.10.0
301 ==============
381 ==============
302
382
303 IPython 7.10 is the first double digit minor release in the last decade, and
383 IPython 7.10 is the first double digit minor release in the last decade, and
304 first since the release of IPython 1.0, previous double digit minor release was
384 first since the release of IPython 1.0, previous double digit minor release was
305 in August 2009.
385 in August 2009.
306
386
307 We've been trying to give you regular release on the last Friday of every month
387 We've been trying to give you regular release on the last Friday of every month
308 for a guaranty of rapid access to bug fixes and new features.
388 for a guaranty of rapid access to bug fixes and new features.
309
389
310 Unlike the previous first few releases that have seen only a couple of code
390 Unlike the previous first few releases that have seen only a couple of code
311 changes, 7.10 bring a number of changes, new features and bugfixes.
391 changes, 7.10 bring a number of changes, new features and bugfixes.
312
392
313 Stop Support for Python 3.5 – Adopt NEP 29
393 Stop Support for Python 3.5 – Adopt NEP 29
314 ------------------------------------------
394 ------------------------------------------
315
395
316 IPython has decided to follow the informational `NEP 29
396 IPython has decided to follow the informational `NEP 29
317 <https://numpy.org/neps/nep-0029-deprecation_policy.html>`_ which layout a clear
397 <https://numpy.org/neps/nep-0029-deprecation_policy.html>`_ which layout a clear
318 policy as to which version of (C)Python and NumPy are supported.
398 policy as to which version of (C)Python and NumPy are supported.
319
399
320 We thus dropped support for Python 3.5, and cleaned up a number of code path
400 We thus dropped support for Python 3.5, and cleaned up a number of code path
321 that were Python-version dependant. If you are on 3.5 or earlier pip should
401 that were Python-version dependant. If you are on 3.5 or earlier pip should
322 automatically give you the latest compatible version of IPython so you do not
402 automatically give you the latest compatible version of IPython so you do not
323 need to pin to a given version.
403 need to pin to a given version.
324
404
325 Support for Prompt Toolkit 3.0
405 Support for Prompt Toolkit 3.0
326 ------------------------------
406 ------------------------------
327
407
328 Prompt Toolkit 3.0 was release a week before IPython 7.10 and introduces a few
408 Prompt Toolkit 3.0 was release a week before IPython 7.10 and introduces a few
329 breaking changes. We believe IPython 7.10 should be compatible with both Prompt
409 breaking changes. We believe IPython 7.10 should be compatible with both Prompt
330 Toolkit 2.x and 3.x, though it has not been extensively tested with 3.x so
410 Toolkit 2.x and 3.x, though it has not been extensively tested with 3.x so
331 please report any issues.
411 please report any issues.
332
412
333
413
334 Prompt Rendering Performance improvements
414 Prompt Rendering Performance improvements
335 -----------------------------------------
415 -----------------------------------------
336
416
337 Pull Request :ghpull:`11933` introduced an optimisation in the prompt rendering
417 Pull Request :ghpull:`11933` introduced an optimisation in the prompt rendering
338 logic that should decrease the resource usage of IPython when using the
418 logic that should decrease the resource usage of IPython when using the
339 _default_ configuration but could potentially introduce a regression of
419 _default_ configuration but could potentially introduce a regression of
340 functionalities if you are using a custom prompt.
420 functionalities if you are using a custom prompt.
341
421
342 We know assume if you haven't changed the default keybindings that the prompt
422 We know assume if you haven't changed the default keybindings that the prompt
343 **will not change** during the duration of your input – which is for example
423 **will not change** during the duration of your input – which is for example
344 not true when using vi insert mode that switches between `[ins]` and `[nor]`
424 not true when using vi insert mode that switches between `[ins]` and `[nor]`
345 for the current mode.
425 for the current mode.
346
426
347 If you are experiencing any issue let us know.
427 If you are experiencing any issue let us know.
348
428
349 Code autoformatting
429 Code autoformatting
350 -------------------
430 -------------------
351
431
352 The IPython terminal can now auto format your code just before entering a new
432 The IPython terminal can now auto format your code just before entering a new
353 line or executing a command. To do so use the
433 line or executing a command. To do so use the
354 ``--TerminalInteractiveShell.autoformatter`` option and set it to ``'black'``;
434 ``--TerminalInteractiveShell.autoformatter`` option and set it to ``'black'``;
355 if black is installed IPython will use black to format your code when possible.
435 if black is installed IPython will use black to format your code when possible.
356
436
357 IPython cannot always properly format your code; in particular it will
437 IPython cannot always properly format your code; in particular it will
358 auto formatting with *black* will only work if:
438 auto formatting with *black* will only work if:
359
439
360 - Your code does not contains magics or special python syntax.
440 - Your code does not contains magics or special python syntax.
361
441
362 - There is no code after your cursor.
442 - There is no code after your cursor.
363
443
364 The Black API is also still in motion; so this may not work with all versions of
444 The Black API is also still in motion; so this may not work with all versions of
365 black.
445 black.
366
446
367 It should be possible to register custom formatter, though the API is till in
447 It should be possible to register custom formatter, though the API is till in
368 flux.
448 flux.
369
449
370 Arbitrary Mimetypes Handing in Terminal (Aka inline images in terminal)
450 Arbitrary Mimetypes Handing in Terminal (Aka inline images in terminal)
371 -----------------------------------------------------------------------
451 -----------------------------------------------------------------------
372
452
373 When using IPython terminal it is now possible to register function to handle
453 When using IPython terminal it is now possible to register function to handle
374 arbitrary mimetypes. While rendering non-text based representation was possible in
454 arbitrary mimetypes. While rendering non-text based representation was possible in
375 many jupyter frontend; it was not possible in terminal IPython, as usually
455 many jupyter frontend; it was not possible in terminal IPython, as usually
376 terminal are limited to displaying text. As many terminal these days provide
456 terminal are limited to displaying text. As many terminal these days provide
377 escape sequences to display non-text; bringing this loved feature to IPython CLI
457 escape sequences to display non-text; bringing this loved feature to IPython CLI
378 made a lot of sens. This functionality will not only allow inline images; but
458 made a lot of sens. This functionality will not only allow inline images; but
379 allow opening of external program; for example ``mplayer`` to "display" sound
459 allow opening of external program; for example ``mplayer`` to "display" sound
380 files.
460 files.
381
461
382 So far only the hooks necessary for this are in place, but no default mime
462 So far only the hooks necessary for this are in place, but no default mime
383 renderers added; so inline images will only be available via extensions. We will
463 renderers added; so inline images will only be available via extensions. We will
384 progressively enable these features by default in the next few releases, and
464 progressively enable these features by default in the next few releases, and
385 contribution is welcomed.
465 contribution is welcomed.
386
466
387 We welcome any feedback on the API. See :ref:`shell_mimerenderer` for more
467 We welcome any feedback on the API. See :ref:`shell_mimerenderer` for more
388 informations.
468 informations.
389
469
390 This is originally based on work form in :ghpull:`10610` from @stephanh42
470 This is originally based on work form in :ghpull:`10610` from @stephanh42
391 started over two years ago, and still a lot need to be done.
471 started over two years ago, and still a lot need to be done.
392
472
393 MISC
473 MISC
394 ----
474 ----
395
475
396 - Completions can define their own ordering :ghpull:`11855`
476 - Completions can define their own ordering :ghpull:`11855`
397 - Enable Plotting in the same cell than the one that import matplotlib
477 - Enable Plotting in the same cell than the one that import matplotlib
398 :ghpull:`11916`
478 :ghpull:`11916`
399 - Allow to store and restore multiple variables at once :ghpull:`11930`
479 - Allow to store and restore multiple variables at once :ghpull:`11930`
400
480
401 You can see `all pull-requests <https://github.com/ipython/ipython/pulls?q=is%3Apr+milestone%3A7.10+is%3Aclosed>`_ for this release.
481 You can see `all pull-requests <https://github.com/ipython/ipython/pulls?q=is%3Apr+milestone%3A7.10+is%3Aclosed>`_ for this release.
402
482
403 API Changes
483 API Changes
404 -----------
484 -----------
405
485
406 Change of API and exposed objects automatically detected using `frappuccino <https://pypi.org/project/frappuccino/>`_ (still in beta):
486 Change of API and exposed objects automatically detected using `frappuccino <https://pypi.org/project/frappuccino/>`_ (still in beta):
407
487
408 The following items are new in IPython 7.10::
488 The following items are new in IPython 7.10::
409
489
410 + IPython.terminal.shortcuts.reformat_text_before_cursor(buffer, document, shell)
490 + IPython.terminal.shortcuts.reformat_text_before_cursor(buffer, document, shell)
411 + IPython.terminal.interactiveshell.PTK3
491 + IPython.terminal.interactiveshell.PTK3
412 + IPython.terminal.interactiveshell.black_reformat_handler(text_before_cursor)
492 + IPython.terminal.interactiveshell.black_reformat_handler(text_before_cursor)
413 + IPython.terminal.prompts.RichPromptDisplayHook.write_format_data(self, format_dict, md_dict='None')
493 + IPython.terminal.prompts.RichPromptDisplayHook.write_format_data(self, format_dict, md_dict='None')
414
494
415 The following items have been removed in 7.10::
495 The following items have been removed in 7.10::
416
496
417 - IPython.lib.pretty.DICT_IS_ORDERED
497 - IPython.lib.pretty.DICT_IS_ORDERED
418
498
419 The following signatures differ between versions::
499 The following signatures differ between versions::
420
500
421 - IPython.extensions.storemagic.restore_aliases(ip)
501 - IPython.extensions.storemagic.restore_aliases(ip)
422 + IPython.extensions.storemagic.restore_aliases(ip, alias='None')
502 + IPython.extensions.storemagic.restore_aliases(ip, alias='None')
423
503
424 Special Thanks
504 Special Thanks
425 --------------
505 --------------
426
506
427 - @stephanh42 who started the work on inline images in terminal 2 years ago
507 - @stephanh42 who started the work on inline images in terminal 2 years ago
428 - @augustogoulart who spent a lot of time triaging issues and responding to
508 - @augustogoulart who spent a lot of time triaging issues and responding to
429 users.
509 users.
430 - @con-f-use who is my (@Carreau) first sponsor on GitHub, as a reminder if you
510 - @con-f-use who is my (@Carreau) first sponsor on GitHub, as a reminder if you
431 like IPython, Jupyter and many other library of the SciPy stack you can
511 like IPython, Jupyter and many other library of the SciPy stack you can
432 donate to numfocus.org non profit
512 donate to numfocus.org non profit
433
513
434 .. _version 790:
514 .. _version 790:
435
515
436 IPython 7.9.0
516 IPython 7.9.0
437 =============
517 =============
438
518
439 IPython 7.9 is a small release with a couple of improvement and bug fixes.
519 IPython 7.9 is a small release with a couple of improvement and bug fixes.
440
520
441 - Xterm terminal title should be restored on exit :ghpull:`11910`
521 - Xterm terminal title should be restored on exit :ghpull:`11910`
442 - special variables ``_``,``__``, ``___`` are not set anymore when cache size
522 - special variables ``_``,``__``, ``___`` are not set anymore when cache size
443 is 0 or less. :ghpull:`11877`
523 is 0 or less. :ghpull:`11877`
444 - Autoreload should have regained some speed by using a new heuristic logic to
524 - Autoreload should have regained some speed by using a new heuristic logic to
445 find all objects needing reload. This should avoid large objects traversal
525 find all objects needing reload. This should avoid large objects traversal
446 like pandas dataframes. :ghpull:`11876`
526 like pandas dataframes. :ghpull:`11876`
447 - Get ready for Python 4. :ghpull:`11874`
527 - Get ready for Python 4. :ghpull:`11874`
448 - `%env` Magic now has heuristic to hide potentially sensitive values :ghpull:`11896`
528 - `%env` Magic now has heuristic to hide potentially sensitive values :ghpull:`11896`
449
529
450 This is a small release despite a number of Pull Request Pending that need to
530 This is a small release despite a number of Pull Request Pending that need to
451 be reviewed/worked on. Many of the core developers have been busy outside of
531 be reviewed/worked on. Many of the core developers have been busy outside of
452 IPython/Jupyter and we thanks all contributor for their patience; we'll work on
532 IPython/Jupyter and we thanks all contributor for their patience; we'll work on
453 these as soon as we have time.
533 these as soon as we have time.
454
534
455
535
456 .. _version780:
536 .. _version780:
457
537
458 IPython 7.8.0
538 IPython 7.8.0
459 =============
539 =============
460
540
461 IPython 7.8.0 contain a few bugfix and 2 new APIs:
541 IPython 7.8.0 contain a few bugfix and 2 new APIs:
462
542
463 - Enable changing the font color for LaTeX rendering :ghpull:`11840`
543 - Enable changing the font color for LaTeX rendering :ghpull:`11840`
464 - and Re-Expose some PDB API (see below)
544 - and Re-Expose some PDB API (see below)
465
545
466 Expose Pdb API
546 Expose Pdb API
467 --------------
547 --------------
468
548
469 Expose the built-in ``pdb.Pdb`` API. ``Pdb`` constructor arguments are generically
549 Expose the built-in ``pdb.Pdb`` API. ``Pdb`` constructor arguments are generically
470 exposed, regardless of python version.
550 exposed, regardless of python version.
471 Newly exposed arguments:
551 Newly exposed arguments:
472
552
473 - ``skip`` - Python 3.1+
553 - ``skip`` - Python 3.1+
474 - ``nosiginnt`` - Python 3.2+
554 - ``nosiginnt`` - Python 3.2+
475 - ``readrc`` - Python 3.6+
555 - ``readrc`` - Python 3.6+
476
556
477 Try it out::
557 Try it out::
478
558
479 from IPython.terminal.debugger import TerminalPdb
559 from IPython.terminal.debugger import TerminalPdb
480 pdb = TerminalPdb(skip=["skipthismodule"])
560 pdb = TerminalPdb(skip=["skipthismodule"])
481
561
482
562
483 See :ghpull:`11840`
563 See :ghpull:`11840`
484
564
485 .. _version770:
565 .. _version770:
486
566
487 IPython 7.7.0
567 IPython 7.7.0
488 =============
568 =============
489
569
490 IPython 7.7.0 contain multiple bug fixes and documentation updates; Here are a
570 IPython 7.7.0 contain multiple bug fixes and documentation updates; Here are a
491 few of the outstanding issue fixed:
571 few of the outstanding issue fixed:
492
572
493 - Fix a bug introduced in 7.6 where the ``%matplotlib`` magic would fail on
573 - Fix a bug introduced in 7.6 where the ``%matplotlib`` magic would fail on
494 previously acceptable arguments :ghpull:`11814`.
574 previously acceptable arguments :ghpull:`11814`.
495 - Fix the manage location on freebsd :ghpull:`11808`.
575 - Fix the manage location on freebsd :ghpull:`11808`.
496 - Fix error message about aliases after ``%reset`` call in ipykernel
576 - Fix error message about aliases after ``%reset`` call in ipykernel
497 :ghpull:`11806`
577 :ghpull:`11806`
498 - Fix Duplication completions in emacs :ghpull:`11803`
578 - Fix Duplication completions in emacs :ghpull:`11803`
499
579
500 We are planning to adopt `NEP29 <https://github.com/numpy/numpy/pull/14086>`_
580 We are planning to adopt `NEP29 <https://github.com/numpy/numpy/pull/14086>`_
501 (still currently in draft) which may make this minor version of IPython the
581 (still currently in draft) which may make this minor version of IPython the
502 last one to support Python 3.5 and will make the code base more aggressive
582 last one to support Python 3.5 and will make the code base more aggressive
503 toward removing compatibility with older versions of Python.
583 toward removing compatibility with older versions of Python.
504
584
505 GitHub now support to give only "Triage" permissions to users; if you'd like to
585 GitHub now support to give only "Triage" permissions to users; if you'd like to
506 help close stale issues and labels issues please reach to us with your GitHub
586 help close stale issues and labels issues please reach to us with your GitHub
507 Username and we'll add you to the triage team. It is a great way to start
587 Username and we'll add you to the triage team. It is a great way to start
508 contributing and a path toward getting commit rights.
588 contributing and a path toward getting commit rights.
509
589
510 .. _version761:
590 .. _version761:
511
591
512 IPython 7.6.1
592 IPython 7.6.1
513 =============
593 =============
514
594
515 IPython 7.6.1 contain a critical bugfix in the ``%timeit`` magic, which would
595 IPython 7.6.1 contain a critical bugfix in the ``%timeit`` magic, which would
516 crash on some inputs as a side effect of :ghpull:`11716`. See :ghpull:`11812`
596 crash on some inputs as a side effect of :ghpull:`11716`. See :ghpull:`11812`
517
597
518
598
519 .. _whatsnew760:
599 .. _whatsnew760:
520
600
521 IPython 7.6.0
601 IPython 7.6.0
522 =============
602 =============
523
603
524 IPython 7.6.0 contains a couple of bug fixes and number of small features
604 IPython 7.6.0 contains a couple of bug fixes and number of small features
525 additions as well as some compatibility with the current development version of
605 additions as well as some compatibility with the current development version of
526 Python 3.8.
606 Python 3.8.
527
607
528 - Add a ``-l`` option to :magic:`psearch` to list the available search
608 - Add a ``-l`` option to :magic:`psearch` to list the available search
529 types. :ghpull:`11672`
609 types. :ghpull:`11672`
530 - Support ``PathLike`` for ``DisplayObject`` and ``Image``. :ghpull:`11764`
610 - Support ``PathLike`` for ``DisplayObject`` and ``Image``. :ghpull:`11764`
531 - Configurability of timeout in the test suite for slow platforms.
611 - Configurability of timeout in the test suite for slow platforms.
532 :ghpull:`11756`
612 :ghpull:`11756`
533 - Accept any casing for matplotlib backend. :ghpull:`121748`
613 - Accept any casing for matplotlib backend. :ghpull:`121748`
534 - Properly skip test that requires numpy to be installed :ghpull:`11723`
614 - Properly skip test that requires numpy to be installed :ghpull:`11723`
535 - More support for Python 3.8 and positional only arguments (pep570)
615 - More support for Python 3.8 and positional only arguments (pep570)
536 :ghpull:`11720`
616 :ghpull:`11720`
537 - Unicode names for the completion are loaded lazily on first use which
617 - Unicode names for the completion are loaded lazily on first use which
538 should decrease startup time. :ghpull:`11693`
618 should decrease startup time. :ghpull:`11693`
539 - Autoreload now update the types of reloaded objects; this for example allow
619 - Autoreload now update the types of reloaded objects; this for example allow
540 pickling of reloaded objects. :ghpull:`11644`
620 pickling of reloaded objects. :ghpull:`11644`
541 - Fix a bug where ``%%time`` magic would suppress cell output. :ghpull:`11716`
621 - Fix a bug where ``%%time`` magic would suppress cell output. :ghpull:`11716`
542
622
543
623
544 Prepare migration to pytest (instead of nose) for testing
624 Prepare migration to pytest (instead of nose) for testing
545 ---------------------------------------------------------
625 ---------------------------------------------------------
546
626
547 Most of the work between 7.5 and 7.6 was to prepare the migration from our
627 Most of the work between 7.5 and 7.6 was to prepare the migration from our
548 testing framework to pytest. Most of the test suite should now work by simply
628 testing framework to pytest. Most of the test suite should now work by simply
549 issuing ``pytest`` from the root of the repository.
629 issuing ``pytest`` from the root of the repository.
550
630
551 The migration to pytest is just at its beginning. Many of our test still rely
631 The migration to pytest is just at its beginning. Many of our test still rely
552 on IPython-specific plugins for nose using pytest (doctest using IPython syntax
632 on IPython-specific plugins for nose using pytest (doctest using IPython syntax
553 is one example of this where test appear as "passing", while no code has been
633 is one example of this where test appear as "passing", while no code has been
554 ran). Many test also need to be updated like ``yield-test`` to be properly
634 ran). Many test also need to be updated like ``yield-test`` to be properly
555 parametrized tests.
635 parametrized tests.
556
636
557 Migration to pytest allowed me to discover a number of issues in our test
637 Migration to pytest allowed me to discover a number of issues in our test
558 suite; which was hiding a number of subtle issues – or not actually running
638 suite; which was hiding a number of subtle issues – or not actually running
559 some of the tests in our test suite – I have thus corrected many of those; like
639 some of the tests in our test suite – I have thus corrected many of those; like
560 improperly closed resources; or used of deprecated features. I also made use of
640 improperly closed resources; or used of deprecated features. I also made use of
561 the ``pytest --durations=...`` to find some of our slowest test and speed them
641 the ``pytest --durations=...`` to find some of our slowest test and speed them
562 up (our test suite can now be up to 10% faster). Pytest as also a variety of
642 up (our test suite can now be up to 10% faster). Pytest as also a variety of
563 plugins and flags which will make the code quality of IPython and the testing
643 plugins and flags which will make the code quality of IPython and the testing
564 experience better.
644 experience better.
565
645
566 Misc
646 Misc
567 ----
647 ----
568
648
569 We skipped the release of 7.6 at the end of May, but will attempt to get back
649 We skipped the release of 7.6 at the end of May, but will attempt to get back
570 on schedule. We are starting to think about making introducing backward
650 on schedule. We are starting to think about making introducing backward
571 incompatible change and start the 8.0 series.
651 incompatible change and start the 8.0 series.
572
652
573 Special Thanks to Gabriel (@gpotter2 on GitHub), who among other took care many
653 Special Thanks to Gabriel (@gpotter2 on GitHub), who among other took care many
574 of the remaining task for 7.4 and 7.5, like updating the website.
654 of the remaining task for 7.4 and 7.5, like updating the website.
575
655
576 .. _whatsnew750:
656 .. _whatsnew750:
577
657
578 IPython 7.5.0
658 IPython 7.5.0
579 =============
659 =============
580
660
581 IPython 7.5.0 consist mostly of bug-fixes, and documentation updates, with one
661 IPython 7.5.0 consist mostly of bug-fixes, and documentation updates, with one
582 minor new feature. The `Audio` display element can now be assigned an element
662 minor new feature. The `Audio` display element can now be assigned an element
583 id when displayed in browser. See :ghpull:`11670`
663 id when displayed in browser. See :ghpull:`11670`
584
664
585 The major outstanding bug fix correct a change of behavior that was introduce
665 The major outstanding bug fix correct a change of behavior that was introduce
586 in 7.4.0 where some cell magics would not be able to access or modify global
666 in 7.4.0 where some cell magics would not be able to access or modify global
587 scope when using the ``@needs_local_scope`` decorator. This was typically
667 scope when using the ``@needs_local_scope`` decorator. This was typically
588 encountered with the ``%%time`` and ``%%timeit`` magics. See :ghissue:`11659`
668 encountered with the ``%%time`` and ``%%timeit`` magics. See :ghissue:`11659`
589 and :ghpull:`11698`.
669 and :ghpull:`11698`.
590
670
591 .. _whatsnew740:
671 .. _whatsnew740:
592
672
593 IPython 7.4.0
673 IPython 7.4.0
594 =============
674 =============
595
675
596 Unicode name completions
676 Unicode name completions
597 ------------------------
677 ------------------------
598
678
599 Previously, we provided completion for a unicode name with its relative symbol.
679 Previously, we provided completion for a unicode name with its relative symbol.
600 With this, now IPython provides complete suggestions to unicode name symbols.
680 With this, now IPython provides complete suggestions to unicode name symbols.
601
681
602 As on the PR, if user types ``\LAT<tab>``, IPython provides a list of
682 As on the PR, if user types ``\LAT<tab>``, IPython provides a list of
603 possible completions. In this case, it would be something like::
683 possible completions. In this case, it would be something like::
604
684
605 'LATIN CAPITAL LETTER A',
685 'LATIN CAPITAL LETTER A',
606 'LATIN CAPITAL LETTER B',
686 'LATIN CAPITAL LETTER B',
607 'LATIN CAPITAL LETTER C',
687 'LATIN CAPITAL LETTER C',
608 'LATIN CAPITAL LETTER D',
688 'LATIN CAPITAL LETTER D',
609 ....
689 ....
610
690
611 This help to type unicode character that do not have short latex aliases, and
691 This help to type unicode character that do not have short latex aliases, and
612 have long unicode names. for example ``Ͱ``, ``\GREEK CAPITAL LETTER HETA``.
692 have long unicode names. for example ``Ͱ``, ``\GREEK CAPITAL LETTER HETA``.
613
693
614 This feature was contributed by Luciana Marques :ghpull:`11583`.
694 This feature was contributed by Luciana Marques :ghpull:`11583`.
615
695
616 Make audio normalization optional
696 Make audio normalization optional
617 ---------------------------------
697 ---------------------------------
618
698
619 Added 'normalize' argument to `IPython.display.Audio`. This argument applies
699 Added 'normalize' argument to `IPython.display.Audio`. This argument applies
620 when audio data is given as an array of samples. The default of `normalize=True`
700 when audio data is given as an array of samples. The default of `normalize=True`
621 preserves prior behavior of normalizing the audio to the maximum possible range.
701 preserves prior behavior of normalizing the audio to the maximum possible range.
622 Setting to `False` disables normalization.
702 Setting to `False` disables normalization.
623
703
624
704
625 Miscellaneous
705 Miscellaneous
626 -------------
706 -------------
627
707
628 - Fix improper acceptation of ``return`` outside of functions. :ghpull:`11641`.
708 - Fix improper acceptation of ``return`` outside of functions. :ghpull:`11641`.
629 - Fixed PyQt 5.11 backwards incompatibility causing sip import failure.
709 - Fixed PyQt 5.11 backwards incompatibility causing sip import failure.
630 :ghpull:`11613`.
710 :ghpull:`11613`.
631 - Fix Bug where ``type?`` would crash IPython. :ghpull:`1608`.
711 - Fix Bug where ``type?`` would crash IPython. :ghpull:`1608`.
632 - Allow to apply ``@needs_local_scope`` to cell magics for convenience.
712 - Allow to apply ``@needs_local_scope`` to cell magics for convenience.
633 :ghpull:`11542`.
713 :ghpull:`11542`.
634
714
635 .. _whatsnew730:
715 .. _whatsnew730:
636
716
637 IPython 7.3.0
717 IPython 7.3.0
638 =============
718 =============
639
719
640 .. _whatsnew720:
720 .. _whatsnew720:
641
721
642 IPython 7.3.0 bring several bug fixes and small improvements that you will
722 IPython 7.3.0 bring several bug fixes and small improvements that you will
643 described bellow.
723 described bellow.
644
724
645 The biggest change to this release is the implementation of the ``%conda`` and
725 The biggest change to this release is the implementation of the ``%conda`` and
646 ``%pip`` magics, that will attempt to install packages in the **current
726 ``%pip`` magics, that will attempt to install packages in the **current
647 environment**. You may still need to restart your interpreter or kernel for the
727 environment**. You may still need to restart your interpreter or kernel for the
648 change to be taken into account, but it should simplify installation of packages
728 change to be taken into account, but it should simplify installation of packages
649 into remote environment. Installing using pip/conda from the command line is
729 into remote environment. Installing using pip/conda from the command line is
650 still the prefer method.
730 still the prefer method.
651
731
652 The ``%pip`` magic was already present, but was only printing a warning; now it
732 The ``%pip`` magic was already present, but was only printing a warning; now it
653 will actually forward commands to pip.
733 will actually forward commands to pip.
654
734
655 Misc bug fixes and improvements:
735 Misc bug fixes and improvements:
656
736
657 - Compatibility with Python 3.8.
737 - Compatibility with Python 3.8.
658 - Do not expand shell variable in execution magics, and added the
738 - Do not expand shell variable in execution magics, and added the
659 ``no_var_expand`` decorator for magic requiring a similar functionality
739 ``no_var_expand`` decorator for magic requiring a similar functionality
660 :ghpull:`11516`
740 :ghpull:`11516`
661 - Add ``%pip`` and ``%conda`` magic :ghpull:`11524`
741 - Add ``%pip`` and ``%conda`` magic :ghpull:`11524`
662 - Re-initialize posix aliases after a ``%reset`` :ghpull:`11528`
742 - Re-initialize posix aliases after a ``%reset`` :ghpull:`11528`
663 - Allow the IPython command line to run ``*.ipynb`` files :ghpull:`11529`
743 - Allow the IPython command line to run ``*.ipynb`` files :ghpull:`11529`
664
744
665 IPython 7.2.0
745 IPython 7.2.0
666 =============
746 =============
667
747
668 IPython 7.2.0 brings minor bugfixes, improvements, and new configuration options:
748 IPython 7.2.0 brings minor bugfixes, improvements, and new configuration options:
669
749
670 - Fix a bug preventing PySide2 GUI integration from working :ghpull:`11464`
750 - Fix a bug preventing PySide2 GUI integration from working :ghpull:`11464`
671 - Run CI on Mac OS ! :ghpull:`11471`
751 - Run CI on Mac OS ! :ghpull:`11471`
672 - Fix IPython "Demo" mode. :ghpull:`11498`
752 - Fix IPython "Demo" mode. :ghpull:`11498`
673 - Fix ``%run`` magic with path in name :ghpull:`11499`
753 - Fix ``%run`` magic with path in name :ghpull:`11499`
674 - Fix: add CWD to sys.path *after* stdlib :ghpull:`11502`
754 - Fix: add CWD to sys.path *after* stdlib :ghpull:`11502`
675 - Better rendering of signatures, especially long ones. :ghpull:`11505`
755 - Better rendering of signatures, especially long ones. :ghpull:`11505`
676 - Re-enable jedi by default if it's installed :ghpull:`11506`
756 - Re-enable jedi by default if it's installed :ghpull:`11506`
677 - Add New ``minimal`` exception reporting mode (useful for educational purpose). See :ghpull:`11509`
757 - Add New ``minimal`` exception reporting mode (useful for educational purpose). See :ghpull:`11509`
678
758
679
759
680 Added ability to show subclasses when using pinfo and other utilities
760 Added ability to show subclasses when using pinfo and other utilities
681 ---------------------------------------------------------------------
761 ---------------------------------------------------------------------
682
762
683 When using ``?``/``??`` on a class, IPython will now list the first 10 subclasses.
763 When using ``?``/``??`` on a class, IPython will now list the first 10 subclasses.
684
764
685 Special Thanks to Chris Mentzel of the Moore Foundation for this feature. Chris
765 Special Thanks to Chris Mentzel of the Moore Foundation for this feature. Chris
686 is one of the people who played a critical role in IPython/Jupyter getting
766 is one of the people who played a critical role in IPython/Jupyter getting
687 funding.
767 funding.
688
768
689 We are grateful for all the help Chris has given us over the years,
769 We are grateful for all the help Chris has given us over the years,
690 and we're now proud to have code contributed by Chris in IPython.
770 and we're now proud to have code contributed by Chris in IPython.
691
771
692 OSMagics.cd_force_quiet configuration option
772 OSMagics.cd_force_quiet configuration option
693 --------------------------------------------
773 --------------------------------------------
694
774
695 You can set this option to force the %cd magic to behave as if ``-q`` was passed:
775 You can set this option to force the %cd magic to behave as if ``-q`` was passed:
696 ::
776 ::
697
777
698 In [1]: cd /
778 In [1]: cd /
699 /
779 /
700
780
701 In [2]: %config OSMagics.cd_force_quiet = True
781 In [2]: %config OSMagics.cd_force_quiet = True
702
782
703 In [3]: cd /tmp
783 In [3]: cd /tmp
704
784
705 In [4]:
785 In [4]:
706
786
707 See :ghpull:`11491`
787 See :ghpull:`11491`
708
788
709 In vi editing mode, whether the prompt includes the current vi mode can now be configured
789 In vi editing mode, whether the prompt includes the current vi mode can now be configured
710 -----------------------------------------------------------------------------------------
790 -----------------------------------------------------------------------------------------
711
791
712 Set the ``TerminalInteractiveShell.prompt_includes_vi_mode`` to a boolean value
792 Set the ``TerminalInteractiveShell.prompt_includes_vi_mode`` to a boolean value
713 (default: True) to control this feature. See :ghpull:`11492`
793 (default: True) to control this feature. See :ghpull:`11492`
714
794
715 .. _whatsnew710:
795 .. _whatsnew710:
716
796
717 IPython 7.1.0
797 IPython 7.1.0
718 =============
798 =============
719
799
720 IPython 7.1.0 is the first minor release after 7.0.0 and mostly brings fixes to
800 IPython 7.1.0 is the first minor release after 7.0.0 and mostly brings fixes to
721 new features, internal refactoring, and fixes for regressions that happened during the 6.x->7.x
801 new features, internal refactoring, and fixes for regressions that happened during the 6.x->7.x
722 transition. It also brings **Compatibility with Python 3.7.1**, as we're
802 transition. It also brings **Compatibility with Python 3.7.1**, as we're
723 unwillingly relying on a bug in CPython.
803 unwillingly relying on a bug in CPython.
724
804
725 New Core Dev:
805 New Core Dev:
726
806
727 - We welcome Jonathan Slenders to the commiters. Jonathan has done a fantastic
807 - We welcome Jonathan Slenders to the commiters. Jonathan has done a fantastic
728 work on prompt_toolkit, and we'd like to recognise his impact by giving him
808 work on prompt_toolkit, and we'd like to recognise his impact by giving him
729 commit rights. :ghissue:`11397`
809 commit rights. :ghissue:`11397`
730
810
731 Notable Changes
811 Notable Changes
732
812
733 - Major update of "latex to unicode" tab completion map (see below)
813 - Major update of "latex to unicode" tab completion map (see below)
734
814
735 Notable New Features:
815 Notable New Features:
736
816
737 - Restore functionality and documentation of the **sphinx directive**, which
817 - Restore functionality and documentation of the **sphinx directive**, which
738 is now stricter (fail on error by daefault), has new configuration options,
818 is now stricter (fail on error by daefault), has new configuration options,
739 has a brand new documentation page :ref:`ipython_directive` (which needs
819 has a brand new documentation page :ref:`ipython_directive` (which needs
740 some cleanup). It is also now *tested* so we hope to have less regressions.
820 some cleanup). It is also now *tested* so we hope to have less regressions.
741 :ghpull:`11402`
821 :ghpull:`11402`
742
822
743 - ``IPython.display.Video`` now supports ``width`` and ``height`` arguments,
823 - ``IPython.display.Video`` now supports ``width`` and ``height`` arguments,
744 allowing a custom width and height to be set instead of using the video's
824 allowing a custom width and height to be set instead of using the video's
745 width and height. :ghpull:`11353`
825 width and height. :ghpull:`11353`
746
826
747 - Warn when using ``HTML('<iframe>')`` instead of ``IFrame`` :ghpull:`11350`
827 - Warn when using ``HTML('<iframe>')`` instead of ``IFrame`` :ghpull:`11350`
748
828
749 - Allow Dynamic switching of editing mode between vi/emacs and show
829 - Allow Dynamic switching of editing mode between vi/emacs and show
750 normal/input mode in prompt when using vi. :ghpull:`11390`. Use ``%config
830 normal/input mode in prompt when using vi. :ghpull:`11390`. Use ``%config
751 TerminalInteractiveShell.editing_mode = 'vi'`` or ``%config
831 TerminalInteractiveShell.editing_mode = 'vi'`` or ``%config
752 TerminalInteractiveShell.editing_mode = 'emacs'`` to dynamically switch
832 TerminalInteractiveShell.editing_mode = 'emacs'`` to dynamically switch
753 between modes.
833 between modes.
754
834
755
835
756 Notable Fixes:
836 Notable Fixes:
757
837
758 - Fix entering of **multi-line blocks in terminal** IPython, and various
838 - Fix entering of **multi-line blocks in terminal** IPython, and various
759 crashes in the new input transformation machinery :ghpull:`11354`,
839 crashes in the new input transformation machinery :ghpull:`11354`,
760 :ghpull:`11356`, :ghpull:`11358`. These also fix a **Compatibility bug
840 :ghpull:`11356`, :ghpull:`11358`. These also fix a **Compatibility bug
761 with Python 3.7.1**.
841 with Python 3.7.1**.
762
842
763 - Fix moving through generator stack in ipdb :ghpull:`11266`
843 - Fix moving through generator stack in ipdb :ghpull:`11266`
764
844
765 - %Magic command arguments now support quoting. :ghpull:`11330`
845 - %Magic command arguments now support quoting. :ghpull:`11330`
766
846
767 - Re-add ``rprint`` and ``rprinte`` aliases. :ghpull:`11331`
847 - Re-add ``rprint`` and ``rprinte`` aliases. :ghpull:`11331`
768
848
769 - Remove implicit dependency on ``ipython_genutils`` :ghpull:`11317`
849 - Remove implicit dependency on ``ipython_genutils`` :ghpull:`11317`
770
850
771 - Make ``nonlocal`` raise ``SyntaxError`` instead of silently failing in async
851 - Make ``nonlocal`` raise ``SyntaxError`` instead of silently failing in async
772 mode. :ghpull:`11382`
852 mode. :ghpull:`11382`
773
853
774 - Fix mishandling of magics and ``= !`` assignment just after a dedent in
854 - Fix mishandling of magics and ``= !`` assignment just after a dedent in
775 nested code blocks :ghpull:`11418`
855 nested code blocks :ghpull:`11418`
776
856
777 - Fix instructions for custom shortcuts :ghpull:`11426`
857 - Fix instructions for custom shortcuts :ghpull:`11426`
778
858
779
859
780 Notable Internals improvements:
860 Notable Internals improvements:
781
861
782 - Use of ``os.scandir`` (Python 3 only) to speed up some file system operations.
862 - Use of ``os.scandir`` (Python 3 only) to speed up some file system operations.
783 :ghpull:`11365`
863 :ghpull:`11365`
784
864
785 - use ``perf_counter`` instead of ``clock`` for more precise
865 - use ``perf_counter`` instead of ``clock`` for more precise
786 timing results with ``%time`` :ghpull:`11376`
866 timing results with ``%time`` :ghpull:`11376`
787
867
788 Many thanks to all the contributors and in particular to ``bartskowron`` and
868 Many thanks to all the contributors and in particular to ``bartskowron`` and
789 ``tonyfast`` who handled some pretty complicated bugs in the input machinery. We
869 ``tonyfast`` who handled some pretty complicated bugs in the input machinery. We
790 had a number of first time contributors and maybe hacktoberfest participants that
870 had a number of first time contributors and maybe hacktoberfest participants that
791 made significant contributions and helped us free some time to focus on more
871 made significant contributions and helped us free some time to focus on more
792 complicated bugs.
872 complicated bugs.
793
873
794 You
874 You
795 can see all the closed issues and Merged PR, new features and fixes `here
875 can see all the closed issues and Merged PR, new features and fixes `here
796 <https://github.com/ipython/ipython/issues?utf8=%E2%9C%93&q=+is%3Aclosed+milestone%3A7.1+>`_.
876 <https://github.com/ipython/ipython/issues?utf8=%E2%9C%93&q=+is%3Aclosed+milestone%3A7.1+>`_.
797
877
798 Unicode Completion update
878 Unicode Completion update
799 -------------------------
879 -------------------------
800
880
801 In IPython 7.1 the Unicode completion map has been updated and synchronized with
881 In IPython 7.1 the Unicode completion map has been updated and synchronized with
802 the Julia language.
882 the Julia language.
803
883
804 Added and removed character characters:
884 Added and removed character characters:
805
885
806 ``\jmath`` (``ȷ``), ``\\underleftrightarrow`` (U+034D, combining) have been
886 ``\jmath`` (``ȷ``), ``\\underleftrightarrow`` (U+034D, combining) have been
807 added, while ``\\textasciicaron`` have been removed
887 added, while ``\\textasciicaron`` have been removed
808
888
809 Some sequences have seen their prefix removed:
889 Some sequences have seen their prefix removed:
810
890
811 - 6 characters ``\text...<tab>`` should now be inputed with ``\...<tab>`` directly,
891 - 6 characters ``\text...<tab>`` should now be inputed with ``\...<tab>`` directly,
812 - 45 characters ``\Elz...<tab>`` should now be inputed with ``\...<tab>`` directly,
892 - 45 characters ``\Elz...<tab>`` should now be inputed with ``\...<tab>`` directly,
813 - 65 characters ``\B...<tab>`` should now be inputed with ``\...<tab>`` directly,
893 - 65 characters ``\B...<tab>`` should now be inputed with ``\...<tab>`` directly,
814 - 450 characters ``\m...<tab>`` should now be inputed with ``\...<tab>`` directly,
894 - 450 characters ``\m...<tab>`` should now be inputed with ``\...<tab>`` directly,
815
895
816 Some sequences have seen their prefix shortened:
896 Some sequences have seen their prefix shortened:
817
897
818 - 5 characters ``\mitBbb...<tab>`` should now be inputed with ``\bbi...<tab>`` directly,
898 - 5 characters ``\mitBbb...<tab>`` should now be inputed with ``\bbi...<tab>`` directly,
819 - 52 characters ``\mit...<tab>`` should now be inputed with ``\i...<tab>`` directly,
899 - 52 characters ``\mit...<tab>`` should now be inputed with ``\i...<tab>`` directly,
820 - 216 characters ``\mbfit...<tab>`` should now be inputed with ``\bi...<tab>`` directly,
900 - 216 characters ``\mbfit...<tab>`` should now be inputed with ``\bi...<tab>`` directly,
821 - 222 characters ``\mbf...<tab>`` should now be inputed with ``\b...<tab>`` directly,
901 - 222 characters ``\mbf...<tab>`` should now be inputed with ``\b...<tab>`` directly,
822
902
823 A couple of characters had their sequence simplified:
903 A couple of characters had their sequence simplified:
824
904
825 - ``ð``, type ``\dh<tab>``, instead of ``\eth<tab>``
905 - ``ð``, type ``\dh<tab>``, instead of ``\eth<tab>``
826 - ``ħ``, type ``\hbar<tab>``, instead of ``\Elzxh<tab>``
906 - ``ħ``, type ``\hbar<tab>``, instead of ``\Elzxh<tab>``
827 - ``ɸ``, type ``\ltphi<tab>``, instead of ``\textphi<tab>``
907 - ``ɸ``, type ``\ltphi<tab>``, instead of ``\textphi<tab>``
828 - ``ϴ``, type ``\varTheta<tab>``, instead of ``\textTheta<tab>``
908 - ``ϴ``, type ``\varTheta<tab>``, instead of ``\textTheta<tab>``
829 - ``ℇ``, type ``\eulermascheroni<tab>``, instead of ``\Eulerconst<tab>``
909 - ``ℇ``, type ``\eulermascheroni<tab>``, instead of ``\Eulerconst<tab>``
830 - ``ℎ``, type ``\planck<tab>``, instead of ``\Planckconst<tab>``
910 - ``ℎ``, type ``\planck<tab>``, instead of ``\Planckconst<tab>``
831
911
832 - U+0336 (COMBINING LONG STROKE OVERLAY), type ``\strike<tab>``, instead of ``\Elzbar<tab>``.
912 - U+0336 (COMBINING LONG STROKE OVERLAY), type ``\strike<tab>``, instead of ``\Elzbar<tab>``.
833
913
834 A couple of sequences have been updated:
914 A couple of sequences have been updated:
835
915
836 - ``\varepsilon`` now gives ``ɛ`` (GREEK SMALL LETTER EPSILON) instead of ``ε`` (GREEK LUNATE EPSILON SYMBOL),
916 - ``\varepsilon`` now gives ``ɛ`` (GREEK SMALL LETTER EPSILON) instead of ``ε`` (GREEK LUNATE EPSILON SYMBOL),
837 - ``\underbar`` now gives U+0331 (COMBINING MACRON BELOW) instead of U+0332 (COMBINING LOW LINE).
917 - ``\underbar`` now gives U+0331 (COMBINING MACRON BELOW) instead of U+0332 (COMBINING LOW LINE).
838
918
839
919
840 .. _whatsnew700:
920 .. _whatsnew700:
841
921
842 IPython 7.0.0
922 IPython 7.0.0
843 =============
923 =============
844
924
845 Released Thursday September 27th, 2018
925 Released Thursday September 27th, 2018
846
926
847 IPython 7 includes major feature improvements.
927 IPython 7 includes major feature improvements.
848 This is also the second major version of IPython to support only
928 This is also the second major version of IPython to support only
849 Python 3 – starting at Python 3.4. Python 2 is still community-supported
929 Python 3 – starting at Python 3.4. Python 2 is still community-supported
850 on the bugfix only 5.x branch, but we remind you that Python 2 "end of life"
930 on the bugfix only 5.x branch, but we remind you that Python 2 "end of life"
851 is on Jan 1st 2020.
931 is on Jan 1st 2020.
852
932
853 We were able to backport bug fixes to the 5.x branch thanks to our backport bot which
933 We were able to backport bug fixes to the 5.x branch thanks to our backport bot which
854 backported more than `70 Pull-Requests
934 backported more than `70 Pull-Requests
855 <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>`_
935 <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>`_
856
936
857 The IPython 6.x branch will likely not see any further release unless critical
937 The IPython 6.x branch will likely not see any further release unless critical
858 bugs are found.
938 bugs are found.
859
939
860 Make sure you have pip > 9.0 before upgrading. You should be able to update by running:
940 Make sure you have pip > 9.0 before upgrading. You should be able to update by running:
861
941
862 .. code::
942 .. code::
863
943
864 pip install ipython --upgrade
944 pip install ipython --upgrade
865
945
866 .. only:: ipydev
946 .. only:: ipydev
867
947
868 If you are trying to install or update an ``alpha``, ``beta``, or ``rc``
948 If you are trying to install or update an ``alpha``, ``beta``, or ``rc``
869 version, use pip ``--pre`` flag.
949 version, use pip ``--pre`` flag.
870
950
871 .. code::
951 .. code::
872
952
873 pip install ipython --upgrade --pre
953 pip install ipython --upgrade --pre
874
954
875
955
876 Or, if you have conda installed:
956 Or, if you have conda installed:
877
957
878 .. code::
958 .. code::
879
959
880 conda install ipython
960 conda install ipython
881
961
882
962
883
963
884 Prompt Toolkit 2.0
964 Prompt Toolkit 2.0
885 ------------------
965 ------------------
886
966
887 IPython 7.0+ now uses ``prompt_toolkit 2.0``. If you still need to use an earlier
967 IPython 7.0+ now uses ``prompt_toolkit 2.0``. If you still need to use an earlier
888 ``prompt_toolkit`` version, you may need to pin IPython to ``<7.0``.
968 ``prompt_toolkit`` version, you may need to pin IPython to ``<7.0``.
889
969
890 Autowait: Asynchronous REPL
970 Autowait: Asynchronous REPL
891 ---------------------------
971 ---------------------------
892
972
893 Staring with IPython 7.0 on Python 3.6+, IPython can automatically ``await``
973 Staring with IPython 7.0 on Python 3.6+, IPython can automatically ``await``
894 top level code. You should not need to access an event loop or runner
974 top level code. You should not need to access an event loop or runner
895 yourself. To learn more, read the :ref:`autoawait` section of our docs, see
975 yourself. To learn more, read the :ref:`autoawait` section of our docs, see
896 :ghpull:`11265`, or try the following code::
976 :ghpull:`11265`, or try the following code::
897
977
898 Python 3.6.0
978 Python 3.6.0
899 Type 'copyright', 'credits' or 'license' for more information
979 Type 'copyright', 'credits' or 'license' for more information
900 IPython 7.0.0 -- An enhanced Interactive Python. Type '?' for help.
980 IPython 7.0.0 -- An enhanced Interactive Python. Type '?' for help.
901
981
902 In [1]: import aiohttp
982 In [1]: import aiohttp
903 ...: result = aiohttp.get('https://api.github.com')
983 ...: result = aiohttp.get('https://api.github.com')
904
984
905 In [2]: response = await result
985 In [2]: response = await result
906 <pause for a few 100s ms>
986 <pause for a few 100s ms>
907
987
908 In [3]: await response.json()
988 In [3]: await response.json()
909 Out[3]:
989 Out[3]:
910 {'authorizations_url': 'https://api.github.com/authorizations',
990 {'authorizations_url': 'https://api.github.com/authorizations',
911 'code_search_url': 'https://api.github.com/search/code?q={query}{&page,per_page,sort,order}',
991 'code_search_url': 'https://api.github.com/search/code?q={query}{&page,per_page,sort,order}',
912 ...
992 ...
913 }
993 }
914
994
915 .. note::
995 .. note::
916
996
917 Async integration is experimental code, behavior may change or be removed
997 Async integration is experimental code, behavior may change or be removed
918 between Python and IPython versions without warnings.
998 between Python and IPython versions without warnings.
919
999
920 Integration is by default with `asyncio`, but other libraries can be configured --
1000 Integration is by default with `asyncio`, but other libraries can be configured --
921 like ``curio`` or ``trio`` -- to improve concurrency in the REPL::
1001 like ``curio`` or ``trio`` -- to improve concurrency in the REPL::
922
1002
923 In [1]: %autoawait trio
1003 In [1]: %autoawait trio
924
1004
925 In [2]: import trio
1005 In [2]: import trio
926
1006
927 In [3]: async def child(i):
1007 In [3]: async def child(i):
928 ...: print(" child %s goes to sleep"%i)
1008 ...: print(" child %s goes to sleep"%i)
929 ...: await trio.sleep(2)
1009 ...: await trio.sleep(2)
930 ...: print(" child %s wakes up"%i)
1010 ...: print(" child %s wakes up"%i)
931
1011
932 In [4]: print('parent start')
1012 In [4]: print('parent start')
933 ...: async with trio.open_nursery() as n:
1013 ...: async with trio.open_nursery() as n:
934 ...: for i in range(3):
1014 ...: for i in range(3):
935 ...: n.spawn(child, i)
1015 ...: n.spawn(child, i)
936 ...: print('parent end')
1016 ...: print('parent end')
937 parent start
1017 parent start
938 child 2 goes to sleep
1018 child 2 goes to sleep
939 child 0 goes to sleep
1019 child 0 goes to sleep
940 child 1 goes to sleep
1020 child 1 goes to sleep
941 <about 2 seconds pause>
1021 <about 2 seconds pause>
942 child 2 wakes up
1022 child 2 wakes up
943 child 1 wakes up
1023 child 1 wakes up
944 child 0 wakes up
1024 child 0 wakes up
945 parent end
1025 parent end
946
1026
947 See :ref:`autoawait` for more information.
1027 See :ref:`autoawait` for more information.
948
1028
949
1029
950 Asynchronous code in a Notebook interface or any other frontend using the
1030 Asynchronous code in a Notebook interface or any other frontend using the
951 Jupyter Protocol will require further updates to the IPykernel package.
1031 Jupyter Protocol will require further updates to the IPykernel package.
952
1032
953 Non-Asynchronous code
1033 Non-Asynchronous code
954 ~~~~~~~~~~~~~~~~~~~~~
1034 ~~~~~~~~~~~~~~~~~~~~~
955
1035
956 As the internal API of IPython is now asynchronous, IPython needs to run under
1036 As the internal API of IPython is now asynchronous, IPython needs to run under
957 an event loop. In order to allow many workflows, (like using the :magic:`%run`
1037 an event loop. In order to allow many workflows, (like using the :magic:`%run`
958 magic, or copy-pasting code that explicitly starts/stop event loop), when
1038 magic, or copy-pasting code that explicitly starts/stop event loop), when
959 top-level code is detected as not being asynchronous, IPython code is advanced
1039 top-level code is detected as not being asynchronous, IPython code is advanced
960 via a pseudo-synchronous runner, and may not advance pending tasks.
1040 via a pseudo-synchronous runner, and may not advance pending tasks.
961
1041
962 Change to Nested Embed
1042 Change to Nested Embed
963 ~~~~~~~~~~~~~~~~~~~~~~
1043 ~~~~~~~~~~~~~~~~~~~~~~
964
1044
965 The introduction of the ability to run async code had some effect on the
1045 The introduction of the ability to run async code had some effect on the
966 ``IPython.embed()`` API. By default, embed will not allow you to run asynchronous
1046 ``IPython.embed()`` API. By default, embed will not allow you to run asynchronous
967 code unless an event loop is specified.
1047 code unless an event loop is specified.
968
1048
969 Effects on Magics
1049 Effects on Magics
970 ~~~~~~~~~~~~~~~~~
1050 ~~~~~~~~~~~~~~~~~
971
1051
972 Some magics will not work with async until they're updated.
1052 Some magics will not work with async until they're updated.
973 Contributions welcome.
1053 Contributions welcome.
974
1054
975 Expected Future changes
1055 Expected Future changes
976 ~~~~~~~~~~~~~~~~~~~~~~~
1056 ~~~~~~~~~~~~~~~~~~~~~~~
977
1057
978 We expect more internal but public IPython functions to become ``async``, and
1058 We expect more internal but public IPython functions to become ``async``, and
979 will likely end up having a persistent event loop while IPython is running.
1059 will likely end up having a persistent event loop while IPython is running.
980
1060
981 Thanks
1061 Thanks
982 ~~~~~~
1062 ~~~~~~
983
1063
984 This release took more than a year in the making.
1064 This release took more than a year in the making.
985 The code was rebased a number of
1065 The code was rebased a number of
986 times; leading to commit authorship that may have been lost in the final
1066 times; leading to commit authorship that may have been lost in the final
987 Pull-Request. Huge thanks to many people for contribution, discussion, code,
1067 Pull-Request. Huge thanks to many people for contribution, discussion, code,
988 documentation, use-cases: dalejung, danielballan, ellisonbg, fperez, gnestor,
1068 documentation, use-cases: dalejung, danielballan, ellisonbg, fperez, gnestor,
989 minrk, njsmith, pganssle, tacaswell, takluyver , vidartf ... And many others.
1069 minrk, njsmith, pganssle, tacaswell, takluyver , vidartf ... And many others.
990
1070
991
1071
992 Autoreload Improvement
1072 Autoreload Improvement
993 ----------------------
1073 ----------------------
994
1074
995 The magic :magic:`%autoreload 2 <autoreload>` now captures new methods added to
1075 The magic :magic:`%autoreload 2 <autoreload>` now captures new methods added to
996 classes. Earlier, only methods existing as of the initial import were being
1076 classes. Earlier, only methods existing as of the initial import were being
997 tracked and updated.
1077 tracked and updated.
998
1078
999 This new feature helps dual environment development - Jupyter+IDE - where the
1079 This new feature helps dual environment development - Jupyter+IDE - where the
1000 code gradually moves from notebook cells to package files as it gets
1080 code gradually moves from notebook cells to package files as it gets
1001 structured.
1081 structured.
1002
1082
1003 **Example**: An instance of the class ``MyClass`` will be able to access the
1083 **Example**: An instance of the class ``MyClass`` will be able to access the
1004 method ``cube()`` after it is uncommented and the file ``file1.py`` is saved on
1084 method ``cube()`` after it is uncommented and the file ``file1.py`` is saved on
1005 disk.
1085 disk.
1006
1086
1007
1087
1008 .. code::
1088 .. code::
1009
1089
1010 # notebook
1090 # notebook
1011
1091
1012 from mymodule import MyClass
1092 from mymodule import MyClass
1013 first = MyClass(5)
1093 first = MyClass(5)
1014
1094
1015 .. code::
1095 .. code::
1016
1096
1017 # mymodule/file1.py
1097 # mymodule/file1.py
1018
1098
1019 class MyClass:
1099 class MyClass:
1020
1100
1021 def __init__(self, a=10):
1101 def __init__(self, a=10):
1022 self.a = a
1102 self.a = a
1023
1103
1024 def square(self):
1104 def square(self):
1025 print('compute square')
1105 print('compute square')
1026 return self.a*self.a
1106 return self.a*self.a
1027
1107
1028 # def cube(self):
1108 # def cube(self):
1029 # print('compute cube')
1109 # print('compute cube')
1030 # return self.a*self.a*self.a
1110 # return self.a*self.a*self.a
1031
1111
1032
1112
1033
1113
1034
1114
1035 Misc
1115 Misc
1036 ----
1116 ----
1037
1117
1038 The autoindent feature that was deprecated in 5.x was re-enabled and
1118 The autoindent feature that was deprecated in 5.x was re-enabled and
1039 un-deprecated in :ghpull:`11257`
1119 un-deprecated in :ghpull:`11257`
1040
1120
1041 Make :magic:`%run -n -i ... <run>` work correctly. Earlier, if :magic:`%run` was
1121 Make :magic:`%run -n -i ... <run>` work correctly. Earlier, if :magic:`%run` was
1042 passed both arguments, ``-n`` would be silently ignored. See :ghpull:`10308`
1122 passed both arguments, ``-n`` would be silently ignored. See :ghpull:`10308`
1043
1123
1044
1124
1045 The :cellmagic:`%%script` (as well as :cellmagic:`%%bash`,
1125 The :cellmagic:`%%script` (as well as :cellmagic:`%%bash`,
1046 :cellmagic:`%%ruby`... ) cell magics now raise by default if the return code of
1126 :cellmagic:`%%ruby`... ) cell magics now raise by default if the return code of
1047 the given code is non-zero (thus halting execution of further cells in a
1127 the given code is non-zero (thus halting execution of further cells in a
1048 notebook). The behavior can be disable by passing the ``--no-raise-error`` flag.
1128 notebook). The behavior can be disable by passing the ``--no-raise-error`` flag.
1049
1129
1050
1130
1051 Deprecations
1131 Deprecations
1052 ------------
1132 ------------
1053
1133
1054 A couple of unused functions and methods have been deprecated and will be removed
1134 A couple of unused functions and methods have been deprecated and will be removed
1055 in future versions:
1135 in future versions:
1056
1136
1057 - ``IPython.utils.io.raw_print_err``
1137 - ``IPython.utils.io.raw_print_err``
1058 - ``IPython.utils.io.raw_print``
1138 - ``IPython.utils.io.raw_print``
1059
1139
1060
1140
1061 Backwards incompatible changes
1141 Backwards incompatible changes
1062 ------------------------------
1142 ------------------------------
1063
1143
1064 * The API for transforming input before it is parsed as Python code has been
1144 * The API for transforming input before it is parsed as Python code has been
1065 completely redesigned: any custom input transformations will need to be
1145 completely redesigned: any custom input transformations will need to be
1066 rewritten. See :doc:`/config/inputtransforms` for details of the new API.
1146 rewritten. See :doc:`/config/inputtransforms` for details of the new API.
1 NO CONTENT: file was removed
NO CONTENT: file was removed
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