Comparing 8.17.2...8.18.0 · ipython/ipython
Commits on Nov 20, 2023
-
Fix list pygments styles example (#14245)
Styles needs to be imported to be able to access the `get_all_styles()` function or `get_all_styles()` could be imported directly from `styles`. This fixes the example.
-
Fix inputhook integration - Pass inputhook as an argument to Promptse…
…sion.run(). (#14241) See: prompt-toolkit/python-prompt-toolkit#1809 To summarize: - In prompt_toolkit, some changes were done to get rid of a deprecation warning related to the usage of `set_event_loop()` on Python 3.12. It looks like IPython did had a workaround for the deprecation warning, but Xonsh for instance did not. Now, the code that was fixed in prompt_toolkit breaks input hooks in IPython. - The right thing to do would be to accept the input hook as an argument in prompt_toolkit, which is what this PR does: prompt-toolkit/python-prompt-toolkit#1810 - For IPython, we have to do a similar change to pass it as an argument (this PR). It's not well tested (I'm not using IPython with inputhooks myself). I'm also not very familiar myself with IPython's code base. I think it requires some coordination. I'm not sure if there's a way to be backward compatible. I guess if I push a new prompt_toolkit version with the fix on my side, nothing will break, but input hooks will for sure not work on any Python version until this is merged. We should probably set the minimum prompt_toolkit version after merging this.
Commits on Nov 23, 2023
Commits on Nov 24, 2023
-
Fix memory leak in Qt event loop integration (#14240) (#14251)
The QEventLoop object, `event_loop`, created in `IPython/terminal/pt_intputhooks/qt.py` L58 is not deleted when exiting the scope as passing `app` to the constructor parents the object to `app`. This creates a memory leak as QEventLoop objects are being accumulated. The issue was originally reported by @pag who also suggested the fix. `pytest IPython/terminal/tests/` runs through without errors. I have tested the changes and see no more accumulation of `QEventLoop` objects. This fixes #14240