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