##// 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:

r28693:402cb44a
r28842:e5d1a069 merge
Show More
nightly-wheel-build.yml
34 lines | 1.1 KiB | text/x-yaml | YamlLexer
/ .github / workflows / nightly-wheel-build.yml
Matthias Bussonnier
Update nightly-wheel-build.yml
r28298 name: Nightly Wheel builder
Matthias Bussonnier
try dispatach weekly build
r28294 on:
workflow_dispatch:
Matthias Bussonnier
cron nightly
r28306 schedule:
# this cron is ran every Sunday at midnight UTC
- cron: '0 0 * * 0'
Matthias Bussonnier
try dispatach weekly build
r28294
Matthias Bussonnier
Update nightly-wheel-build.yml
r28298 jobs:
upload_anaconda:
name: Upload to Anaconda
runs-on: ubuntu-latest
Ian Thomas
Disable scheduled CI runs on forks
r28693 # The artifacts cannot be uploaded on PRs, also disable scheduled CI runs on forks
if: github.event_name != 'pull_request' && (github.event_name != 'schedule' || github.repository_owner == 'ipython')
Matthias Bussonnier
try dispatach weekly build
r28294
Matthias Bussonnier
Update nightly-wheel-build.yml
r28298 steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
cache: pip
cache-dependency-path: |
Matthias Koeppe
.github/workflows: Update actions/setup-python cache-dependency-path
r28635 pyproject.toml
Matthias Bussonnier
Update nightly-wheel-build.yml
r28298 - name: Try building with Python build
if: runner.os != 'Windows' # setup.py does not support sdist on Windows
run: |
Matthias Bussonnier
Update nightly-wheel-build.yml
r28302 python -m pip install build
Matthias Bussonnier
Update nightly-wheel-build.yml
r28298 python -m build
Matthias Bussonnier
try dispatach weekly build
r28294
Martin Fleischmann
fix nightly action repo name
r28299 - name: Upload wheel
Matthias Bussonnier
Update nightly-wheel-build.yml
r28301 uses: scientific-python/upload-nightly-action@main
Martin Fleischmann
fix nightly action repo name
r28299 with:
Matthias Bussonnier
trailing slash
r28305 artifacts_path: dist
Matthias Bussonnier
try double {
r28304 anaconda_nightly_upload_token: ${{secrets.UPLOAD_TOKEN}}