spyder-ide / spyder

Official repository for Spyder - The Scientific Python Development Environment
https://www.spyder-ide.org
MIT License
8.25k stars 1.6k forks source link

PR: Address small PySide2 compatibility issues #22197

Closed hmaarrfk closed 3 months ago

hmaarrfk commented 3 months ago

Description of Changes

Issue(s) Resolved

Fixes #

Affirmation

By submitting this Pull Request or typing my (user)name below, I affirm the Developer Certificate of Origin with respect to all commits and content included in this PR, and understand I am releasing the same under Spyder's MIT (Expat) license.

I certify the above statement is true and correct: Mark Harfouche

ccordoba12 commented 3 months ago

PySide6 still doesn't work. tested with 6.7.0

That version is affected by https://github.com/spyder-ide/qtpy/issues/480. What about older versions?

hmaarrfk commented 3 months ago

That version is affected by https://github.com/spyder-ide/qtpy/issues/480. What about older versions?

That workaround is so embedded in my workflows i forgot about that issue we worked on!

hmaarrfk commented 3 months ago

PS. still having trouble with PySide6 even for 6.6

I'll continue to investigate over time:

$ QT_API=pyside6 spyder
Could not find the Qt platform plugin "wayland" in ""
Traceback (most recent call last):
  File "/home/mark/miniforge3/envs/dev/bin/spyder", line 17, in <module>
    sys.exit(main())
  File "/home/mark/git/spyder/spyder/app/start.py", line 261, in main
    mainwindow.main(options, args)
  File "/home/mark/git/spyder/spyder/app/mainwindow.py", line 1462, in main
    mainwindow = create_window(MainWindow, app, splash, options, args)
  File "/home/mark/git/spyder/spyder/app/utils.py", line 357, in create_window
    main.setup()
  File "/home/mark/git/spyder/spyder/app/mainwindow.py", line 784, in setup
    PLUGIN_REGISTRY.register_plugin(self, PluginClass,
  File "/home/mark/git/spyder/spyder/api/plugin_registration/registry.py", line 345, in register_plugin
    instance = self._instantiate_spyder5_plugin(
  File "/home/mark/git/spyder/spyder/api/plugin_registration/registry.py", line 187, in _instantiate_spyder5_plugin
    plugin_instance = PluginClass(main_window, configuration=CONF)
  File "/home/mark/git/spyder/spyder/api/plugins/new_api.py", line 330, in __init__
    self._container = container = self.CONTAINER_CLASS(
  File "/home/mark/git/spyder/spyder/plugins/application/container.py", line 83, in __init__
    super().__init__(name, plugin, parent)
  File "/home/mark/git/spyder/spyder/api/widgets/main_container.py", line 119, in __init__
    QWidget.__init__(self, parent)
  File "/home/mark/git/spyder/spyder/api/widgets/mixins.py", line 684, in __init__
    super().__init__()
  File "/home/mark/git/spyder/spyder/api/config/mixins.py", line 293, in __init__
    'A SpyderConfigurationObserver must define a `CONF_SECTION` '
RuntimeError: '__init__' method of object's base class (ApplicationContainer) not called.
(dev) ✘-1 ~
02:59 $ ^C
(dev) ✘-INT ~
03:00 $ ip^C
(dev) ✘-INT ~
03:00 $ mamba list pyside6
# packages in environment at /home/mark/miniforge3/envs/dev:
#
# Name                    Version                   Build  Channel
pyside6                   6.6.2           py310h7a3fa89_1    conda-forge
ccordoba12 commented 3 months ago

It seems similar to the issues you fixed here, i.e. Pyside not supporting super in classes that do multiple inheritance.

hmaarrfk commented 3 months ago

Yeah..... That's what I thought too. I just couldn't find the offending issue.....