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