Show More
@@ -40,11 +40,13 b' def find_mod(module_name):' | |||||
40 | """ |
|
40 | """ | |
41 | Find module `module_name` on sys.path, and return the path to module `module_name`. |
|
41 | Find module `module_name` on sys.path, and return the path to module `module_name`. | |
42 |
|
42 | |||
43 |
|
|
43 | * If `module_name` refers to a module directory, then return path to `__init__` file. | |
44 |
|
|
44 | * If `module_name` is a directory without an __init__file, return None. | |
45 | - If module is missing or does not have a `.py` or `.pyw` extension, return None. |
|
45 | ||
46 | - Note that we are not interested in running bytecode. |
|
46 | * If module is missing or does not have a `.py` or `.pyw` extension, return None. | |
47 | - Otherwise, return the fill path of the module. |
|
47 | * Note that we are not interested in running bytecode. | |
|
48 | ||||
|
49 | * Otherwise, return the fill path of the module. | |||
48 |
|
50 | |||
49 | Parameters |
|
51 | Parameters | |
50 | ---------- |
|
52 | ---------- |
@@ -7,16 +7,73 b'' | |||||
7 | IPython 8.15 |
|
7 | IPython 8.15 | |
8 | ------------ |
|
8 | ------------ | |
9 |
|
9 | |||
10 |
Medium release of IPython after a couple of month hiatus, and a bit |
|
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 | The main change is the addition of the ability to move between chained |
|
61 | The main change is the addition of the ability to move between chained | |
13 | exceptions when using IPdb, this feature was also contributed to upstream Pdb |
|
62 | exceptions when using IPdb, this feature was also contributed to upstream Pdb | |
14 | and is thus native to CPython in Python 3.13+ Though ipdb should support this |
|
63 | and is thus native to CPython in Python 3.13+ Though ipdb should support this | |
15 | feature in older version of Python. I invite you to look at the `CPython changes |
|
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 | .. _version 8.14: |
|
78 | .. _version 8.14: | |
22 |
|
79 |
General Comments 0
You need to be logged in to leave comments.
Login now