##// END OF EJS Templates
Fix use of pyside6 >= 6.7.0 (#14510)...
Fix use of pyside6 >= 6.7.0 (#14510) Fixes #14463. Using `pyside6 >= 6.7.0` as the `qt6` gui loop gives the following error: ``` In [1]: %gui qt6 In [2]: Traceback (most recent call last): File "/Users/iant/micromamba/envs/temp/bin/ipython", line 8, in <module> sys.exit(start_ipython()) ^^^^^^^^^^^^^^^ File "/Users/iant/github/ipython/IPython/__init__.py", line 130, in start_ipython return launch_new_instance(argv=argv, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/iant/micromamba/envs/temp/lib/python3.12/site-packages/traitlets/config/application.py", line 1075, in launch_instance app.start() File "/Users/iant/github/ipython/IPython/terminal/ipapp.py", line 317, in start self.shell.mainloop() File "/Users/iant/github/ipython/IPython/terminal/interactiveshell.py", line 917, in mainloop self.interact() File "/Users/iant/github/ipython/IPython/terminal/interactiveshell.py", line 902, in interact code = self.prompt_for_code() ^^^^^^^^^^^^^^^^^^^^^^ File "/Users/iant/github/ipython/IPython/terminal/interactiveshell.py", line 845, in prompt_for_code text = self.pt_app.prompt( ^^^^^^^^^^^^^^^^^^^ File "/Users/iant/micromamba/envs/temp/lib/python3.12/site-packages/prompt_toolkit/shortcuts/prompt.py", line 1035, in prompt return self.app.run( ^^^^^^^^^^^^^ File "/Users/iant/micromamba/envs/temp/lib/python3.12/site-packages/prompt_toolkit/application/application.py", line 978, in run result = loop.run_until_complete(coro) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/iant/micromamba/envs/temp/lib/python3.12/asyncio/base_events.py", line 674, in run_until_complete self.run_forever() File "/Users/iant/micromamba/envs/temp/lib/python3.12/asyncio/base_events.py", line 641, in run_forever self._run_once() File "/Users/iant/micromamba/envs/temp/lib/python3.12/asyncio/base_events.py", line 1948, in _run_once event_list = self._selector.select(timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/iant/micromamba/envs/temp/lib/python3.12/site-packages/prompt_toolkit/eventloop/inputhook.py", line 150, in select self.inputhook(InputHookContext(self._r, input_is_ready)) File "/Users/iant/github/ipython/IPython/terminal/pt_inputhooks/qt.py", line 50, in inputhook _appref = app = QtGui.QApplication([" "]) ^^^^^^^^^^^^^^^^^^ AttributeError: module 'PySide6.QtPrintSupport' has no attribute 'QApplication' If you suspect this is an IPython 8.28.0.dev bug, please report it at: https://github.com/ipython/ipython/issues or send an email to the mailing list at ipython-dev@python.org You can print a more detailed traceback right now with "%tb", or use "%debug" to interactively debug it. Extra-detailed tracebacks for bug-reporting purposes can be enabled via: %config Application.verbose_crash=True ``` This is because we use the imported module's `__dict__` to get the classes and functions available in the module here: https://github.com/ipython/ipython/blob/9b8cd4a397e5894ffeadad52477bb53e0fb664fc/IPython/external/qt_loaders.py#L309-L311 This no longer works as not all the classes and functions are in the `__dict__`. The solution in this PR is to use `dir(module)` instead. I have tested this locally using `pyside6` 6.6.3.1, 6.7.0, 6.7.1 and 6.7.2 and it works for me. It also successfully creates Matplotlib plots using for example ``` In [1]: %matplotlib qt6 In [2]: import matplotlib.pyplot as plt In [3]: plt.plot([1,3,2]) ``` It would be good to get independent confirmation that this fixes other downstream libraries as I tend to work directly with IPython and IPyKernel.

File last commit:

r27782:ef9f0dec
r28842:e5d1a069 merge
Show More
docs.yml
39 lines | 1.0 KiB | text/x-yaml | YamlLexer
Thomas Kluyver
Fix name of workflow
r26433 name: Build docs
Thomas Kluyver
Add docs workflow on Github
r26432
on: [push, pull_request]
Matthias Bussonnier
SEC: force workflows to be read-only....
r27782 permissions:
contents: read
Thomas Kluyver
Add docs workflow on Github
r26432 jobs:
Thomas Kluyver
Names again
r26435 build:
Thomas Kluyver
Add docs workflow on Github
r26432 runs-on: ubuntu-latest
steps:
Christian Clauss
Upgrade GitHub Actions
r27723 - uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
Thomas Kluyver
Add docs workflow on Github
r26432 with:
Christian Clauss
Upgrade GitHub Actions
r27723 python-version: 3.x
Thomas Kluyver
Add docs workflow on Github
r26432 - name: Install Graphviz
run: |
sudo apt-get update
sudo apt-get install graphviz
- name: Install Python dependencies
run: |
Matthias Bussonnier
3rd attempt at 8.0.0a1
r27329 python -m pip install --upgrade pip setuptools coverage rstvalidator
Thomas Kluyver
Add docs workflow on Github
r26432 pip install -r docs/requirements.txt
- name: Build docs
run: |
Matthias Bussonnier
3rd attempt at 8.0.0a1
r27329 python -m rstvalidator long_description.rst
Thomas Kluyver
Add docs workflow on Github
r26432 python tools/fixup_whats_new_pr.py
Nikita Kniazev
CI: Collect coverage from docs build
r27101 make -C docs/ html SPHINXOPTS="-W" \
PYTHON="coverage run -a" \
SPHINXBUILD="coverage run -a -m sphinx.cmd.build"
- name: Generate coverage xml
run: |
coverage combine `find . -name .coverage\*` && coverage xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v2
with:
name: Docs