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