##// END OF EJS Templates
update version 7.rst
Matthias Bussonnier -
Show More
@@ -1,628 +1,634 b''
1 1 ============
2 2 7.x Series
3 3 ============
4 4
5 5 .. _version 790:
6 6
7 7 IPython 7.9 is a small release with a couple of improvement and bug fixes.
8 8
9 9 - Xterm terminal title should be restored on exit :ghpull:`11910`
10 10 - special variables ``_``,``__``, ``___`` are not set anymore when cache size
11 11 is 0 or less. :ghpull:`11877`
12 12 - Autoreload should have regained some speed by using a new heuristic logic to
13 13 find all objects needing reload. This should avoid large objects traversal
14 14 like pandas dataframes. :ghpull:`11876`
15 15 - Get ready for Python 4. :ghpull:`11874`
16 - `%env` Magic nonw has euristic to hide potentially sensitive values :ghpull:`11896`
17
18 This is a small release despite a number of Pull Request Pending that need to
19 be reviewed/worked on. Many of the core developers have been busy outside of
20 IPython/Jupyter and we thanks all contributor for their patience; we'll work on
21 these as soon as we have time.
16 22
17 23
18 24 .. _version780:
19 25
20 26 IPython 7.8.0
21 27 =============
22 28
23 29 IPython 7.8.0 contain a few bugfix and 2 new APIs:
24 30
25 31 - Enable changing the font color for LaTeX rendering :ghpull:`11840`
26 32 - and Re-Expose some PDB API (see below)
27 33
28 34 Expose Pdb API
29 35 --------------
30 36
31 37 Expose the built-in ``pdb.Pdb`` API. ``Pdb`` constructor arguments are generically
32 38 exposed, regardless of python version.
33 39 Newly exposed arguments:
34 40
35 41 - ``skip`` - Python 3.1+
36 42 - ``nosiginnt`` - Python 3.2+
37 43 - ``readrc`` - Python 3.6+
38 44
39 45 Try it out::
40 46
41 47 from IPython.terminal.debugger import TerminalPdb
42 48 pdb = TerminalPdb(skip=["skipthismodule"])
43 49
44 50
45 51 See :ghpull:`11840`
46 52
47 53 .. _version770:
48 54
49 55 IPython 7.7.0
50 56 =============
51 57
52 58 IPython 7.7.0 contain multiple bug fixes and documentation updates; Here are a
53 59 few of the outstanding issue fixed:
54 60
55 61 - Fix a bug introduced in 7.6 where the ``%matplotlib`` magic would fail on
56 62 previously acceptable arguments :ghpull:`11814`.
57 63 - Fix the manage location on freebsd :ghpull:`11808`.
58 64 - Fix error message about aliases after ``%reset`` call in ipykernel
59 65 :ghpull:`11806`
60 66 - Fix Duplication completions in emacs :ghpull:`11803`
61 67
62 68 We are planning to adopt `NEP29 <https://github.com/numpy/numpy/pull/14086>`_
63 69 (still currently in draft) which may make this minor version of IPython the
64 70 last one to support Python 3.5 and will make the code base more aggressive
65 71 toward removing compatibility with older versions of Python.
66 72
67 73 GitHub now support to give only "Triage" permissions to users; if you'd like to
68 74 help close stale issues and labels issues please reach to us with your GitHub
69 75 Username and we'll add you to the triage team. It is a great way to start
70 76 contributing and a path toward getting commit rights.
71 77
72 78 .. _version761:
73 79
74 80 IPython 7.6.1
75 81 =============
76 82
77 83 IPython 7.6.1 contain a critical bugfix in the ``%timeit`` magic, which would
78 84 crash on some inputs as a side effect of :ghpull:`11716`. See :ghpull:`11812`
79 85
80 86
81 87 .. _whatsnew760:
82 88
83 89 IPython 7.6.0
84 90 =============
85 91
86 92 IPython 7.6.0 contains a couple of bug fixes and number of small features
87 93 additions as well as some compatibility with the current development version of
88 94 Python 3.8.
89 95
90 96 - Add a ``-l`` option to :magic:`psearch` to list the available search
91 97 types. :ghpull:`11672`
92 98 - Support ``PathLike`` for ``DisplayObject`` and ``Image``. :ghpull:`11764`
93 99 - Configurability of timeout in the test suite for slow platforms.
94 100 :ghpull:`11756`
95 101 - Accept any casing for matplotlib backend. :ghpull:`121748`
96 102 - Properly skip test that requires numpy to be installed :ghpull:`11723`
97 103 - More support for Python 3.8 and positional only arguments (pep570)
98 104 :ghpull:`11720`
99 105 - Unicode names for the completion are loaded lazily on first use which
100 106 should decrease startup time. :ghpull:`11693`
101 107 - Autoreload now update the types of reloaded objects; this for example allow
102 108 pickling of reloaded objects. :ghpull:`11644`
103 109 - Fix a bug where ``%%time`` magic would suppress cell output. :ghpull:`11716`
104 110
105 111
106 112 Prepare migration to pytest (instead of nose) for testing
107 113 ---------------------------------------------------------
108 114
109 115 Most of the work between 7.5 and 7.6 was to prepare the migration from our
110 116 testing framework to pytest. Most of the test suite should now work by simply
111 117 issuing ``pytest`` from the root of the repository.
112 118
113 119 The migration to pytest is just at its beginning. Many of our test still rely
114 120 on IPython-specific plugins for nose using pytest (doctest using IPython syntax
115 121 is one example of this where test appear as "passing", while no code has been
116 122 ran). Many test also need to be updated like ``yield-test`` to be properly
117 123 parametrized tests.
118 124
119 125 Migration to pytest allowed me to discover a number of issues in our test
120 126 suite; which was hiding a number of subtle issues – or not actually running
121 127 some of the tests in our test suite – I have thus corrected many of those; like
122 128 improperly closed resources; or used of deprecated features. I also made use of
123 129 the ``pytest --durations=...`` to find some of our slowest test and speed them
124 130 up (our test suite can now be up to 10% faster). Pytest as also a variety of
125 131 plugins and flags which will make the code quality of IPython and the testing
126 132 experience better.
127 133
128 134 Misc
129 135 ----
130 136
131 137 We skipped the release of 7.6 at the end of May, but will attempt to get back
132 138 on schedule. We are starting to think about making introducing backward
133 139 incompatible change and start the 8.0 series.
134 140
135 141 Special Thanks to Gabriel (@gpotter2 on GitHub), who among other took care many
136 142 of the remaining task for 7.4 and 7.5, like updating the website.
137 143
138 144 .. _whatsnew750:
139 145
140 146 IPython 7.5.0
141 147 =============
142 148
143 149 IPython 7.5.0 consist mostly of bug-fixes, and documentation updates, with one
144 150 minor new feature. The `Audio` display element can now be assigned an element
145 151 id when displayed in browser. See :ghpull:`11670`
146 152
147 153 The major outstanding bug fix correct a change of behavior that was introduce
148 154 in 7.4.0 where some cell magics would not be able to access or modify global
149 155 scope when using the ``@needs_local_scope`` decorator. This was typically
150 156 encountered with the ``%%time`` and ``%%timeit`` magics. See :ghissue:`11659`
151 157 and :ghpull:`11698`.
152 158
153 159 .. _whatsnew740:
154 160
155 161 IPython 7.4.0
156 162 =============
157 163
158 164 Unicode name completions
159 165 ------------------------
160 166
161 167 Previously, we provided completion for a unicode name with its relative symbol.
162 168 With this, now IPython provides complete suggestions to unicode name symbols.
163 169
164 170 As on the PR, if user types ``\LAT<tab>``, IPython provides a list of
165 171 possible completions. In this case, it would be something like::
166 172
167 173 'LATIN CAPITAL LETTER A',
168 174 'LATIN CAPITAL LETTER B',
169 175 'LATIN CAPITAL LETTER C',
170 176 'LATIN CAPITAL LETTER D',
171 177 ....
172 178
173 179 This help to type unicode character that do not have short latex aliases, and
174 180 have long unicode names. for example ``Ν°``, ``\GREEK CAPITAL LETTER HETA``.
175 181
176 182 This feature was contributed by Luciana Marques :ghpull:`11583`.
177 183
178 184 Make audio normalization optional
179 185 ---------------------------------
180 186
181 187 Added 'normalize' argument to `IPython.display.Audio`. This argument applies
182 188 when audio data is given as an array of samples. The default of `normalize=True`
183 189 preserves prior behavior of normalizing the audio to the maximum possible range.
184 190 Setting to `False` disables normalization.
185 191
186 192
187 193 Miscellaneous
188 194 -------------
189 195
190 196 - Fix improper acceptation of ``return`` outside of functions. :ghpull:`11641`.
191 197 - Fixed PyQt 5.11 backwards incompatibility causing sip import failure.
192 198 :ghpull:`11613`.
193 199 - Fix Bug where ``type?`` would crash IPython. :ghpull:`1608`.
194 200 - Allow to apply ``@needs_local_scope`` to cell magics for convenience.
195 201 :ghpull:`11542`.
196 202
197 203 .. _whatsnew730:
198 204
199 205 IPython 7.3.0
200 206 =============
201 207
202 208 .. _whatsnew720:
203 209
204 210 IPython 7.3.0 bring several bug fixes and small improvements that you will
205 211 described bellow.
206 212
207 213 The biggest change to this release is the implementation of the ``%conda`` and
208 214 ``%pip`` magics, that will attempt to install packages in the **current
209 215 environment**. You may still need to restart your interpreter or kernel for the
210 216 change to be taken into account, but it should simplify installation of packages
211 217 into remote environment. Installing using pip/conda from the command line is
212 218 still the prefer method.
213 219
214 220 The ``%pip`` magic was already present, but was only printing a warning; now it
215 221 will actually forward commands to pip.
216 222
217 223 Misc bug fixes and improvements:
218 224
219 225 - Compatibility with Python 3.8.
220 226 - Do not expand shell variable in execution magics, and added the
221 227 ``no_var_expand`` decorator for magic requiring a similar functionality
222 228 :ghpull:`11516`
223 229 - Add ``%pip`` and ``%conda`` magic :ghpull:`11524`
224 230 - Re-initialize posix aliases after a ``%reset`` :ghpull:`11528`
225 231 - Allow the IPython command line to run ``*.ipynb`` files :ghpull:`11529`
226 232
227 233 IPython 7.2.0
228 234 =============
229 235
230 236 IPython 7.2.0 brings minor bugfixes, improvements, and new configuration options:
231 237
232 238 - Fix a bug preventing PySide2 GUI integration from working :ghpull:`11464`
233 239 - Run CI on Mac OS ! :ghpull:`11471`
234 240 - Fix IPython "Demo" mode. :ghpull:`11498`
235 241 - Fix ``%run`` magic with path in name :ghpull:`11499`
236 242 - Fix: add CWD to sys.path *after* stdlib :ghpull:`11502`
237 243 - Better rendering of signatures, especially long ones. :ghpull:`11505`
238 244 - Re-enable jedi by default if it's installed :ghpull:`11506`
239 245 - Add New ``minimal`` exception reporting mode (useful for educational purpose). See :ghpull:`11509`
240 246
241 247
242 248 Added ability to show subclasses when using pinfo and other utilities
243 249 ---------------------------------------------------------------------
244 250
245 251 When using ``?``/``??`` on a class, IPython will now list the first 10 subclasses.
246 252
247 253 Special Thanks to Chris Mentzel of the Moore Foundation for this feature. Chris
248 254 is one of the people who played a critical role in IPython/Jupyter getting
249 255 funding.
250 256
251 257 We are grateful for all the help Chris has given us over the years,
252 258 and we're now proud to have code contributed by Chris in IPython.
253 259
254 260 OSMagics.cd_force_quiet configuration option
255 261 --------------------------------------------
256 262
257 263 You can set this option to force the %cd magic to behave as if ``-q`` was passed:
258 264 ::
259 265
260 266 In [1]: cd /
261 267 /
262 268
263 269 In [2]: %config OSMagics.cd_force_quiet = True
264 270
265 271 In [3]: cd /tmp
266 272
267 273 In [4]:
268 274
269 275 See :ghpull:`11491`
270 276
271 277 In vi editing mode, whether the prompt includes the current vi mode can now be configured
272 278 -----------------------------------------------------------------------------------------
273 279
274 280 Set the ``TerminalInteractiveShell.prompt_includes_vi_mode`` to a boolean value
275 281 (default: True) to control this feature. See :ghpull:`11492`
276 282
277 283 .. _whatsnew710:
278 284
279 285 IPython 7.1.0
280 286 =============
281 287
282 288 IPython 7.1.0 is the first minor release after 7.0.0 and mostly brings fixes to
283 289 new features, internal refactoring, and fixes for regressions that happened during the 6.x->7.x
284 290 transition. It also brings **Compatibility with Python 3.7.1**, as we're
285 291 unwillingly relying on a bug in CPython.
286 292
287 293 New Core Dev:
288 294
289 295 - We welcome Jonathan Slenders to the commiters. Jonathan has done a fantastic
290 296 work on prompt_toolkit, and we'd like to recognise his impact by giving him
291 297 commit rights. :ghissue:`11397`
292 298
293 299 Notable Changes
294 300
295 301 - Major update of "latex to unicode" tab completion map (see below)
296 302
297 303 Notable New Features:
298 304
299 305 - Restore functionality and documentation of the **sphinx directive**, which
300 306 is now stricter (fail on error by daefault), has new configuration options,
301 307 has a brand new documentation page :ref:`ipython_directive` (which needs
302 308 some cleanup). It is also now *tested* so we hope to have less regressions.
303 309 :ghpull:`11402`
304 310
305 311 - ``IPython.display.Video`` now supports ``width`` and ``height`` arguments,
306 312 allowing a custom width and height to be set instead of using the video's
307 313 width and height. :ghpull:`11353`
308 314
309 315 - Warn when using ``HTML('<iframe>')`` instead of ``IFrame`` :ghpull:`11350`
310 316
311 317 - Allow Dynamic switching of editing mode between vi/emacs and show
312 318 normal/input mode in prompt when using vi. :ghpull:`11390`. Use ``%config
313 319 TerminalInteractiveShell.editing_mode = 'vi'`` or ``%config
314 320 TerminalInteractiveShell.editing_mode = 'emacs'`` to dynamically switch
315 321 between modes.
316 322
317 323
318 324 Notable Fixes:
319 325
320 326 - Fix entering of **multi-line blocks in terminal** IPython, and various
321 327 crashes in the new input transformation machinery :ghpull:`11354`,
322 328 :ghpull:`11356`, :ghpull:`11358`. These also fix a **Compatibility bug
323 329 with Python 3.7.1**.
324 330
325 331 - Fix moving through generator stack in ipdb :ghpull:`11266`
326 332
327 333 - %Magic command arguments now support quoting. :ghpull:`11330`
328 334
329 335 - Re-add ``rprint`` and ``rprinte`` aliases. :ghpull:`11331`
330 336
331 337 - Remove implicit dependency on ``ipython_genutils`` :ghpull:`11317`
332 338
333 339 - Make ``nonlocal`` raise ``SyntaxError`` instead of silently failing in async
334 340 mode. :ghpull:`11382`
335 341
336 342 - Fix mishandling of magics and ``= !`` assignment just after a dedent in
337 343 nested code blocks :ghpull:`11418`
338 344
339 345 - Fix instructions for custom shortcuts :ghpull:`11426`
340 346
341 347
342 348 Notable Internals improvements:
343 349
344 350 - Use of ``os.scandir`` (Python 3 only) to speed up some file system operations.
345 351 :ghpull:`11365`
346 352
347 353 - use ``perf_counter`` instead of ``clock`` for more precise
348 354 timing results with ``%time`` :ghpull:`11376`
349 355
350 356 Many thanks to all the contributors and in particular to ``bartskowron`` and
351 357 ``tonyfast`` who handled some pretty complicated bugs in the input machinery. We
352 358 had a number of first time contributors and maybe hacktoberfest participants that
353 359 made significant contributions and helped us free some time to focus on more
354 360 complicated bugs.
355 361
356 362 You
357 363 can see all the closed issues and Merged PR, new features and fixes `here
358 364 <https://github.com/ipython/ipython/issues?utf8=%E2%9C%93&q=+is%3Aclosed+milestone%3A7.1+>`_.
359 365
360 366 Unicode Completion update
361 367 -------------------------
362 368
363 369 In IPython 7.1 the Unicode completion map has been updated and synchronized with
364 370 the Julia language.
365 371
366 372 Added and removed character characters:
367 373
368 374 ``\jmath`` (``Θ·``), ``\\underleftrightarrow`` (U+034D, combining) have been
369 375 added, while ``\\textasciicaron`` have been removed
370 376
371 377 Some sequences have seen their prefix removed:
372 378
373 379 - 6 characters ``\text...<tab>`` should now be inputed with ``\...<tab>`` directly,
374 380 - 45 characters ``\Elz...<tab>`` should now be inputed with ``\...<tab>`` directly,
375 381 - 65 characters ``\B...<tab>`` should now be inputed with ``\...<tab>`` directly,
376 382 - 450 characters ``\m...<tab>`` should now be inputed with ``\...<tab>`` directly,
377 383
378 384 Some sequences have seen their prefix shortened:
379 385
380 386 - 5 characters ``\mitBbb...<tab>`` should now be inputed with ``\bbi...<tab>`` directly,
381 387 - 52 characters ``\mit...<tab>`` should now be inputed with ``\i...<tab>`` directly,
382 388 - 216 characters ``\mbfit...<tab>`` should now be inputed with ``\bi...<tab>`` directly,
383 389 - 222 characters ``\mbf...<tab>`` should now be inputed with ``\b...<tab>`` directly,
384 390
385 391 A couple of characters had their sequence simplified:
386 392
387 393 - ``Γ°``, type ``\dh<tab>``, instead of ``\eth<tab>``
388 394 - ``Δ§``, type ``\hbar<tab>``, instead of ``\Elzxh<tab>``
389 395 - ``ΙΈ``, type ``\ltphi<tab>``, instead of ``\textphi<tab>``
390 396 - ``Ο΄``, type ``\varTheta<tab>``, instead of ``\textTheta<tab>``
391 397 - ``ℇ``, type ``\eulermascheroni<tab>``, instead of ``\Eulerconst<tab>``
392 398 - ``β„Ž``, type ``\planck<tab>``, instead of ``\Planckconst<tab>``
393 399
394 400 - U+0336 (COMBINING LONG STROKE OVERLAY), type ``\strike<tab>``, instead of ``\Elzbar<tab>``.
395 401
396 402 A couple of sequences have been updated:
397 403
398 404 - ``\varepsilon`` now gives ``Ι›`` (GREEK SMALL LETTER EPSILON) instead of ``Ξ΅`` (GREEK LUNATE EPSILON SYMBOL),
399 405 - ``\underbar`` now gives U+0331 (COMBINING MACRON BELOW) instead of U+0332 (COMBINING LOW LINE).
400 406
401 407
402 408 .. _whatsnew700:
403 409
404 410 IPython 7.0.0
405 411 =============
406 412
407 413 Released Thursday September 27th, 2018
408 414
409 415 IPython 7 includes major feature improvements.
410 416 This is also the second major version of IPython to support only
411 417 Python 3 – starting at Python 3.4. Python 2 is still community-supported
412 418 on the bugfix only 5.x branch, but we remind you that Python 2 "end of life"
413 419 is on Jan 1st 2020.
414 420
415 421 We were able to backport bug fixes to the 5.x branch thanks to our backport bot which
416 422 backported more than `70 Pull-Requests
417 423 <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>`_
418 424
419 425 The IPython 6.x branch will likely not see any further release unless critical
420 426 bugs are found.
421 427
422 428 Make sure you have pip > 9.0 before upgrading. You should be able to update by running:
423 429
424 430 .. code::
425 431
426 432 pip install ipython --upgrade
427 433
428 434 .. only:: ipydev
429 435
430 436 If you are trying to install or update an ``alpha``, ``beta``, or ``rc``
431 437 version, use pip ``--pre`` flag.
432 438
433 439 .. code::
434 440
435 441 pip install ipython --upgrade --pre
436 442
437 443
438 444 Or, if you have conda installed:
439 445
440 446 .. code::
441 447
442 448 conda install ipython
443 449
444 450
445 451
446 452 Prompt Toolkit 2.0
447 453 ------------------
448 454
449 455 IPython 7.0+ now uses ``prompt_toolkit 2.0``. If you still need to use an earlier
450 456 ``prompt_toolkit`` version, you may need to pin IPython to ``<7.0``.
451 457
452 458 Autowait: Asynchronous REPL
453 459 ---------------------------
454 460
455 461 Staring with IPython 7.0 on Python 3.6+, IPython can automatically ``await``
456 462 top level code. You should not need to access an event loop or runner
457 463 yourself. To learn more, read the :ref:`autoawait` section of our docs, see
458 464 :ghpull:`11265`, or try the following code::
459 465
460 466 Python 3.6.0
461 467 Type 'copyright', 'credits' or 'license' for more information
462 468 IPython 7.0.0 -- An enhanced Interactive Python. Type '?' for help.
463 469
464 470 In [1]: import aiohttp
465 471 ...: result = aiohttp.get('https://api.github.com')
466 472
467 473 In [2]: response = await result
468 474 <pause for a few 100s ms>
469 475
470 476 In [3]: await response.json()
471 477 Out[3]:
472 478 {'authorizations_url': 'https://api.github.com/authorizations',
473 479 'code_search_url': 'https://api.github.com/search/code?q={query}{&page,per_page,sort,order}',
474 480 ...
475 481 }
476 482
477 483 .. note::
478 484
479 485 Async integration is experimental code, behavior may change or be removed
480 486 between Python and IPython versions without warnings.
481 487
482 488 Integration is by default with `asyncio`, but other libraries can be configured --
483 489 like ``curio`` or ``trio`` -- to improve concurrency in the REPL::
484 490
485 491 In [1]: %autoawait trio
486 492
487 493 In [2]: import trio
488 494
489 495 In [3]: async def child(i):
490 496 ...: print(" child %s goes to sleep"%i)
491 497 ...: await trio.sleep(2)
492 498 ...: print(" child %s wakes up"%i)
493 499
494 500 In [4]: print('parent start')
495 501 ...: async with trio.open_nursery() as n:
496 502 ...: for i in range(3):
497 503 ...: n.spawn(child, i)
498 504 ...: print('parent end')
499 505 parent start
500 506 child 2 goes to sleep
501 507 child 0 goes to sleep
502 508 child 1 goes to sleep
503 509 <about 2 seconds pause>
504 510 child 2 wakes up
505 511 child 1 wakes up
506 512 child 0 wakes up
507 513 parent end
508 514
509 515 See :ref:`autoawait` for more information.
510 516
511 517
512 518 Asynchronous code in a Notebook interface or any other frontend using the
513 519 Jupyter Protocol will require further updates to the IPykernel package.
514 520
515 521 Non-Asynchronous code
516 522 ~~~~~~~~~~~~~~~~~~~~~
517 523
518 524 As the internal API of IPython is now asynchronous, IPython needs to run under
519 525 an event loop. In order to allow many workflows, (like using the :magic:`%run`
520 526 magic, or copy-pasting code that explicitly starts/stop event loop), when
521 527 top-level code is detected as not being asynchronous, IPython code is advanced
522 528 via a pseudo-synchronous runner, and may not advance pending tasks.
523 529
524 530 Change to Nested Embed
525 531 ~~~~~~~~~~~~~~~~~~~~~~
526 532
527 533 The introduction of the ability to run async code had some effect on the
528 534 ``IPython.embed()`` API. By default, embed will not allow you to run asynchronous
529 535 code unless an event loop is specified.
530 536
531 537 Effects on Magics
532 538 ~~~~~~~~~~~~~~~~~
533 539
534 540 Some magics will not work with async until they're updated.
535 541 Contributions welcome.
536 542
537 543 Expected Future changes
538 544 ~~~~~~~~~~~~~~~~~~~~~~~
539 545
540 546 We expect more internal but public IPython functions to become ``async``, and
541 547 will likely end up having a persistent event loop while IPython is running.
542 548
543 549 Thanks
544 550 ~~~~~~
545 551
546 552 This release took more than a year in the making.
547 553 The code was rebased a number of
548 554 times; leading to commit authorship that may have been lost in the final
549 555 Pull-Request. Huge thanks to many people for contribution, discussion, code,
550 556 documentation, use-cases: dalejung, danielballan, ellisonbg, fperez, gnestor,
551 557 minrk, njsmith, pganssle, tacaswell, takluyver , vidartf ... And many others.
552 558
553 559
554 560 Autoreload Improvement
555 561 ----------------------
556 562
557 563 The magic :magic:`%autoreload 2 <autoreload>` now captures new methods added to
558 564 classes. Earlier, only methods existing as of the initial import were being
559 565 tracked and updated.
560 566
561 567 This new feature helps dual environment development - Jupyter+IDE - where the
562 568 code gradually moves from notebook cells to package files as it gets
563 569 structured.
564 570
565 571 **Example**: An instance of the class ``MyClass`` will be able to access the
566 572 method ``cube()`` after it is uncommented and the file ``file1.py`` is saved on
567 573 disk.
568 574
569 575
570 576 .. code::
571 577
572 578 # notebook
573 579
574 580 from mymodule import MyClass
575 581 first = MyClass(5)
576 582
577 583 .. code::
578 584
579 585 # mymodule/file1.py
580 586
581 587 class MyClass:
582 588
583 589 def __init__(self, a=10):
584 590 self.a = a
585 591
586 592 def square(self):
587 593 print('compute square')
588 594 return self.a*self.a
589 595
590 596 # def cube(self):
591 597 # print('compute cube')
592 598 # return self.a*self.a*self.a
593 599
594 600
595 601
596 602
597 603 Misc
598 604 ----
599 605
600 606 The autoindent feature that was deprecated in 5.x was re-enabled and
601 607 un-deprecated in :ghpull:`11257`
602 608
603 609 Make :magic:`%run -n -i ... <run>` work correctly. Earlier, if :magic:`%run` was
604 610 passed both arguments, ``-n`` would be silently ignored. See :ghpull:`10308`
605 611
606 612
607 613 The :cellmagic:`%%script` (as well as :cellmagic:`%%bash`,
608 614 :cellmagic:`%%ruby`... ) cell magics now raise by default if the return code of
609 615 the given code is non-zero (thus halting execution of further cells in a
610 616 notebook). The behavior can be disable by passing the ``--no-raise-error`` flag.
611 617
612 618
613 619 Deprecations
614 620 ------------
615 621
616 622 A couple of unused functions and methods have been deprecated and will be removed
617 623 in future versions:
618 624
619 625 - ``IPython.utils.io.raw_print_err``
620 626 - ``IPython.utils.io.raw_print``
621 627
622 628
623 629 Backwards incompatible changes
624 630 ------------------------------
625 631
626 632 * The API for transforming input before it is parsed as Python code has been
627 633 completely redesigned: any custom input transformations will need to be
628 634 rewritten. See :doc:`/config/inputtransforms` for details of the new API.
General Comments 0
You need to be logged in to leave comments. Login now