PVPlant: shim PySide2→PySide6 en Init.py para compatibilidad FreeCAD 1.1. Archivos vuelven a usar PySide2
This commit is contained in:
@@ -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__)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user