42
42
QT_API = QT_API_PYSIDE
43
43
# Otherwise, check the QT_API environment variable (from Enthought). This can
44
44
# only override the binding, not the backend (in other words, we check that the
45
- # requested backend actually matches).
46
- elif mpl .rcParams ["backend" ] in ["Qt5Agg" , "Qt5Cairo" ]:
45
+ # requested backend actually matches). Use dict.__getitem__ to avoid
46
+ # triggering backend resolution (which can result in a partially but
47
+ # incompletely imported backend_qt5).
48
+ elif dict .__getitem__ (mpl .rcParams , "backend" ) in ["Qt5Agg" , "Qt5Cairo" ]:
47
49
if QT_API_ENV in ["pyqt5" , "pyside2" ]:
48
50
QT_API = _ETS [QT_API_ENV ]
49
51
else :
50
52
QT_API = None
51
- elif mpl .rcParams [ "backend" ] in ["Qt4Agg" , "Qt4Cairo" ]:
53
+ elif dict . __getitem__ ( mpl .rcParams , "backend" ) in ["Qt4Agg" , "Qt4Cairo" ]:
52
54
if QT_API_ENV in ["pyqt4" , "pyside" ]:
53
55
QT_API = _ETS [QT_API_ENV ]
54
56
else :
<
7150
/div>
@@ -150,8 +152,8 @@ def is_pyqt5():
150
152
_setup_pyqt5 ()
151
153
elif QT_API in [QT_API_PYQTv2 , QT_API_PYSIDE , QT_API_PYQT ]:
152
154
_setup_pyqt4 ()
153
- elif QT_API is None :
154
- if mpl .rcParams [ "backend" ] == "Qt4Agg" :
155
+ elif QT_API is None : # See above re: dict.__getitem__.
156
+ if dict . __getitem__ ( mpl .rcParams , "backend" ) == "Qt4Agg" :
155
157
_candidates = [(_setup_pyqt4 , QT_API_PYQTv2 ),
156
158
(_setup_pyqt4 , QT_API_PYSIDE ),
157
159
(_setup_pyqt4 , QT_API_PYQT ),
0 commit comments