|
7 | 7 | IPython 8.15 |
8 | 8 | ------------ |
9 | 9 |
|
10 | | -Medium release of IPython after a couple of month hiatus, and a bit off-schedule. |
| 10 | +Medium release of IPython after a couple of month hiatus, and a bit |
| 11 | +off-schedule. |
| 12 | + |
| 13 | +Among other, IPython 8.15: |
| 14 | + |
| 15 | + - Improve compatibility with future version of Python 3.12/3.13 |
| 16 | + :ghpull:`14107`, :ghpull:`14139`, |
| 17 | + - Improve support for ``ExceptionGroups``, :ghpull:`14108` |
| 18 | + - Fix hangs in ``%gui osx``, :ghpull:`14125` |
| 19 | + - Fix memory lead with ``%reset``, :ghpull:`14133` |
| 20 | + - Unstable config option to modify traceback highlighting that is sometime hard |
| 21 | + to read :ghpull:`14138` |
| 22 | + - Support ``.`` in ``ipdb`` as an argument to the ``list`` command |
| 23 | + :ghpull:`14121` |
| 24 | + - Workroud ``parso`` showing warning message when the default logger level is |
| 25 | + changed :ghpull:`14119` |
| 26 | + - Fix multiple issues with matplotlib interactive mode, qt5/qt6 :ghpull:`14128` |
| 27 | + |
| 28 | + |
| 29 | +We have two larger features: |
| 30 | + |
| 31 | +AST-based macros |
| 32 | +~~~~~~~~~~~~~~~~ |
| 33 | + |
| 34 | +:ghpull:`14100` introduce a new and efficient way to modify each execution block |
| 35 | +(cell) using an template-ast-based transform. Unlike IPython pre and post code |
| 36 | +execution hooks, this actually transform the code that is execute with as |
| 37 | +minimal as possible overhead. While it was already technically possible to |
| 38 | +register ast transformers for IPython this was far from evident. |
| 39 | + |
| 40 | +This should make it trivial to hook into IPython to implement custom hooks, that |
| 41 | +for example time or profile your code, catch exceptions to provide error |
| 42 | +messages for students or do any other kind of transformations. |
| 43 | + |
| 44 | +In addition to programmatic API there is also a magic to quickly register |
| 45 | +hooks:: |
| 46 | + |
| 47 | + In [1]: %%code_wrap before_after |
| 48 | + ...: print('before') |
| 49 | + ...: __code__ |
| 50 | + ...: print('after') |
| 51 | + ...: __ret__ |
| 52 | + |
| 53 | +This mean that for any subsequent execution code will be executed. |
| 54 | +You can modify the above to print the date, compute the execution time, |
| 55 | +retry the code in a for loop.... |
| 56 | + |
| 57 | + |
| 58 | +Allow IPdb/Pdb to move between chained exceptions |
| 59 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
11 | 60 |
|
12 | 61 | The main change is the addition of the ability to move between chained |
13 | 62 | exceptions when using IPdb, this feature was also contributed to upstream Pdb |
14 | 63 | and is thus native to CPython in Python 3.13+ Though ipdb should support this |
15 | 64 | feature in older version of Python. I invite you to look at the `CPython changes |
16 | | -and docs <https://github.com/python/cpython/pull/106676>`_ for more details. |
| 65 | +and docs <https://github.com/python/cpython/pull/106676>`__ for more details. |
| 66 | + |
| 67 | + |
| 68 | + |
| 69 | +I, in particular want to thanks the `D.E. Shaw group |
| 70 | +<https://www.deshaw.com/>`__ for suggesting and funding the two largest feature |
| 71 | +as well as many bug fixes of this release. |
| 72 | + |
| 73 | +As usual you can find the full list of PRs on GitHub under `the 8.15 milestone |
| 74 | +<https://github.com/ipython/ipython/milestone/120?closed=1>`__. |
| 75 | + |
17 | 76 |
|
18 | | -I also want o thanks the `D.E. Shaw group <https://www.deshaw.com/>`_ for |
19 | | -suggesting and funding this feature. |
20 | 77 |
|
21 | 78 | .. _version 8.14: |
22 | 79 |
|
|
0 commit comments