diff --git a/IPython/utils/module_paths.py b/IPython/utils/module_paths.py index 6f8cb10..401e6a9 100644 --- a/IPython/utils/module_paths.py +++ b/IPython/utils/module_paths.py @@ -40,11 +40,13 @@ def find_mod(module_name): """ Find module `module_name` on sys.path, and return the path to module `module_name`. - - If `module_name` refers to a module directory, then return path to __init__ file. - - If `module_name` is a directory without an __init__file, return None. - - If module is missing or does not have a `.py` or `.pyw` extension, return None. - - Note that we are not interested in running bytecode. - - Otherwise, return the fill path of the module. + * If `module_name` refers to a module directory, then return path to `__init__` file. + * If `module_name` is a directory without an __init__file, return None. + + * If module is missing or does not have a `.py` or `.pyw` extension, return None. + * Note that we are not interested in running bytecode. + + * Otherwise, return the fill path of the module. Parameters ---------- diff --git a/docs/source/whatsnew/version8.rst b/docs/source/whatsnew/version8.rst index f3ff475..0718817 100644 --- a/docs/source/whatsnew/version8.rst +++ b/docs/source/whatsnew/version8.rst @@ -7,16 +7,73 @@ IPython 8.15 ------------ -Medium release of IPython after a couple of month hiatus, and a bit off-schedule. +Medium release of IPython after a couple of month hiatus, and a bit +off-schedule. + +Among other, IPython 8.15: + + - Improve compatibility with future version of Python 3.12/3.13 + :ghpull:`14107`, :ghpull:`14139`, + - Improve support for ``ExceptionGroups``, :ghpull:`14108` + - Fix hangs in ``%gui osx``, :ghpull:`14125` + - Fix memory lead with ``%reset``, :ghpull:`14133` + - Unstable config option to modify traceback highlighting that is sometime hard + to read :ghpull:`14138` + - Support ``.`` in ``ipdb`` as an argument to the ``list`` command + :ghpull:`14121` + - Workroud ``parso`` showing warning message when the default logger level is + changed :ghpull:`14119` + - Fix multiple issues with matplotlib interactive mode, qt5/qt6 :ghpull:`14128` + + +We have two larger features: + +AST-based macros +~~~~~~~~~~~~~~~~ + +:ghpull:`14100` introduce a new and efficient way to modify each execution block +(cell) using an template-ast-based transform. Unlike IPython pre and post code +execution hooks, this actually transform the code that is execute with as +minimal as possible overhead. While it was already technically possible to +register ast transformers for IPython this was far from evident. + +This should make it trivial to hook into IPython to implement custom hooks, that +for example time or profile your code, catch exceptions to provide error +messages for students or do any other kind of transformations. + +In addition to programmatic API there is also a magic to quickly register +hooks:: + + In [1]: %%code_wrap before_after + ...: print('before') + ...: __code__ + ...: print('after') + ...: __ret__ + +This mean that for any subsequent execution code will be executed. +You can modify the above to print the date, compute the execution time, +retry the code in a for loop.... + + +Allow IPdb/Pdb to move between chained exceptions +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The main change is the addition of the ability to move between chained exceptions when using IPdb, this feature was also contributed to upstream Pdb and is thus native to CPython in Python 3.13+ Though ipdb should support this feature in older version of Python. I invite you to look at the `CPython changes -and docs `_ for more details. +and docs `__ for more details. + + + +I, in particular want to thanks the `D.E. Shaw group +`__ for suggesting and funding the two largest feature +as well as many bug fixes of this release. + +As usual you can find the full list of PRs on GitHub under `the 8.15 milestone +`__. + -I also want o thanks the `D.E. Shaw group `_ for -suggesting and funding this feature. .. _version 8.14: