Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 15f44b8

Browse files
committed
Rewrite and greatly simplify qt_compat.py.
The selection logic is now described in the module's docstring. The only changes is that the QT_ENV_MAJOR_VERSION global, which would sometimes be defined (depending on the state of the import cache, the QT_API environment variable, and the requested backend) is never defined anymore.
1 parent af1197d commit 15f44b8

File tree

6 files changed

+129
-311
lines changed

6 files changed

+129
-311
lines changed

INSTALL.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,9 @@ interface toolkits. See :ref:`what-is-a-backend` for more details on the
188188
optional Matplotlib backends and the capabilities they provide.
189189

190190
* :term:`tk` (>= 8.3, != 8.6.0 or 8.6.1): for the TkAgg backend;
191-
* `PyQt4 <https://pypi.python.org/pypi/PyQt4>`_ (>= 4.4) or
192-
`PySide <https://pypi.python.org/pypi/PySide>`_: for the Qt4Agg backend;
191+
* `PyQt4 <https://pypi.python.org/pypi/PyQt4>`_ (>= 4.6) or
192+
`PySide <https://pypi.python.org/pypi/PySide>`_ (>= 1.0.3): for the Qt4Agg
193+
backend;
193194
* `PyQt5 <https://pypi.python.org/pypi/PyQt5>`_: for the Qt5Agg backend;
194195
* :term:`pygtk` (>= 2.4): for the GTK and the GTKAgg backend;
195196
* :term:`wxpython` (>= 2.9 or later): for the WX or WXAgg backend;

doc/api/backend_qt4agg_api.rst

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
:mod:`matplotlib.backends.backend_qt4agg`
33
=========================================
44

5-
.. automodule:: matplotlib.backends.backend_qt4agg
6-
:members:
7-
:undoc-members:
8-
:show-inheritance:
5+
**NOTE** Not included, to avoid adding a dependency to building the docs.
6+
7+
.. .. automodule:: matplotlib.backends.backend_qt4agg
8+
.. :members:
9+
.. :undoc-members:
10+
.. :show-inheritance:

doc/api/backend_qt5agg_api.rst

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
:mod:`matplotlib.backends.backend_qt5agg`
33
=========================================
44

5-
.. automodule:: matplotlib.backends.backend_qt5agg
6-
:members:
7-
:undoc-members:
8-
:show-inheritance:
5+
**NOTE** Not included, to avoid adding a dependency to building the docs.
6+
7+
.. .. automodule:: matplotlib.backends.backend_qt5agg
8+
.. :members:
9+
.. :undoc-members:
10+
.. :show-inheritance:

doc/conf.py

Lines changed: 0 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -339,108 +339,6 @@ class MyCairo(MagicMock):
339339
version_info = (1, 4, 0)
340340

341341

342-
class MyPyQt4(MagicMock):
343-
class QtGui(object):
344-
# PyQt4.QtGui public classes.
345-
# Generated with
346-
# textwrap.fill([name for name in dir(PyQt4.QtGui)
347-
# if isinstance(getattr(PyQt4.QtGui, name), type)])
348-
_QtGui_public_classes = """\
349-
Display QAbstractButton QAbstractGraphicsShapeItem
350-
QAbstractItemDelegate QAbstractItemView QAbstractPrintDialog
351-
QAbstractProxyModel QAbstractScrollArea QAbstractSlider
352-
QAbstractSpinBox QAbstractTextDocumentLayout QAction QActionEvent
353-
QActionGroup QApplication QBitmap QBoxLayout QBrush QButtonGroup
354-
QCalendarWidget QCheckBox QClipboard QCloseEvent QColor QColorDialog
355-
QColumnView QComboBox QCommandLinkButton QCommonStyle QCompleter
356-
QConicalGradient QContextMenuEvent QCursor QDataWidgetMapper QDateEdit
357-
QDateTimeEdit QDesktopServices QDesktopWidget QDial QDialog
358-
QDialogButtonBox QDirModel QDockWidget QDoubleSpinBox QDoubleValidator
359-
QDrag QDragEnterEvent QDragLeaveEvent QDragMoveEvent QDropEvent
360-
QErrorMessage QFileDialog QFileIconProvider QFileOpenEvent
361-
QFileSystemModel QFocusEvent QFocusFrame QFont QFontComboBox
362-
QFontDatabase QFontDialog QFontInfo QFontMetrics QFontMetricsF
363-
QFormLayout QFrame QGesture QGestureEvent QGestureRecognizer QGlyphRun
364-
QGradient QGraphicsAnchor QGraphicsAnchorLayout QGraphicsBlurEffect
365-
QGraphicsColorizeEffect QGraphicsDropShadowEffect QGraphicsEffect
366-
QGraphicsEllipseItem QGraphicsGridLayout QGraphicsItem
367-
QGraphicsItemAnimation QGraphicsItemGroup QGraphicsLayout
368-
QGraphicsLayoutItem QGraphicsLineItem QGraphicsLinearLayout
369-
QGraphicsObject QGraphicsOpacityEffect QGraphicsPathItem
370-
QGraphicsPixmapItem QGraphicsPolygonItem QGraphicsProxyWidget
371-
QGraphicsRectItem QGraphicsRotation QGraphicsScale QGraphicsScene
372-
QGraphicsSceneContextMenuEvent QGraphicsSceneDragDropEvent
373-
QGraphicsSceneEvent QGraphicsSceneHelpEvent QGraphicsSceneHoverEvent
374-
QGraphicsSceneMouseEvent QGraphicsSceneMoveEvent
375-
QGraphicsSceneResizeEvent QGraphicsSceneWheelEvent
376-
QGraphicsSimpleTextItem QGraphicsTextItem QGraphicsTransform
377-
QGraphicsView QGraphicsWidget QGridLayout QGroupBox QHBoxLayout
378-
QHeaderView QHelpEvent QHideEvent QHoverEvent QIcon QIconDragEvent
379-
QIconEngine QIconEngineV2 QIdentityProxyModel QImage QImageIOHandler
380-
QImageReader QImageWriter QInputContext QInputContextFactory
381-
QInputDialog QInputEvent QInputMethodEvent QIntValidator QItemDelegate
382-
QItemEditorCreatorBase QItemEditorFactory QItemSelection
383-
QItemSelectionModel QItemSelectionRange QKeyEvent QKeyEventTransition
384-
QKeySequence QLCDNumber QLabel QLayout QLayoutItem QLineEdit
385-
QLinearGradient QListView QListWidget QListWidgetItem QMainWindow
386-
QMatrix QMatrix2x2 QMatrix2x3 QMatrix2x4 QMatrix3x2 QMatrix3x3
387-
QMatrix3x4 QMatrix4x2 QMatrix4x3 QMatrix4x4 QMdiArea QMdiSubWindow
388-
QMenu QMenuBar QMessageBox QMimeSource QMouseEvent
389-
QMouseEventTransition QMoveEvent QMovie QPageSetupDialog QPaintDevice
390-
QPaintEngine QPaintEngineState QPaintEvent QPainter QPainterPath
391-
QPainterPathStroker QPalette QPanGesture QPen QPicture QPictureIO
392-
QPinchGesture QPixmap QPixmapCache QPlainTextDocumentLayout
393-
QPlainTextEdit QPolygon QPolygonF QPrintDialog QPrintEngine
394-
QPrintPreviewDialog QPrintPreviewWidget QPrinter QPrinterInfo
395-
QProgressBar QProgressDialog QProxyModel QPushButton QPyTextObject
396-
QQuaternion QRadialGradient QRadioButton QRawFont QRegExpValidator
397-
QRegion QResizeEvent QRubberBand QScrollArea QScrollBar
398-
QSessionManager QShortcut QShortcutEvent QShowEvent QSizeGrip
399-
QSizePolicy QSlider QSortFilterProxyModel QSound QSpacerItem QSpinBox
400-
QSplashScreen QSplitter QSplitterHandle QStackedLayout QStackedWidget
401-
QStandardItem QStandardItemModel QStaticText QStatusBar
402-
QStatusTipEvent QStringListModel QStyle QStyleFactory QStyleHintReturn
403-
QStyleHintReturnMask QStyleHintReturnVariant QStyleOption
404-
QStyleOptionButton QStyleOptionComboBox QStyleOptionComplex
405-
QStyleOptionDockWidget QStyleOptionDockWidgetV2 QStyleOptionFocusRect
406-
QStyleOptionFrame QStyleOptionFrameV2 QStyleOptionFrameV3
407-
QStyleOptionGraphicsItem QStyleOptionGroupBox QStyleOptionHeader
408-
QStyleOptionMenuItem QStyleOptionProgressBar QStyleOptionProgressBarV2
409-
QStyleOptionRubberBand QStyleOptionSizeGrip QStyleOptionSlider
410-
QStyleOptionSpinBox QStyleOptionTab QStyleOptionTabBarBase
411-
QStyleOptionTabBarBaseV2 QStyleOptionTabV2 QStyleOptionTabV3
412-
QStyleOptionTabWidgetFrame QStyleOptionTabWidgetFrameV2
413-
QStyleOptionTitleBar QStyleOptionToolBar QStyleOptionToolBox
414-
QStyleOptionToolBoxV2 QStyleOptionToolButton QStyleOptionViewItem
415-
QStyleOptionViewItemV2 QStyleOptionViewItemV3 QStyleOptionViewItemV4
416-
QStylePainter QStyledItemDelegate QSwipeGesture QSyntaxHighlighter
417-
QSystemTrayIcon QTabBar QTabWidget QTableView QTableWidget
418-
QTableWidgetItem QTableWidgetSelectionRange QTabletEvent
419-
QTapAndHoldGesture QTapGesture QTextBlock QTextBlockFormat
420-
QTextBlockGroup QTextBlockUserData QTextBrowser QTextCharFormat
421-
QTextCursor QTextDocument QTextDocumentFragment QTextDocumentWriter
422-
QTextEdit QTextFormat QTextFragment QTextFrame QTextFrameFormat
423-
QTextImageFormat QTextInlineObject QTextItem QTextLayout QTextLength
424-
QTextLine QTextList QTextListFormat QTextObject QTextObjectInterface
425-
QTextOption QTextTable QTextTableCell QTextTableCellFormat
426-
QTextTableFormat QTimeEdit QToolBar QToolBox QToolButton QToolTip
427-
QTouchEvent QTransform QTreeView QTreeWidget QTreeWidgetItem
428-
QTreeWidgetItemIterator QUndoCommand QUndoGroup QUndoStack QUndoView
429-
QVBoxLayout QValidator QVector2D QVector3D QVector4D QWhatsThis
430-
QWhatsThisClickedEvent QWheelEvent QWidget QWidgetAction QWidgetItem
431-
QWindowStateChangeEvent QWizard QWizardPage QWorkspace
432-
QX11EmbedContainer QX11EmbedWidget QX11Info
433-
"""
434-
for _name in _QtGui_public_classes.split():
435-
locals()[_name] = type(_name, (), {})
436-
del _name
437-
438-
439-
class MySip(MagicMock):
440-
def getapi(*args):
441-
return 1
442-
443-
444342
class MyWX(MagicMock):
445343
class Panel(object):
446344
pass
@@ -456,8 +354,6 @@ class Frame(object):
456354

457355
sys.modules['cairo'] = MyCairo()
458356
sys.modules['cairo'].__name__ = 'cairocffi'
459-
sys.modules['PyQt4'] = MyPyQt4()
460-
sys.modules['sip'] = MySip()
461357
sys.modules['wx'] = MyWX()
462358
sys.modules['wxversion'] = MagicMock()
463359

0 commit comments

Comments
 (0)