PVPlant: shim PySide2→PySide6 en Init.py para compatibilidad FreeCAD 1.1. Archivos vuelven a usar PySide2

This commit is contained in:
Javier Braña
2026-05-03 00:41:53 +02:00
parent 74aedf6122
commit 37610302ab
7 changed files with 45 additions and 10 deletions
+35
View File
@@ -25,6 +25,41 @@ FreeCAD.addImportType("3D Studio mesh (*.3ds)","import3DS")
FreeCAD.addImportType("SweetHome3D XML export (*.zip)","importSH3D")
import os
import sys
# ---------------------------------------------------------------------------
# Shim PySide: FreeCAD 1.1 usa PySide6. Los archivos del workbench importan
# desde PySide o PySide2. Este parche redirige ambos a PySide6.
# ---------------------------------------------------------------------------
try:
import PySide6
# Crear alias para que from PySide import ... funcione
class _PySideShim:
pass
# Los submódulos se cargan bajo demanda
_pyside_submodules = {}
class _PySideLoader:
"""Loader que redirige PySide.X a PySide6.X"""
def __getattr__(self, name):
if name not in _pyside_submodules:
try:
_pyside_submodules[name] = getattr(PySide6, name)
except AttributeError:
# Algunos submódulos como QtWidgets tienen su propio import
try:
_pyside_submodules[name] = __import__('PySide6.' + name, fromlist=[name])
except ImportError:
raise AttributeError(f"PySide no tiene el submódulo '{name}' (PySide6 tampoco)")
return _pyside_submodules[name]
_shim = _PySideLoader()
sys.modules['PySide'] = _shim
sys.modules['PySide2'] = _shim
except ImportError:
pass
# ---------------------------------------------------------------------------
__path__ = __import__('pkgutil').extend_path(__path__, __name__)