From e33d11518b2bbd35ac473a7d683d4396bb6989a7 Mon Sep 17 00:00:00 2001 From: Talley Lambert Date: Sun, 7 Nov 2021 15:08:19 -0500 Subject: [PATCH 01/11] remove qtcompat --- src/superqt/qtcompat/Qt3DAnimation.pyi | 4 - src/superqt/qtcompat/Qt3DCore.pyi | 4 - src/superqt/qtcompat/Qt3DExtras.pyi | 4 - src/superqt/qtcompat/Qt3DInput.pyi | 4 - src/superqt/qtcompat/Qt3DLogic.pyi | 4 - src/superqt/qtcompat/Qt3DRender.pyi | 4 - src/superqt/qtcompat/QtCharts.pyi | 4 - src/superqt/qtcompat/QtConcurrent.pyi | 4 - src/superqt/qtcompat/QtCore.py | 12 -- src/superqt/qtcompat/QtCore.pyi | 10 -- src/superqt/qtcompat/QtDataVisualization.pyi | 4 - src/superqt/qtcompat/QtGui.py | 13 --- src/superqt/qtcompat/QtGui.pyi | 4 - src/superqt/qtcompat/QtHelp.pyi | 4 - src/superqt/qtcompat/QtLocation.pyi | 4 - src/superqt/qtcompat/QtMacExtras.pyi | 4 - src/superqt/qtcompat/QtMultimedia.pyi | 4 - src/superqt/qtcompat/QtMultimediaWidgets.pyi | 4 - src/superqt/qtcompat/QtNetwork.pyi | 4 - src/superqt/qtcompat/QtOpenGL.pyi | 4 - src/superqt/qtcompat/QtOpenGLFunctions.pyi | 4 - src/superqt/qtcompat/QtPositioning.pyi | 4 - src/superqt/qtcompat/QtPrintSupport.pyi | 4 - src/superqt/qtcompat/QtQml.pyi | 4 - src/superqt/qtcompat/QtQuick.pyi | 4 - src/superqt/qtcompat/QtQuickControls2.pyi | 4 - src/superqt/qtcompat/QtQuickWidgets.pyi | 4 - src/superqt/qtcompat/QtRemoteObjects.pyi | 4 - src/superqt/qtcompat/QtScript.pyi | 4 - src/superqt/qtcompat/QtScriptTools.pyi | 4 - src/superqt/qtcompat/QtScxml.pyi | 4 - src/superqt/qtcompat/QtSensors.pyi | 4 - src/superqt/qtcompat/QtSerialPort.pyi | 4 - src/superqt/qtcompat/QtSql.pyi | 4 - src/superqt/qtcompat/QtSvg.pyi | 4 - src/superqt/qtcompat/QtTest.pyi | 4 - src/superqt/qtcompat/QtTextToSpeech.pyi | 4 - src/superqt/qtcompat/QtUiTools.pyi | 4 - src/superqt/qtcompat/QtWebChannel.pyi | 4 - src/superqt/qtcompat/QtWebEngine.pyi | 4 - src/superqt/qtcompat/QtWebEngineCore.pyi | 4 - src/superqt/qtcompat/QtWebEngineWidgets.pyi | 4 - src/superqt/qtcompat/QtWebSockets.pyi | 4 - src/superqt/qtcompat/QtWidgets.py | 20 ---- src/superqt/qtcompat/QtWidgets.pyi | 12 -- src/superqt/qtcompat/QtXml.pyi | 4 - src/superqt/qtcompat/QtXmlPatterns.pyi | 4 - src/superqt/qtcompat/__init__.py | 114 ------------------- 48 files changed, 349 deletions(-) delete mode 100644 src/superqt/qtcompat/Qt3DAnimation.pyi delete mode 100644 src/superqt/qtcompat/Qt3DCore.pyi delete mode 100644 src/superqt/qtcompat/Qt3DExtras.pyi delete mode 100644 src/superqt/qtcompat/Qt3DInput.pyi delete mode 100644 src/superqt/qtcompat/Qt3DLogic.pyi delete mode 100644 src/superqt/qtcompat/Qt3DRender.pyi delete mode 100644 src/superqt/qtcompat/QtCharts.pyi delete mode 100644 src/superqt/qtcompat/QtConcurrent.pyi delete mode 100644 src/superqt/qtcompat/QtCore.py delete mode 100644 src/superqt/qtcompat/QtCore.pyi delete mode 100644 src/superqt/qtcompat/QtDataVisualization.pyi delete mode 100644 src/superqt/qtcompat/QtGui.py delete mode 100644 src/superqt/qtcompat/QtGui.pyi delete mode 100644 src/superqt/qtcompat/QtHelp.pyi delete mode 100644 src/superqt/qtcompat/QtLocation.pyi delete mode 100644 src/superqt/qtcompat/QtMacExtras.pyi delete mode 100644 src/superqt/qtcompat/QtMultimedia.pyi delete mode 100644 src/superqt/qtcompat/QtMultimediaWidgets.pyi delete mode 100644 src/superqt/qtcompat/QtNetwork.pyi delete mode 100644 src/superqt/qtcompat/QtOpenGL.pyi delete mode 100644 src/superqt/qtcompat/QtOpenGLFunctions.pyi delete mode 100644 src/superqt/qtcompat/QtPositioning.pyi delete mode 100644 src/superqt/qtcompat/QtPrintSupport.pyi delete mode 100644 src/superqt/qtcompat/QtQml.pyi delete mode 100644 src/superqt/qtcompat/QtQuick.pyi delete mode 100644 src/superqt/qtcompat/QtQuickControls2.pyi delete mode 100644 src/superqt/qtcompat/QtQuickWidgets.pyi delete mode 100644 src/superqt/qtcompat/QtRemoteObjects.pyi delete mode 100644 src/superqt/qtcompat/QtScript.pyi delete mode 100644 src/superqt/qtcompat/QtScriptTools.pyi delete mode 100644 src/superqt/qtcompat/QtScxml.pyi delete mode 100644 src/superqt/qtcompat/QtSensors.pyi delete mode 100644 src/superqt/qtcompat/QtSerialPort.pyi delete mode 100644 src/superqt/qtcompat/QtSql.pyi delete mode 100644 src/superqt/qtcompat/QtSvg.pyi delete mode 100644 src/superqt/qtcompat/QtTest.pyi delete mode 100644 src/superqt/qtcompat/QtTextToSpeech.pyi delete mode 100644 src/superqt/qtcompat/QtUiTools.pyi delete mode 100644 src/superqt/qtcompat/QtWebChannel.pyi delete mode 100644 src/superqt/qtcompat/QtWebEngine.pyi delete mode 100644 src/superqt/qtcompat/QtWebEngineCore.pyi delete mode 100644 src/superqt/qtcompat/QtWebEngineWidgets.pyi delete mode 100644 src/superqt/qtcompat/QtWebSockets.pyi delete mode 100644 src/superqt/qtcompat/QtWidgets.py delete mode 100644 src/superqt/qtcompat/QtWidgets.pyi delete mode 100644 src/superqt/qtcompat/QtXml.pyi delete mode 100644 src/superqt/qtcompat/QtXmlPatterns.pyi delete mode 100644 src/superqt/qtcompat/__init__.py diff --git a/src/superqt/qtcompat/Qt3DAnimation.pyi b/src/superqt/qtcompat/Qt3DAnimation.pyi deleted file mode 100644 index f357aa17..00000000 --- a/src/superqt/qtcompat/Qt3DAnimation.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.Qt3DAnimation import * -from PyQt6.Qt3DAnimation import * -from PySide2.Qt3DAnimation import * -from PySide6.Qt3DAnimation import * diff --git a/src/superqt/qtcompat/Qt3DCore.pyi b/src/superqt/qtcompat/Qt3DCore.pyi deleted file mode 100644 index 9d8f8e5a..00000000 --- a/src/superqt/qtcompat/Qt3DCore.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.Qt3DCore import * -from PyQt6.Qt3DCore import * -from PySide2.Qt3DCore import * -from PySide6.Qt3DCore import * diff --git a/src/superqt/qtcompat/Qt3DExtras.pyi b/src/superqt/qtcompat/Qt3DExtras.pyi deleted file mode 100644 index 35d7b9e5..00000000 --- a/src/superqt/qtcompat/Qt3DExtras.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.Qt3DExtras import * -from PyQt6.Qt3DExtras import * -from PySide2.Qt3DExtras import * -from PySide6.Qt3DExtras import * diff --git a/src/superqt/qtcompat/Qt3DInput.pyi b/src/superqt/qtcompat/Qt3DInput.pyi deleted file mode 100644 index 1569eed0..00000000 --- a/src/superqt/qtcompat/Qt3DInput.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.Qt3DInput import * -from PyQt6.Qt3DInput import * -from PySide2.Qt3DInput import * -from PySide6.Qt3DInput import * diff --git a/src/superqt/qtcompat/Qt3DLogic.pyi b/src/superqt/qtcompat/Qt3DLogic.pyi deleted file mode 100644 index 580facdc..00000000 --- a/src/superqt/qtcompat/Qt3DLogic.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.Qt3DLogic import * -from PyQt6.Qt3DLogic import * -from PySide2.Qt3DLogic import * -from PySide6.Qt3DLogic import * diff --git a/src/superqt/qtcompat/Qt3DRender.pyi b/src/superqt/qtcompat/Qt3DRender.pyi deleted file mode 100644 index 541e3ce9..00000000 --- a/src/superqt/qtcompat/Qt3DRender.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.Qt3DRender import * -from PyQt6.Qt3DRender import * -from PySide2.Qt3DRender import * -from PySide6.Qt3DRender import * diff --git a/src/superqt/qtcompat/QtCharts.pyi b/src/superqt/qtcompat/QtCharts.pyi deleted file mode 100644 index e0954807..00000000 --- a/src/superqt/qtcompat/QtCharts.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtCharts import * -from PyQt6.QtCharts import * -from PySide2.QtCharts import * -from PySide6.QtCharts import * diff --git a/src/superqt/qtcompat/QtConcurrent.pyi b/src/superqt/qtcompat/QtConcurrent.pyi deleted file mode 100644 index 7e665d0b..00000000 --- a/src/superqt/qtcompat/QtConcurrent.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtConcurrent import * -from PyQt6.QtConcurrent import * -from PySide2.QtConcurrent import * -from PySide6.QtConcurrent import * diff --git a/src/superqt/qtcompat/QtCore.py b/src/superqt/qtcompat/QtCore.py deleted file mode 100644 index d184eb8a..00000000 --- a/src/superqt/qtcompat/QtCore.py +++ /dev/null @@ -1,12 +0,0 @@ -# type: ignore -from . import API_NAME, _get_qtmodule - -_QtCore = _get_qtmodule(__name__) -globals().update(_QtCore.__dict__) - -if "PyQt" in API_NAME: - Property = _QtCore.pyqtProperty - Signal = _QtCore.pyqtSignal - SignalInstance = getattr(_QtCore, "pyqtBoundSignal", None) - Slot = _QtCore.pyqtSlot - __version__ = _QtCore.QT_VERSION_STR diff --git a/src/superqt/qtcompat/QtCore.pyi b/src/superqt/qtcompat/QtCore.pyi deleted file mode 100644 index f525ba88..00000000 --- a/src/superqt/qtcompat/QtCore.pyi +++ /dev/null @@ -1,10 +0,0 @@ -from PyQt5.QtCore import * -from PyQt6.QtCore import * -from PySide2.QtCore import * -from PySide6.QtCore import * - -Property = pyqtProperty -Signal = pyqtSignal -SignalInstance = pyqtBoundSignal -Slot = pyqtSlot -__version__: str diff --git a/src/superqt/qtcompat/QtDataVisualization.pyi b/src/superqt/qtcompat/QtDataVisualization.pyi deleted file mode 100644 index 45cc01db..00000000 --- a/src/superqt/qtcompat/QtDataVisualization.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtDataVisualization import * -from PyQt6.QtDataVisualization import * -from PySide2.QtDataVisualization import * -from PySide6.QtDataVisualization import * diff --git a/src/superqt/qtcompat/QtGui.py b/src/superqt/qtcompat/QtGui.py deleted file mode 100644 index de815dfb..00000000 --- a/src/superqt/qtcompat/QtGui.py +++ /dev/null @@ -1,13 +0,0 @@ -# type: ignore -from . import API_NAME, _get_qtmodule - -_QtGui = _get_qtmodule(__name__) -globals().update(_QtGui.__dict__) - -if "6" in API_NAME: - - def pos(self, *a): - _pos = self.position(*a) - return _pos.toPoint() - - _QtGui.QMouseEvent.pos = pos diff --git a/src/superqt/qtcompat/QtGui.pyi b/src/superqt/qtcompat/QtGui.pyi deleted file mode 100644 index 1df2e9aa..00000000 --- a/src/superqt/qtcompat/QtGui.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtGui import * -from PyQt6.QtGui import * -from PySide2.QtGui import * -from PySide6.QtGui import * diff --git a/src/superqt/qtcompat/QtHelp.pyi b/src/superqt/qtcompat/QtHelp.pyi deleted file mode 100644 index 99c8dada..00000000 --- a/src/superqt/qtcompat/QtHelp.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtHelp import * -from PyQt6.QtHelp import * -from PySide2.QtHelp import * -from PySide6.QtHelp import * diff --git a/src/superqt/qtcompat/QtLocation.pyi b/src/superqt/qtcompat/QtLocation.pyi deleted file mode 100644 index eade9334..00000000 --- a/src/superqt/qtcompat/QtLocation.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtLocation import * -from PyQt6.QtLocation import * -from PySide2.QtLocation import * -from PySide6.QtLocation import * diff --git a/src/superqt/qtcompat/QtMacExtras.pyi b/src/superqt/qtcompat/QtMacExtras.pyi deleted file mode 100644 index 0d81ceae..00000000 --- a/src/superqt/qtcompat/QtMacExtras.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtMacExtras import * -from PyQt6.QtMacExtras import * -from PySide2.QtMacExtras import * -from PySide6.QtMacExtras import * diff --git a/src/superqt/qtcompat/QtMultimedia.pyi b/src/superqt/qtcompat/QtMultimedia.pyi deleted file mode 100644 index dc85fa5a..00000000 --- a/src/superqt/qtcompat/QtMultimedia.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtMultimedia import * -from PyQt6.QtMultimedia import * -from PySide2.QtMultimedia import * -from PySide6.QtMultimedia import * diff --git a/src/superqt/qtcompat/QtMultimediaWidgets.pyi b/src/superqt/qtcompat/QtMultimediaWidgets.pyi deleted file mode 100644 index 85b52e31..00000000 --- a/src/superqt/qtcompat/QtMultimediaWidgets.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtMultimediaWidgets import * -from PyQt6.QtMultimediaWidgets import * -from PySide2.QtMultimediaWidgets import * -from PySide6.QtMultimediaWidgets import * diff --git a/src/superqt/qtcompat/QtNetwork.pyi b/src/superqt/qtcompat/QtNetwork.pyi deleted file mode 100644 index fc0b017c..00000000 --- a/src/superqt/qtcompat/QtNetwork.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtNetwork import * -from PyQt6.QtNetwork import * -from PySide2.QtNetwork import * -from PySide6.QtNetwork import * diff --git a/src/superqt/qtcompat/QtOpenGL.pyi b/src/superqt/qtcompat/QtOpenGL.pyi deleted file mode 100644 index cbbc22c9..00000000 --- a/src/superqt/qtcompat/QtOpenGL.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtOpenGL import * -from PyQt6.QtOpenGL import * -from PySide2.QtOpenGL import * -from PySide6.QtOpenGL import * diff --git a/src/superqt/qtcompat/QtOpenGLFunctions.pyi b/src/superqt/qtcompat/QtOpenGLFunctions.pyi deleted file mode 100644 index 4f3014b7..00000000 --- a/src/superqt/qtcompat/QtOpenGLFunctions.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtOpenGLFunctions import * -from PyQt6.QtOpenGLFunctions import * -from PySide2.QtOpenGLFunctions import * -from PySide6.QtOpenGLFunctions import * diff --git a/src/superqt/qtcompat/QtPositioning.pyi b/src/superqt/qtcompat/QtPositioning.pyi deleted file mode 100644 index a15cdee9..00000000 --- a/src/superqt/qtcompat/QtPositioning.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtPositioning import * -from PyQt6.QtPositioning import * -from PySide2.QtPositioning import * -from PySide6.QtPositioning import * diff --git a/src/superqt/qtcompat/QtPrintSupport.pyi b/src/superqt/qtcompat/QtPrintSupport.pyi deleted file mode 100644 index 6ef47232..00000000 --- a/src/superqt/qtcompat/QtPrintSupport.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtPrintSupport import * -from PyQt6.QtPrintSupport import * -from PySide2.QtPrintSupport import * -from PySide6.QtPrintSupport import * diff --git a/src/superqt/qtcompat/QtQml.pyi b/src/superqt/qtcompat/QtQml.pyi deleted file mode 100644 index 3af6fe26..00000000 --- a/src/superqt/qtcompat/QtQml.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtQml import * -from PyQt6.QtQml import * -from PySide2.QtQml import * -from PySide6.QtQml import * diff --git a/src/superqt/qtcompat/QtQuick.pyi b/src/superqt/qtcompat/QtQuick.pyi deleted file mode 100644 index a03b7e98..00000000 --- a/src/superqt/qtcompat/QtQuick.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtQuick import * -from PyQt6.QtQuick import * -from PySide2.QtQuick import * -from PySide6.QtQuick import * diff --git a/src/superqt/qtcompat/QtQuickControls2.pyi b/src/superqt/qtcompat/QtQuickControls2.pyi deleted file mode 100644 index 8b29962a..00000000 --- a/src/superqt/qtcompat/QtQuickControls2.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtQuickControls2 import * -from PyQt6.QtQuickControls2 import * -from PySide2.QtQuickControls2 import * -from PySide6.QtQuickControls2 import * diff --git a/src/superqt/qtcompat/QtQuickWidgets.pyi b/src/superqt/qtcompat/QtQuickWidgets.pyi deleted file mode 100644 index b3d48781..00000000 --- a/src/superqt/qtcompat/QtQuickWidgets.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtQuickWidgets import * -from PyQt6.QtQuickWidgets import * -from PySide2.QtQuickWidgets import * -from PySide6.QtQuickWidgets import * diff --git a/src/superqt/qtcompat/QtRemoteObjects.pyi b/src/superqt/qtcompat/QtRemoteObjects.pyi deleted file mode 100644 index bda55366..00000000 --- a/src/superqt/qtcompat/QtRemoteObjects.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtRemoteObjects import * -from PyQt6.QtRemoteObjects import * -from PySide2.QtRemoteObjects import * -from PySide6.QtRemoteObjects import * diff --git a/src/superqt/qtcompat/QtScript.pyi b/src/superqt/qtcompat/QtScript.pyi deleted file mode 100644 index 1a2b3f31..00000000 --- a/src/superqt/qtcompat/QtScript.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtScript import * -from PyQt6.QtScript import * -from PySide2.QtScript import * -from PySide6.QtScript import * diff --git a/src/superqt/qtcompat/QtScriptTools.pyi b/src/superqt/qtcompat/QtScriptTools.pyi deleted file mode 100644 index 4471e2d9..00000000 --- a/src/superqt/qtcompat/QtScriptTools.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtScriptTools import * -from PyQt6.QtScriptTools import * -from PySide2.QtScriptTools import * -from PySide6.QtScriptTools import * diff --git a/src/superqt/qtcompat/QtScxml.pyi b/src/superqt/qtcompat/QtScxml.pyi deleted file mode 100644 index 6831e1dc..00000000 --- a/src/superqt/qtcompat/QtScxml.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtScxml import * -from PyQt6.QtScxml import * -from PySide2.QtScxml import * -from PySide6.QtScxml import * diff --git a/src/superqt/qtcompat/QtSensors.pyi b/src/superqt/qtcompat/QtSensors.pyi deleted file mode 100644 index 00147ba9..00000000 --- a/src/superqt/qtcompat/QtSensors.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtSensors import * -from PyQt6.QtSensors import * -from PySide2.QtSensors import * -from PySide6.QtSensors import * diff --git a/src/superqt/qtcompat/QtSerialPort.pyi b/src/superqt/qtcompat/QtSerialPort.pyi deleted file mode 100644 index f018f40a..00000000 --- a/src/superqt/qtcompat/QtSerialPort.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtSerialPort import * -from PyQt6.QtSerialPort import * -from PySide2.QtSerialPort import * -from PySide6.QtSerialPort import * diff --git a/src/superqt/qtcompat/QtSql.pyi b/src/superqt/qtcompat/QtSql.pyi deleted file mode 100644 index d4dad993..00000000 --- a/src/superqt/qtcompat/QtSql.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtSql import * -from PyQt6.QtSql import * -from PySide2.QtSql import * -from PySide6.QtSql import * diff --git a/src/superqt/qtcompat/QtSvg.pyi b/src/superqt/qtcompat/QtSvg.pyi deleted file mode 100644 index d7fe576a..00000000 --- a/src/superqt/qtcompat/QtSvg.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtSvg import * -from PyQt6.QtSvg import * -from PySide2.QtSvg import * -from PySide6.QtSvg import * diff --git a/src/superqt/qtcompat/QtTest.pyi b/src/superqt/qtcompat/QtTest.pyi deleted file mode 100644 index 4bb798e8..00000000 --- a/src/superqt/qtcompat/QtTest.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtTest import * -from PyQt6.QtTest import * -from PySide2.QtTest import * -from PySide6.QtTest import * diff --git a/src/superqt/qtcompat/QtTextToSpeech.pyi b/src/superqt/qtcompat/QtTextToSpeech.pyi deleted file mode 100644 index 4feebeb3..00000000 --- a/src/superqt/qtcompat/QtTextToSpeech.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtTextToSpeech import * -from PyQt6.QtTextToSpeech import * -from PySide2.QtTextToSpeech import * -from PySide6.QtTextToSpeech import * diff --git a/src/superqt/qtcompat/QtUiTools.pyi b/src/superqt/qtcompat/QtUiTools.pyi deleted file mode 100644 index e55769c4..00000000 --- a/src/superqt/qtcompat/QtUiTools.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtUiTools import * -from PyQt6.QtUiTools import * -from PySide2.QtUiTools import * -from PySide6.QtUiTools import * diff --git a/src/superqt/qtcompat/QtWebChannel.pyi b/src/superqt/qtcompat/QtWebChannel.pyi deleted file mode 100644 index 96f24e29..00000000 --- a/src/superqt/qtcompat/QtWebChannel.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtWebChannel import * -from PyQt6.QtWebChannel import * -from PySide2.QtWebChannel import * -from PySide6.QtWebChannel import * diff --git a/src/superqt/qtcompat/QtWebEngine.pyi b/src/superqt/qtcompat/QtWebEngine.pyi deleted file mode 100644 index 49a66abd..00000000 --- a/src/superqt/qtcompat/QtWebEngine.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtWebEngine import * -from PyQt6.QtWebEngine import * -from PySide2.QtWebEngine import * -from PySide6.QtWebEngine import * diff --git a/src/superqt/qtcompat/QtWebEngineCore.pyi b/src/superqt/qtcompat/QtWebEngineCore.pyi deleted file mode 100644 index e942ee4a..00000000 --- a/src/superqt/qtcompat/QtWebEngineCore.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtWebEngineCore import * -from PyQt6.QtWebEngineCore import * -from PySide2.QtWebEngineCore import * -from PySide6.QtWebEngineCore import * diff --git a/src/superqt/qtcompat/QtWebEngineWidgets.pyi b/src/superqt/qtcompat/QtWebEngineWidgets.pyi deleted file mode 100644 index 195a9035..00000000 --- a/src/superqt/qtcompat/QtWebEngineWidgets.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtWebEngineWidgets import * -from PyQt6.QtWebEngineWidgets import * -from PySide2.QtWebEngineWidgets import * -from PySide6.QtWebEngineWidgets import * diff --git a/src/superqt/qtcompat/QtWebSockets.pyi b/src/superqt/qtcompat/QtWebSockets.pyi deleted file mode 100644 index 2d0ba40e..00000000 --- a/src/superqt/qtcompat/QtWebSockets.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtWebSockets import * -from PyQt6.QtWebSockets import * -from PySide2.QtWebSockets import * -from PySide6.QtWebSockets import * diff --git a/src/superqt/qtcompat/QtWidgets.py b/src/superqt/qtcompat/QtWidgets.py deleted file mode 100644 index 73fe0b57..00000000 --- a/src/superqt/qtcompat/QtWidgets.py +++ /dev/null @@ -1,20 +0,0 @@ -# type: ignore -from . import API_NAME, _get_qtmodule - -_QtWidgets = _get_qtmodule(__name__) -globals().update(_QtWidgets.__dict__) - - -QApplication = _QtWidgets.QApplication -if not hasattr(QApplication, "exec"): - - def exec_(self): - _QtWidgets.QApplication.exec(self) - - QApplication.exec = exec_ - -# backwargs compat with qt5 -if "6" in API_NAME: - _QtGui = _get_qtmodule("QtGui") - QAction = _QtGui.QAction - QShortcut = _QtGui.QShortcut diff --git a/src/superqt/qtcompat/QtWidgets.pyi b/src/superqt/qtcompat/QtWidgets.pyi deleted file mode 100644 index b59539d6..00000000 --- a/src/superqt/qtcompat/QtWidgets.pyi +++ /dev/null @@ -1,12 +0,0 @@ -from PyQt5.QtWidgets import * -from PyQt6.QtWidgets import * -from PySide2.QtWidgets import * -from PySide6.QtWidgets import * - -QApplication.exec_ = QApplication.exec - -from PyQt6 import QtGui -from PySide6 import QtGui - -QAction = QtGui.QAction -QShortcut = QtGui.QShortcut diff --git a/src/superqt/qtcompat/QtXml.pyi b/src/superqt/qtcompat/QtXml.pyi deleted file mode 100644 index 50aa8e21..00000000 --- a/src/superqt/qtcompat/QtXml.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtXml import * -from PyQt6.QtXml import * -from PySide2.QtXml import * -from PySide6.QtXml import * diff --git a/src/superqt/qtcompat/QtXmlPatterns.pyi b/src/superqt/qtcompat/QtXmlPatterns.pyi deleted file mode 100644 index 1ef80449..00000000 --- a/src/superqt/qtcompat/QtXmlPatterns.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from PyQt5.QtXmlPatterns import * -from PyQt6.QtXmlPatterns import * -from PySide2.QtXmlPatterns import * -from PySide6.QtXmlPatterns import * diff --git a/src/superqt/qtcompat/__init__.py b/src/superqt/qtcompat/__init__.py deleted file mode 100644 index 44f134c9..00000000 --- a/src/superqt/qtcompat/__init__.py +++ /dev/null @@ -1,114 +0,0 @@ -from __future__ import annotations - -import os -import sys -import warnings -from importlib import abc, import_module, util -from typing import TYPE_CHECKING, Optional, Sequence, Union - -if TYPE_CHECKING: - from importlib.machinery import ModuleSpec - from types import ModuleType - - -class QtMissingError(ImportError): - """Error raise if no bindings could be selected.""" - - -VALID_APIS = { - "pyqt5": "PyQt5", - "pyqt6": "PyQt6", - "pyside2": "PySide2", - "pyside6": "PySide6", -} - -# Detecting if a binding was specified by the user -_requested_api = os.getenv("QT_API", "").lower() -_forced_api = os.getenv("FORCE_QT_API") - -# warn if an invalid API has been requested -if _requested_api and _requested_api not in VALID_APIS: - warnings.warn( - f"invalid QT_API specified: {_requested_api}. " - f"Valid values include {set(VALID_APIS)}" - ) - _forced_api = None - _requested_api = "" - -# TODO: FORCE_QT_API requires also using QT_API ... does that make sense? - -# now we'll try to import QtCore -_QtCore: Optional[ModuleType] = None - -# If `FORCE_QT_API` is not set, we first look for previously imported bindings -if not _forced_api: - for api_name, module_name in VALID_APIS.items(): - if module_name in sys.modules: - _QtCore = import_module(f"{module_name}.QtCore") - break - -if _QtCore is None: - # try the requested API first, and if _forced_api is True, - # raise an ImportError if it doesn't work. - # Otherwise go through the list of Valid APIs until something imports - requested = VALID_APIS.get(_requested_api) - for module_name in sorted(VALID_APIS.values(), key=lambda x: x != requested): - try: - _QtCore = import_module(f"{module_name}.QtCore") - break - except ImportError: - if _forced_api: - ImportError( - "FORCE_QT_API set and unable to import requested QT_API: {e}" - ) - -# didn't find one... not going to work -if _QtCore is None: - raise QtMissingError(f"No QtCore could be found. Tried: {VALID_APIS.values()}") - -# load variables based on what we found. -if not _QtCore.__package__: - raise RuntimeError("QtCore does not declare __package__?") - -API_NAME = _QtCore.__package__ -PYSIDE2 = API_NAME == "PySide2" -PYSIDE6 = API_NAME == "PySide6" -PYQT5 = API_NAME == "PyQt5" -PYQT6 = API_NAME == "PyQt6" -QT_VERSION = getattr(_QtCore, "QT_VERSION_STR", "") or getattr(_QtCore, "__version__") - -# lastly, emit a warning if we ended up with an API other than the one requested -if _requested_api and API_NAME != VALID_APIS[_requested_api]: - warnings.warn( - f"Selected binding {_requested_api!r} could not be found, using {API_NAME!r}" - ) - - -# Setup the meta path finder that lets us import anything using `superqt.qtcompat.Mod` -class SuperQtImporter(abc.MetaPathFinder): - def find_spec( - self, - fullname: str, - path: Optional[Sequence[Union[bytes, str]]], - target: Optional[ModuleType] = None, - ) -> Optional[ModuleSpec]: - """Find a spec for the specified module. - - If fullname is superqt.X or superqt.qtcompat.Xx ... - it will look for API_NAME.X instead... - - See https://docs.python.org/3/reference/import.html#the-meta-path - """ - if fullname.startswith(__name__): - spec = fullname.replace(__name__, API_NAME) - return util.find_spec(spec) - return None - - -def _get_qtmodule(mod_name: str) -> ModuleType: - """Convenience to get a submodule from the current QT_API""" - _mod_name = mod_name.rsplit(".", maxsplit=1)[-1] - return import_module(f"{API_NAME}.{_mod_name}") - - -sys.meta_path.append(SuperQtImporter()) From 2860d4a6394ad1aed77bfd63f428985ef2855aa8 Mon Sep 17 00:00:00 2001 From: Talley Lambert Date: Sun, 7 Nov 2021 15:13:00 -0500 Subject: [PATCH 02/11] change imports --- CONTRIBUTING.md | 2 -- docs/decorators.md | 2 +- examples/basic.py | 5 +++-- examples/basic_float.py | 5 +++-- examples/demo_widget.py | 5 +++-- examples/eliding_label.py | 3 ++- examples/float.py | 5 +++-- examples/generic.py | 5 +++-- examples/labeled.py | 5 +++-- examples/multihandle.py | 3 ++- mypy.ini | 5 ----- setup.cfg | 5 ----- src/superqt/_eliding_label.py | 6 +++--- src/superqt/combobox/_enum_combobox.py | 4 ++-- src/superqt/sliders/__init__.pyi | 2 +- src/superqt/sliders/_generic_range_slider.py | 16 ++++------------ src/superqt/sliders/_generic_slider.py | 6 +++--- src/superqt/sliders/_labeled.py | 7 ++++--- src/superqt/sliders/_range_style.py | 8 ++++---- src/superqt/sliders/_sliders.py | 3 ++- src/superqt/spinbox/_intspin.py | 6 +++--- src/superqt/utils/_ensure_thread.py | 2 +- src/superqt/utils/_message_handler.py | 6 +----- src/superqt/utils/_qthreading.py | 3 +-- tests/test_eliding_label.py | 5 +++-- tests/test_ensure_thread.py | 2 +- tests/test_large_int_spinbox.py | 3 ++- tests/test_qmessage_handler.py | 3 ++- tests/test_sliders/_testutil.py | 7 +++---- tests/test_sliders/test_float.py | 2 +- tests/test_sliders/test_generic_slider.py | 6 +++--- tests/test_sliders/test_range_slider.py | 6 +++--- tests/test_sliders/test_single_value_sliders.py | 6 +++--- tests/test_sliders/test_slider.py | 4 ++-- tox.ini | 1 - 35 files changed, 75 insertions(+), 89 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fa990ab3..9fea0e3f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -31,8 +31,6 @@ All widgets must be well-tested, and should work on: - PySide2 (5.11 and above) & PySide6 - macOS, Windows, & Linux -Until [qtpy](https://github.com/spyder-ide/qtpy) supports PyQt6/PySide6, imports -should use (and modify if necessary) `superqt.qtcompat`. ## Style Guide diff --git a/docs/decorators.md b/docs/decorators.md index 7a1a0f0d..083d969f 100644 --- a/docs/decorators.md +++ b/docs/decorators.md @@ -16,7 +16,7 @@ an instance of To block and wait for the result, see [Synchronous mode](#synchronous-mode) ```python -from superqt.qtcompat.QtCore import QObject +from qtpy.QtCore import QObject from superqt import ensure_main_thread, ensure_object_thread @ensure_main_thread diff --git a/examples/basic.py b/examples/basic.py index 8d91fd57..4d245f9b 100644 --- a/examples/basic.py +++ b/examples/basic.py @@ -1,6 +1,7 @@ +from qtpy.QtCore import Qt +from qtpy.QtWidgets import QApplication + from superqt import QRangeSlider -from superqt.qtcompat.QtCore import Qt -from superqt.qtcompat.QtWidgets import QApplication app = QApplication([]) diff --git a/examples/basic_float.py b/examples/basic_float.py index a4fed2b1..82cc6a52 100644 --- a/examples/basic_float.py +++ b/examples/basic_float.py @@ -1,6 +1,7 @@ +from qtpy.QtCore import Qt +from qtpy.QtWidgets import QApplication + from superqt import QDoubleSlider -from superqt.qtcompat.QtCore import Qt -from superqt.qtcompat.QtWidgets import QApplication app = QApplication([]) diff --git a/examples/demo_widget.py b/examples/demo_widget.py index 94ff211e..909d4e8a 100644 --- a/examples/demo_widget.py +++ b/examples/demo_widget.py @@ -1,6 +1,7 @@ +from qtpy import QtCore +from qtpy import QtWidgets as QtW + from superqt import QRangeSlider -from superqt.qtcompat import QtCore -from superqt.qtcompat import QtWidgets as QtW QSS = """ QSlider { diff --git a/examples/eliding_label.py b/examples/eliding_label.py index 71fd7ff4..9b055e9a 100644 --- a/examples/eliding_label.py +++ b/examples/eliding_label.py @@ -1,5 +1,6 @@ +from qtpy.QtWidgets import QApplication + from superqt import QElidingLabel -from superqt.qtcompat.QtWidgets import QApplication app = QApplication([]) diff --git a/examples/float.py b/examples/float.py index c255b8b3..027a5f3e 100644 --- a/examples/float.py +++ b/examples/float.py @@ -1,6 +1,7 @@ +from qtpy.QtCore import Qt +from qtpy.QtWidgets import QApplication, QVBoxLayout, QWidget + from superqt import QDoubleRangeSlider, QDoubleSlider, QRangeSlider -from superqt.qtcompat.QtCore import Qt -from superqt.qtcompat.QtWidgets import QApplication, QVBoxLayout, QWidget app = QApplication([]) diff --git a/examples/generic.py b/examples/generic.py index 6d31bc1f..98b3af31 100644 --- a/examples/generic.py +++ b/examples/generic.py @@ -1,6 +1,7 @@ +from qtpy.QtCore import Qt +from qtpy.QtWidgets import QApplication + from superqt import QDoubleSlider -from superqt.qtcompat.QtCore import Qt -from superqt.qtcompat.QtWidgets import QApplication app = QApplication([]) diff --git a/examples/labeled.py b/examples/labeled.py index a7915c4f..0cddffd8 100644 --- a/examples/labeled.py +++ b/examples/labeled.py @@ -1,11 +1,12 @@ +from qtpy.QtCore import Qt +from qtpy.QtWidgets import QApplication, QHBoxLayout, QVBoxLayout, QWidget + from superqt import ( QLabeledDoubleRangeSlider, QLabeledDoubleSlider, QLabeledRangeSlider, QLabeledSlider, ) -from superqt.qtcompat.QtCore import Qt -from superqt.qtcompat.QtWidgets import QApplication, QHBoxLayout, QVBoxLayout, QWidget app = QApplication([]) diff --git a/examples/multihandle.py b/examples/multihandle.py index 53b464ba..3543ce00 100644 --- a/examples/multihandle.py +++ b/examples/multihandle.py @@ -1,5 +1,6 @@ +from qtpy.QtWidgets import QApplication + from superqt import QRangeSlider -from superqt.qtcompat.QtWidgets import QApplication app = QApplication([]) diff --git a/mypy.ini b/mypy.ini index 9f501239..b1efbe84 100644 --- a/mypy.ini +++ b/mypy.ini @@ -1,7 +1,2 @@ [mypy] strict = True - -[mypy-superqt.qtcompat.*] -ignore_missing_imports = True -warn_unused_ignores = False -allow_redefinition = True diff --git a/setup.cfg b/setup.cfg index b176172c..43517f7b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -81,11 +81,6 @@ superqt = py.typed exclude = _version.py,.eggs,examples docstring-convention = numpy ignore = E203,W503,E501,C901,F403,F405,D100 -per-file-ignores = - src/superqt/qtcompat/QtCore.py:F401 - src/superqt/qtcompat/QtGui.py:F401 - src/superqt/qtcompat/QtWidgets.py:F401 - src/superqt/qtcompat/__init__.py:F401,F811 [pydocstyle] convention = numpy diff --git a/src/superqt/_eliding_label.py b/src/superqt/_eliding_label.py index 25fa3924..877f6132 100644 --- a/src/superqt/_eliding_label.py +++ b/src/superqt/_eliding_label.py @@ -1,8 +1,8 @@ from typing import List -from superqt.qtcompat.QtCore import QPoint, QRect, QSize, Qt -from superqt.qtcompat.QtGui import QFont, QFontMetrics, QResizeEvent, QTextLayout -from superqt.qtcompat.QtWidgets import QLabel +from qtpy.QtCore import QPoint, QRect, QSize, Qt +from qtpy.QtGui import QFont, QFontMetrics, QResizeEvent, QTextLayout +from qtpy.QtWidgets import QLabel class QElidingLabel(QLabel): diff --git a/src/superqt/combobox/_enum_combobox.py b/src/superqt/combobox/_enum_combobox.py index 4d862c90..f9baa886 100644 --- a/src/superqt/combobox/_enum_combobox.py +++ b/src/superqt/combobox/_enum_combobox.py @@ -1,8 +1,8 @@ from enum import Enum, EnumMeta from typing import Optional, TypeVar -from ..qtcompat.QtCore import Signal -from ..qtcompat.QtWidgets import QComboBox +from qtpy.QtCore import Signal +from qtpy.QtWidgets import QComboBox EnumType = TypeVar("EnumType", bound=Enum) diff --git a/src/superqt/sliders/__init__.pyi b/src/superqt/sliders/__init__.pyi index bf0c65fb..c54dcf30 100644 --- a/src/superqt/sliders/__init__.pyi +++ b/src/superqt/sliders/__init__.pyi @@ -1,4 +1,4 @@ -from superqt.qtcompat.QtWidgets import QSlider +from qtpy.QtWidgets import QSlider from ._generic_range_slider import _GenericRangeSlider from ._generic_slider import _GenericSlider diff --git a/src/superqt/sliders/_generic_range_slider.py b/src/superqt/sliders/_generic_range_slider.py index b69f34d8..65454b94 100644 --- a/src/superqt/sliders/_generic_range_slider.py +++ b/src/superqt/sliders/_generic_range_slider.py @@ -1,17 +1,9 @@ from typing import Generic, List, Sequence, Tuple, TypeVar, Union -from ..qtcompat import QtGui -from ..qtcompat.QtCore import ( - Property, - QEvent, - QPoint, - QPointF, - QRect, - QRectF, - Qt, - Signal, -) -from ..qtcompat.QtWidgets import QSlider, QStyle, QStyleOptionSlider, QStylePainter +from qtpy import QtGui +from qtpy.QtCore import Property, QEvent, QPoint, QPointF, QRect, QRectF, Qt, Signal +from qtpy.QtWidgets import QSlider, QStyle, QStyleOptionSlider, QStylePainter + from ._generic_slider import CC_SLIDER, SC_GROOVE, SC_HANDLE, SC_NONE, _GenericSlider from ._range_style import RangeSliderStyle, update_styles_from_stylesheet diff --git a/src/superqt/sliders/_generic_slider.py b/src/superqt/sliders/_generic_slider.py index 094bd8c0..6fccf4c2 100644 --- a/src/superqt/sliders/_generic_slider.py +++ b/src/superqt/sliders/_generic_slider.py @@ -22,9 +22,9 @@ from typing import Generic, TypeVar -from ..qtcompat import QtGui -from ..qtcompat.QtCore import QEvent, QPoint, QPointF, QRect, Qt, Signal -from ..qtcompat.QtWidgets import ( +from qtpy import QtGui +from qtpy.QtCore import QEvent, QPoint, QPointF, QRect, Qt, Signal +from qtpy.QtWidgets import ( QApplication, QSlider, QStyle, diff --git a/src/superqt/sliders/_labeled.py b/src/superqt/sliders/_labeled.py index fdf6e61f..12db1e4d 100644 --- a/src/superqt/sliders/_labeled.py +++ b/src/superqt/sliders/_labeled.py @@ -2,9 +2,9 @@ from functools import partial from typing import Any -from ..qtcompat.QtCore import QPoint, QSize, Qt, Signal -from ..qtcompat.QtGui import QFontMetrics, QValidator -from ..qtcompat.QtWidgets import ( +from qtpy.QtCore import QPoint, QSize, Qt, Signal +from qtpy.QtGui import QFontMetrics, QValidator +from qtpy.QtWidgets import ( QAbstractSlider, QApplication, QDoubleSpinBox, @@ -16,6 +16,7 @@ QVBoxLayout, QWidget, ) + from ._sliders import QDoubleRangeSlider, QDoubleSlider, QRangeSlider diff --git a/src/superqt/sliders/_range_style.py b/src/superqt/sliders/_range_style.py index 7dc1de17..8728e916 100644 --- a/src/superqt/sliders/_range_style.py +++ b/src/superqt/sliders/_range_style.py @@ -5,9 +5,9 @@ from dataclasses import dataclass, replace from typing import TYPE_CHECKING -from ..qtcompat import QT_VERSION -from ..qtcompat.QtCore import Qt -from ..qtcompat.QtGui import ( +from qtpy import QT_VERSION +from qtpy.QtCore import Qt +from qtpy.QtGui import ( QBrush, QColor, QGradient, @@ -15,7 +15,7 @@ QPalette, QRadialGradient, ) -from ..qtcompat.QtWidgets import QApplication, QSlider, QStyleOptionSlider +from qtpy.QtWidgets import QApplication, QSlider, QStyleOptionSlider if TYPE_CHECKING: from ._generic_range_slider import _GenericRangeSlider diff --git a/src/superqt/sliders/_sliders.py b/src/superqt/sliders/_sliders.py index 9eb3a26c..78747b66 100644 --- a/src/superqt/sliders/_sliders.py +++ b/src/superqt/sliders/_sliders.py @@ -1,4 +1,5 @@ -from ..qtcompat.QtCore import Signal +from qtpy.QtCore import Signal + from ._generic_range_slider import _GenericRangeSlider from ._generic_slider import _GenericSlider diff --git a/src/superqt/spinbox/_intspin.py b/src/superqt/spinbox/_intspin.py index 0b6cef66..7e33368a 100644 --- a/src/superqt/spinbox/_intspin.py +++ b/src/superqt/spinbox/_intspin.py @@ -1,8 +1,8 @@ from enum import Enum -from ..qtcompat.QtCore import QSize, Qt, Signal -from ..qtcompat.QtGui import QFontMetrics, QValidator -from ..qtcompat.QtWidgets import QAbstractSpinBox, QStyle, QStyleOptionSpinBox +from qtpy.QtCore import QSize, Qt, Signal +from qtpy.QtGui import QFontMetrics, QValidator +from qtpy.QtWidgets import QAbstractSpinBox, QStyle, QStyleOptionSpinBox class _EmitPolicy(Enum): diff --git a/src/superqt/utils/_ensure_thread.py b/src/superqt/utils/_ensure_thread.py index 41926f0c..86876fb4 100644 --- a/src/superqt/utils/_ensure_thread.py +++ b/src/superqt/utils/_ensure_thread.py @@ -3,7 +3,7 @@ from functools import wraps from typing import Callable, List, Optional -from superqt.qtcompat.QtCore import ( +from qtpy.QtCore import ( QCoreApplication, QMetaObject, QObject, diff --git a/src/superqt/utils/_message_handler.py b/src/superqt/utils/_message_handler.py index f61ea0ab..51259c22 100644 --- a/src/superqt/utils/_message_handler.py +++ b/src/superqt/utils/_message_handler.py @@ -2,11 +2,7 @@ from contextlib import suppress from typing import List, NamedTuple, Optional -from superqt.qtcompat.QtCore import ( - QMessageLogContext, - QtMsgType, - qInstallMessageHandler, -) +from qtpy.QtCore import QMessageLogContext, QtMsgType, qInstallMessageHandler class Record(NamedTuple): diff --git a/src/superqt/utils/_qthreading.py b/src/superqt/utils/_qthreading.py index 9ee89a4e..8b1cf1e5 100644 --- a/src/superqt/utils/_qthreading.py +++ b/src/superqt/utils/_qthreading.py @@ -20,10 +20,9 @@ overload, ) +from qtpy.QtCore import QObject, QRunnable, QThread, QThreadPool, QTimer, Signal from typing_extensions import Literal, ParamSpec -from ..qtcompat.QtCore import QObject, QRunnable, QThread, QThreadPool, QTimer, Signal - if TYPE_CHECKING: _T = TypeVar("_T") diff --git a/tests/test_eliding_label.py b/tests/test_eliding_label.py index 6b243f74..df6cd3f6 100644 --- a/tests/test_eliding_label.py +++ b/tests/test_eliding_label.py @@ -1,8 +1,9 @@ import platform +from qtpy.QtCore import QSize, Qt +from qtpy.QtGui import QResizeEvent + from superqt import QElidingLabel -from superqt.qtcompat.QtCore import QSize, Qt -from superqt.qtcompat.QtGui import QResizeEvent TEXT = ( "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do " diff --git a/tests/test_ensure_thread.py b/tests/test_ensure_thread.py index 7d666e83..dea7a916 100644 --- a/tests/test_ensure_thread.py +++ b/tests/test_ensure_thread.py @@ -4,8 +4,8 @@ from concurrent.futures import Future, TimeoutError import pytest +from qtpy.QtCore import QCoreApplication, QObject, QThread, Signal -from superqt.qtcompat.QtCore import QCoreApplication, QObject, QThread, Signal from superqt.utils import ensure_main_thread, ensure_object_thread skip_on_ci = pytest.mark.skipif(bool(os.getenv("CI")), reason="github hangs") diff --git a/tests/test_large_int_spinbox.py b/tests/test_large_int_spinbox.py index e9845fd9..8349d78d 100644 --- a/tests/test_large_int_spinbox.py +++ b/tests/test_large_int_spinbox.py @@ -1,4 +1,5 @@ -from superqt.qtcompat.QtCore import Qt +from qtpy.QtCore import Qt + from superqt.spinbox import QLargeIntSpinBox diff --git a/tests/test_qmessage_handler.py b/tests/test_qmessage_handler.py index 5634e615..beeca9f8 100644 --- a/tests/test_qmessage_handler.py +++ b/tests/test_qmessage_handler.py @@ -1,7 +1,8 @@ import logging +from qtpy import QtCore + from superqt import QMessageHandler -from superqt.qtcompat import QtCore def test_message_handler(): diff --git a/tests/test_sliders/_testutil.py b/tests/test_sliders/_testutil.py index 93ecd4c5..369d5214 100644 --- a/tests/test_sliders/_testutil.py +++ b/tests/test_sliders/_testutil.py @@ -3,10 +3,9 @@ from platform import system import pytest - -from superqt.qtcompat import QT_VERSION -from superqt.qtcompat.QtCore import QEvent, QPoint, QPointF, Qt -from superqt.qtcompat.QtGui import QMouseEvent, QWheelEvent +from qtpy import QT_VERSION +from qtpy.QtCore import QEvent, QPoint, QPointF, Qt +from qtpy.QtGui import QMouseEvent, QWheelEvent QT_VERSION = LooseVersion(QT_VERSION) diff --git a/tests/test_sliders/test_float.py b/tests/test_sliders/test_float.py index e2f0a104..5e89d9c0 100644 --- a/tests/test_sliders/test_float.py +++ b/tests/test_sliders/test_float.py @@ -1,6 +1,7 @@ import os import pytest +from qtpy import API_NAME from superqt import ( QDoubleRangeSlider, @@ -8,7 +9,6 @@ QLabeledDoubleRangeSlider, QLabeledDoubleSlider, ) -from superqt.qtcompat import API_NAME range_types = {QDoubleRangeSlider, QLabeledDoubleRangeSlider} diff --git a/tests/test_sliders/test_generic_slider.py b/tests/test_sliders/test_generic_slider.py index 8ff6983b..a4f5c7a3 100644 --- a/tests/test_sliders/test_generic_slider.py +++ b/tests/test_sliders/test_generic_slider.py @@ -2,10 +2,10 @@ import platform import pytest +from qtpy.QtCore import QEvent, QPoint, QPointF, Qt +from qtpy.QtGui import QHoverEvent +from qtpy.QtWidgets import QStyle, QStyleOptionSlider -from superqt.qtcompat.QtCore import QEvent, QPoint, QPointF, Qt -from superqt.qtcompat.QtGui import QHoverEvent -from superqt.qtcompat.QtWidgets import QStyle, QStyleOptionSlider from superqt.sliders._generic_slider import _GenericSlider, _sliderValueFromPosition from ._testutil import _linspace, _mouse_event, _wheel_event, skip_on_linux_qt6 diff --git a/tests/test_sliders/test_range_slider.py b/tests/test_sliders/test_range_slider.py index ea40e704..bffafee5 100644 --- a/tests/test_sliders/test_range_slider.py +++ b/tests/test_sliders/test_range_slider.py @@ -1,11 +1,11 @@ import math import pytest +from qtpy.QtCore import QEvent, QPoint, QPointF, Qt +from qtpy.QtGui import QHoverEvent +from qtpy.QtWidgets import QStyle, QStyleOptionSlider from superqt import QDoubleRangeSlider, QRangeSlider -from superqt.qtcompat.QtCore import QEvent, QPoint, QPointF, Qt -from superqt.qtcompat.QtGui import QHoverEvent -from superqt.qtcompat.QtWidgets import QStyle, QStyleOptionSlider from ._testutil import _linspace, _mouse_event, _wheel_event, skip_on_linux_qt6 diff --git a/tests/test_sliders/test_single_value_sliders.py b/tests/test_sliders/test_single_value_sliders.py index a1ac30f6..0338e2ad 100644 --- a/tests/test_sliders/test_single_value_sliders.py +++ b/tests/test_sliders/test_single_value_sliders.py @@ -4,11 +4,11 @@ from distutils.version import LooseVersion import pytest +from qtpy.QtCore import QEvent, QPoint, QPointF, Qt +from qtpy.QtGui import QHoverEvent +from qtpy.QtWidgets import QSlider, QStyle, QStyleOptionSlider from superqt import QDoubleSlider, QLabeledDoubleSlider, QLabeledSlider -from superqt.qtcompat.QtCore import QEvent, QPoint, QPointF, Qt -from superqt.qtcompat.QtGui import QHoverEvent -from superqt.qtcompat.QtWidgets import QSlider, QStyle, QStyleOptionSlider from superqt.sliders._generic_slider import _GenericSlider from ._testutil import ( diff --git a/tests/test_sliders/test_slider.py b/tests/test_sliders/test_slider.py index 6abd312f..467551ab 100644 --- a/tests/test_sliders/test_slider.py +++ b/tests/test_sliders/test_slider.py @@ -1,10 +1,10 @@ import platform import pytest +from qtpy import API_NAME +from qtpy.QtCore import Qt from superqt import QRangeSlider -from superqt.qtcompat import API_NAME -from superqt.qtcompat.QtCore import Qt from superqt.sliders._generic_range_slider import SC_BAR, SC_HANDLE, SC_NONE NOT_LINUX = platform.system() != "Linux" diff --git a/tox.ini b/tox.ini index f4dd9e22..b922aa49 100644 --- a/tox.ini +++ b/tox.ini @@ -12,7 +12,6 @@ exclude_lines = raise NotImplementedError() omit = superqt/_version.py - superqt/qtcompat/* *_tests* [gh-actions] From f387c9f56df43ae96129aacc2a8a39858f0956e2 Mon Sep 17 00:00:00 2001 From: Talley Lambert Date: Sun, 7 Nov 2021 15:13:11 -0500 Subject: [PATCH 03/11] change codecov --- codecov.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/codecov.yml b/codecov.yml index 822e86ac..37b89abd 100644 --- a/codecov.yml +++ b/codecov.yml @@ -1,6 +1,5 @@ ignore: - superqt/_version.py - - superqt/qtcompat/* - '*_tests*' coverage: status: From d372711df37ed98b3338b9615776d671170794f2 Mon Sep 17 00:00:00 2001 From: Talley Lambert Date: Sun, 7 Nov 2021 15:18:05 -0500 Subject: [PATCH 04/11] add dep --- setup.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.cfg b/setup.cfg index 43517f7b..0743d631 100644 --- a/setup.cfg +++ b/setup.cfg @@ -34,6 +34,7 @@ project_urls = [options] packages = find: install_requires = + qtpy@git+https://github.com/spyder-ide/qtpy.git typing-extensions python_requires = >=3.7 include_package_data = True From f1baa12ac6a93dd7a703c6688981d8969227a2b4 Mon Sep 17 00:00:00 2001 From: Talley Lambert Date: Sat, 20 Nov 2021 08:01:34 -0500 Subject: [PATCH 05/11] run tests against dalthviz branch --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 0743d631..a9549bf8 100644 --- a/setup.cfg +++ b/setup.cfg @@ -34,7 +34,7 @@ project_urls = [options] packages = find: install_requires = - qtpy@git+https://github.com/spyder-ide/qtpy.git + qtpy@git+https://github.com/dalthviz/qtpy.git@bfa5cbf#egg=qtpy typing-extensions python_requires = >=3.7 include_package_data = True From ae71bd4a82190698adf8b4c49fa3128584a15436 Mon Sep 17 00:00:00 2001 From: Talley Lambert Date: Sat, 20 Nov 2021 20:35:28 -0500 Subject: [PATCH 06/11] update --- examples/collapsible.py | 3 ++- examples/fonticon1.py | 5 +++-- examples/fonticon2.py | 3 ++- examples/fonticon3.py | 5 +++-- examples/icon_explorer.py | 5 +++-- src/superqt/fonticon/__init__.py | 4 ++-- src/superqt/fonticon/_animations.py | 6 +++--- src/superqt/fonticon/_tests/test_fonticon.py | 4 ++-- src/superqt/fonticon/_tests/test_plugins.py | 2 +- tests/test_collapsible.py | 5 +++-- 10 files changed, 24 insertions(+), 18 deletions(-) diff --git a/examples/collapsible.py b/examples/collapsible.py index ea3401da..0ce17035 100644 --- a/examples/collapsible.py +++ b/examples/collapsible.py @@ -1,7 +1,8 @@ """Example for QCollapsible""" from PySide2.QtWidgets import QLabel +from qtpy.QtWidgets import QApplication, QLabel, QPushButton + from superqt import QCollapsible -from superqt.qtcompat.QtWidgets import QApplication, QPushButton, QLabel app = QApplication([]) diff --git a/examples/fonticon1.py b/examples/fonticon1.py index 9971f73f..a5dd059a 100644 --- a/examples/fonticon1.py +++ b/examples/fonticon1.py @@ -6,9 +6,10 @@ "pip install git+https://github.com/tlambert03/fonticon-fontawesome5.git" ) +from qtpy.QtCore import QSize +from qtpy.QtWidgets import QApplication, QPushButton + from superqt.fonticon import icon, pulse -from superqt.qtcompat.QtCore import QSize -from superqt.qtcompat.QtWidgets import QApplication, QPushButton app = QApplication([]) diff --git a/examples/fonticon2.py b/examples/fonticon2.py index f3a49e6e..4219eaee 100644 --- a/examples/fonticon2.py +++ b/examples/fonticon2.py @@ -6,8 +6,9 @@ "pip install git+https://github.com/tlambert03/fonticon-fontawesome5.git" ) +from qtpy.QtWidgets import QApplication, QPushButton + from superqt.fonticon import setTextIcon -from superqt.qtcompat.QtWidgets import QApplication, QPushButton app = QApplication([]) diff --git a/examples/fonticon3.py b/examples/fonticon3.py index 6a904671..af856876 100644 --- a/examples/fonticon3.py +++ b/examples/fonticon3.py @@ -6,9 +6,10 @@ "pip install git+https://github.com/tlambert03/fonticon-fontawesome5.git" ) +from qtpy.QtCore import QSize +from qtpy.QtWidgets import QApplication, QPushButton + from superqt.fonticon import IconOpts, icon, pulse, spin -from superqt.qtcompat.QtCore import QSize -from superqt.qtcompat.QtWidgets import QApplication, QPushButton app = QApplication([]) diff --git a/examples/icon_explorer.py b/examples/icon_explorer.py index 46ca5cee..f5d915e1 100644 --- a/examples/icon_explorer.py +++ b/examples/icon_explorer.py @@ -1,6 +1,7 @@ +from qtpy import QtCore, QtGui, QtWidgets +from qtpy.QtCore import Qt + from superqt.fonticon._plugins import loaded -from superqt.qtcompat import QtCore, QtGui, QtWidgets -from superqt.qtcompat.QtCore import Qt P = loaded(load_all=True) if not P: diff --git a/src/superqt/fonticon/__init__.py b/src/superqt/fonticon/__init__.py index 871bf558..7b4538ce 100644 --- a/src/superqt/fonticon/__init__.py +++ b/src/superqt/fonticon/__init__.py @@ -22,8 +22,8 @@ from ._qfont_icon import QFontIconStore as _QFIS if TYPE_CHECKING: - from superqt.qtcompat.QtGui import QFont, QTransform - from superqt.qtcompat.QtWidgets import QWidget + from qtpy.QtGui import QFont, QTransform + from qtpy.QtWidgets import QWidget from ._qfont_icon import QFontIcon, ValidColor diff --git a/src/superqt/fonticon/_animations.py b/src/superqt/fonticon/_animations.py index 85ada01c..c86bab30 100644 --- a/src/superqt/fonticon/_animations.py +++ b/src/superqt/fonticon/_animations.py @@ -1,8 +1,8 @@ from abc import ABC, abstractmethod -from superqt.qtcompat.QtCore import QRectF, QTimer -from superqt.qtcompat.QtGui import QPainter -from superqt.qtcompat.QtWidgets import QWidget +from qtpy.QtCore import QRectF, QTimer +from qtpy.QtGui import QPainter +from qtpy.QtWidgets import QWidget class Animation(ABC): diff --git a/src/superqt/fonticon/_tests/test_fonticon.py b/src/superqt/fonticon/_tests/test_fonticon.py index 734533b9..e6d6f781 100644 --- a/src/superqt/fonticon/_tests/test_fonticon.py +++ b/src/superqt/fonticon/_tests/test_fonticon.py @@ -1,11 +1,11 @@ from pathlib import Path import pytest +from qtpy.QtGui import QIcon, QPixmap +from qtpy.QtWidgets import QPushButton from superqt.fonticon import icon, pulse, setTextIcon, spin from superqt.fonticon._qfont_icon import QFontIconStore, _ensure_identifier -from superqt.qtcompat.QtGui import QIcon, QPixmap -from superqt.qtcompat.QtWidgets import QPushButton TEST_PREFIX = "ico" TEST_CHARNAME = "smiley" diff --git a/src/superqt/fonticon/_tests/test_plugins.py b/src/superqt/fonticon/_tests/test_plugins.py index 4fe648ea..2ee2b7d4 100644 --- a/src/superqt/fonticon/_tests/test_plugins.py +++ b/src/superqt/fonticon/_tests/test_plugins.py @@ -2,10 +2,10 @@ from pathlib import Path import pytest +from qtpy.QtGui import QIcon, QPixmap from superqt.fonticon import _plugins, icon from superqt.fonticon._qfont_icon import QFontIconStore -from superqt.qtcompat.QtGui import QIcon, QPixmap try: from importlib.metadata import Distribution diff --git a/tests/test_collapsible.py b/tests/test_collapsible.py index d7e77e6b..d1509ed2 100644 --- a/tests/test_collapsible.py +++ b/tests/test_collapsible.py @@ -1,8 +1,9 @@ """A test module for testing collapsible""" +from qtpy.QtCore import QEasingCurve +from qtpy.QtWidgets import QPushButton + from superqt import QCollapsible -from superqt.qtcompat.QtCore import QEasingCurve -from superqt.qtcompat.QtWidgets import QPushButton def test_checked_initialization(qtbot): From b3e6abdf589cbd72a83242a20b079e12b5b3b047 Mon Sep 17 00:00:00 2001 From: Talley Lambert Date: Sat, 20 Nov 2021 20:37:19 -0500 Subject: [PATCH 07/11] more replace --- src/superqt/collapsible/_collapsible.py | 18 +++++++++++++----- src/superqt/fonticon/_qfont_icon.py | 12 ++++++------ 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/superqt/collapsible/_collapsible.py b/src/superqt/collapsible/_collapsible.py index a42297ce..db232c49 100644 --- a/src/superqt/collapsible/_collapsible.py +++ b/src/superqt/collapsible/_collapsible.py @@ -1,8 +1,14 @@ """A collapsible widget to hide and unhide child widgets""" from typing import Optional -from ..qtcompat.QtCore import QAbstractAnimation, QEasingCurve, QPropertyAnimation, Qt, QMargins -from ..qtcompat.QtWidgets import QFrame, QPushButton, QVBoxLayout, QWidget +from qtpy.QtCore import ( + QAbstractAnimation, + QEasingCurve, + QMargins, + QPropertyAnimation, + Qt, +) +from qtpy.QtWidgets import QFrame, QPushButton, QVBoxLayout, QWidget class QCollapsible(QFrame): @@ -41,7 +47,7 @@ def __init__(self, title: str = "", parent: Optional[QWidget] = None): _content = QWidget() _content.setLayout(QVBoxLayout()) _content.setMaximumHeight(0) - _content.layout().setContentsMargins(QMargins(5,0,0,0)) + _content.layout().setContentsMargins(QMargins(5, 0, 0, 0)) self.setContent(_content) def setText(self, text: str): @@ -77,7 +83,9 @@ def collapse(self, animate: bool = True): def expanded(self): return self._toggle_btn.isChecked() - def _expand_collapse(self, direction: QAbstractAnimation.Direction, animate:bool = True): + def _expand_collapse( + self, direction: QAbstractAnimation.Direction, animate: bool = True + ): if self._locked is True: return @@ -92,7 +100,7 @@ def _expand_collapse(self, direction: QAbstractAnimation.Direction, animate:boo self._animation.setEndValue(self._content.sizeHint().height() + 10) self._animation.start() else: - height = 0 if forward==False else (self._content.sizeHint().height() + 10) + height = 0 if not forward else self._content.sizeHint().height() + 10 self._content.setMaximumHeight(height) def _toggle(self): diff --git a/src/superqt/fonticon/_qfont_icon.py b/src/superqt/fonticon/_qfont_icon.py index ef87bd00..47c50a28 100644 --- a/src/superqt/fonticon/_qfont_icon.py +++ b/src/superqt/fonticon/_qfont_icon.py @@ -6,11 +6,9 @@ from pathlib import Path from typing import DefaultDict, Dict, Optional, Sequence, Tuple, Type, Union, cast -from typing_extensions import TypedDict - -from ..qtcompat import QT_VERSION -from ..qtcompat.QtCore import QObject, QPoint, QRect, QSize, Qt -from ..qtcompat.QtGui import ( +from qtpy import QT_VERSION +from qtpy.QtCore import QObject, QPoint, QRect, QSize, Qt +from qtpy.QtGui import ( QColor, QFont, QFontDatabase, @@ -22,7 +20,9 @@ QPixmapCache, QTransform, ) -from ..qtcompat.QtWidgets import QApplication, QStyleOption, QWidget +from qtpy.QtWidgets import QApplication, QStyleOption, QWidget +from typing_extensions import TypedDict + from ..utils import QMessageHandler from ._animations import Animation From 9fb42d2116a77d54333071b1db81d4181df171d1 Mon Sep 17 00:00:00 2001 From: Talley Lambert Date: Wed, 22 Dec 2021 22:36:23 -0500 Subject: [PATCH 08/11] pin pyside6 for sake of test --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index f92f4547..4a79d89d 100644 --- a/setup.cfg +++ b/setup.cfg @@ -72,7 +72,7 @@ pyqt6 = pyside2 = pyside2 pyside6 = - pyside6 + pyside6<6.2 testing = pytest pytest-cov From bbf197a2cfb6c6f431df381445fe23577f5c503c Mon Sep 17 00:00:00 2001 From: Talley Lambert Date: Mon, 3 Jan 2022 10:38:30 -0500 Subject: [PATCH 09/11] add deprecation --- src/superqt/qtcompat/__init__.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/superqt/qtcompat/__init__.py diff --git a/src/superqt/qtcompat/__init__.py b/src/superqt/qtcompat/__init__.py new file mode 100644 index 00000000..52141e47 --- /dev/null +++ b/src/superqt/qtcompat/__init__.py @@ -0,0 +1,20 @@ +import sys +import warnings +from importlib import abc, util + +from qtpy import * # noqa + +warnings.warn( + "The superqt.qtcompat module is deprecated as of v0.3.0. " + "Please import from `qtpy` instead." +) + + +# forward any requests for superqt.qtcompat.* to qtpy.* +class SuperQtImporter(abc.MetaPathFinder): + def find_spec(self, fullname: str, path, target=None): # type: ignore + if fullname.startswith(__name__): + return util.find_spec(fullname.replace(__name__, "qtpy")) + + +sys.meta_path.append(SuperQtImporter()) From 410e5fe8f67f15ee1c9d8656f6311dc637a64e47 Mon Sep 17 00:00:00 2001 From: Talley Lambert Date: Mon, 3 Jan 2022 10:39:45 -0500 Subject: [PATCH 10/11] drop qt 5.11 --- .github/workflows/test_and_deploy.yml | 6 ------ tox.ini | 6 +----- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/.github/workflows/test_and_deploy.yml b/.github/workflows/test_and_deploy.yml index 9edea9c3..71117df9 100644 --- a/.github/workflows/test_and_deploy.yml +++ b/.github/workflows/test_and_deploy.yml @@ -75,12 +75,6 @@ jobs: backend: pyqt5 # legacy Qt - - python-version: 3.7 - platform: ubuntu-latest - backend: pyside511 - - python-version: 3.7 - platform: ubuntu-latest - backend: pyqt511 - python-version: 3.7 platform: ubuntu-latest backend: pyqt512 diff --git a/tox.ini b/tox.ini index 1de01b2f..638b331d 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py{37,38,39,310}-{linux,macos,windows}-{pyqt5,pyside2,pyqt6,pyside6},py37-linux-{pyqt511,pyside511,pyqt512,pyqt513,pyqt514} +envlist = py{37,38,39,310}-{linux,macos,windows}-{pyqt5,pyside2,pyqt6,pyside6},py37-linux-{pyqt512,pyqt513,pyqt514} toxworkdir=/tmp/.tox isolated_build=True @@ -36,8 +36,6 @@ BACKEND = pyside2: pyside2 pyqt6: pyqt6 pyside6: pyside6 - pyside511: pyside511 - pyqt511: pyqt511 pyqt512: pyqt512 pyqt513: pyqt513 pyqt514: pyqt514 @@ -49,8 +47,6 @@ platform = windows: win32 passenv = CI GITHUB_ACTIONS DISPLAY XAUTHORITY deps = - pyqt511: pyqt5==5.11.* - pyside511: pyside2==5.11.* pyqt512: pyqt5==5.12.* pyside512: pyside2==5.12.* pyqt513: pyqt5==5.13.* From 925667f8eb868ddafcfc412ec37661ef51bd7465 Mon Sep 17 00:00:00 2001 From: Talley Lambert Date: Mon, 3 Jan 2022 10:40:31 -0500 Subject: [PATCH 11/11] unpin pyside6 --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 4a79d89d..f92f4547 100644 --- a/setup.cfg +++ b/setup.cfg @@ -72,7 +72,7 @@ pyqt6 = pyside2 = pyside2 pyside6 = - pyside6<6.2 + pyside6 testing = pytest pytest-cov