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

Skip to content

Commit 634bc5f

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 cfb648f commit 634bc5f

File tree

6 files changed

+129
-313
lines changed

6 files changed

+129
-313
lines changed

INSTALL.rst

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

191191
* :term:`tk` (>= 8.3, != 8.6.0 or 8.6.1): for the TkAgg backend;
192-
* `PyQt4 <https://pypi.python.org/pypi/PyQt4>`_ (>= 4.4) or
193-
`PySide <https://pypi.python.org/pypi/PySide>`_: for the Qt4Agg backend;
192+
* `PyQt4 <https://pypi.python.org/pypi/PyQt4>`_ (>= 4.6) or
193+
`PySide <https://pypi.python.org/pypi/PySide>`_ (>= 1.0.3): for the Qt4Agg
194+
backend;
194195
* `PyQt5 <https://pypi.python.org/pypi/PyQt5>`_: for the Qt5Agg backend;
195196
* :term:`pygtk` (>= 2.4): for the GTK and the GTKAgg backend;
196197
* :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,8 +2,10 @@
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:
911

doc/api/backend_qt5agg_api.rst

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
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:
911

doc/conf.py

Lines changed: 0 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -354,116 +354,10 @@ class Frame(object):
354354
VERSION_STRING = '2.9'
355355

356356

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

468362
# numpydoc config
469363

0 commit comments

Comments
 (0)