Skip to content

Commit 7f7bdc9

Browse files
authored
Merge pull request #20864 from QuLogic/py310
TST: Add Python 3.10 testing.
2 parents 0f2ba37 + 7aa119f commit 7f7bdc9

File tree

6 files changed

+30
-16
lines changed

6 files changed

+30
-16
lines changed

.github/workflows/tests.yml

+5
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ jobs:
4141
python-version: 3.9
4242
extra-requirements: '-r requirements/testing/extra.txt'
4343
XVFB_RUN: xvfb-run -a
44+
- os: ubuntu-20.04
45+
python-version: '3.10-dev'
46+
# Re-add this when extra dependencies have wheels.
47+
# extra-requirements: '-r requirements/testing/extra.txt'
48+
XVFB_RUN: xvfb-run -a
4449
- os: macos-latest
4550
python-version: 3.8
4651
XVFB_RUN: ""

lib/matplotlib/backends/backend_qt.py

+12-12
Original file line numberDiff line numberDiff line change
@@ -630,9 +630,9 @@ class NavigationToolbar2QT(NavigationToolbar2, QtWidgets.QToolBar):
630630
def __init__(self, canvas, parent, coordinates=True):
631631
"""coordinates: should we show the coordinates on the right?"""
632632
QtWidgets.QToolBar.__init__(self, parent)
633-
self.setAllowedAreas(
634-
_enum("QtCore.Qt.ToolBarArea").TopToolBarArea
635-
| _enum("QtCore.Qt.ToolBarArea").TopToolBarArea)
633+
self.setAllowedAreas(QtCore.Qt.ToolBarArea(
634+
_to_int(_enum("QtCore.Qt.ToolBarArea").TopToolBarArea) |
635+
_to_int(_enum("QtCore.Qt.ToolBarArea").BottomToolBarArea)))
636636

637637
self.coordinates = coordinates
638638
self._actions = {} # mapping of toolitem method names to QActions.
@@ -655,9 +655,9 @@ def __init__(self, canvas, parent, coordinates=True):
655655
# will resize this label instead of the buttons.
656656
if self.coordinates:
657657
self.locLabel = QtWidgets.QLabel("", self)
658-
self.locLabel.setAlignment(
659-
_enum("QtCore.Qt.AlignmentFlag").AlignRight
660-
| _enum("QtCore.Qt.AlignmentFlag").AlignVCenter)
658+
self.locLabel.setAlignment(QtCore.Qt.AlignmentFlag(
659+
_to_int(_enum("QtCore.Qt.AlignmentFlag").AlignRight) |
660+
_to_int(_enum("QtCore.Qt.AlignmentFlag").AlignVCenter)))
661661
self.locLabel.setSizePolicy(QtWidgets.QSizePolicy(
662662
_enum("QtWidgets.QSizePolicy.Policy").Expanding,
663663
_enum("QtWidgets.QSizePolicy.Policy").Ignored,
@@ -887,13 +887,13 @@ class ToolbarQt(ToolContainerBase, QtWidgets.QToolBar):
887887
def __init__(self, toolmanager, parent):
888888
ToolContainerBase.__init__(self, toolmanager)
889889
QtWidgets.QToolBar.__init__(self, parent)
890-
self.setAllowedAreas(
891-
_enum("QtCore.Qt.ToolBarArea").TopToolBarArea
892-
| _enum("QtCore.Qt.ToolBarArea").TopToolBarArea)
890+
self.setAllowedAreas(QtCore.Qt.ToolBarArea(
891+
_to_int(_enum("QtCore.Qt.ToolBarArea").TopToolBarArea) |
892+
_to_int(_enum("QtCore.Qt.ToolBarArea").BottomToolBarArea)))
893893
message_label = QtWidgets.QLabel("")
894-
message_label.setAlignment(
895-
_enum("QtCore.Qt.AlignmentFlag").AlignRight
896-
| _enum("QtCore.Qt.AlignmentFlag").AlignVCenter)
894+
message_label.setAlignment(QtCore.Qt.AlignmentFlag(
895+
_to_int(_enum("QtCore.Qt.AlignmentFlag").AlignRight) |
896+
_to_int(_enum("QtCore.Qt.AlignmentFlag").AlignVCenter)))
897897
message_label.setSizePolicy(QtWidgets.QSizePolicy(
898898
_enum("QtWidgets.QSizePolicy.Policy").Expanding,
899899
_enum("QtWidgets.QSizePolicy.Policy").Ignored,

lib/matplotlib/backends/qt_editor/_formlayout.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848

4949
from matplotlib import _api, colors as mcolors
5050
from .. import qt_compat
51-
from ..qt_compat import QtGui, QtWidgets, QtCore, _enum
51+
from ..qt_compat import QtGui, QtWidgets, QtCore, _enum, _to_int
5252

5353
_log = logging.getLogger(__name__)
5454

@@ -441,8 +441,12 @@ def __init__(self, data, title="", comment="",
441441

442442
# Button box
443443
self.bbox = bbox = QtWidgets.QDialogButtonBox(
444-
_enum("QtWidgets.QDialogButtonBox.StandardButton").Ok
445-
| _enum("QtWidgets.QDialogButtonBox.StandardButton").Cancel)
444+
QtWidgets.QDialogButtonBox.StandardButton(
445+
_to_int(
446+
_enum("QtWidgets.QDialogButtonBox.StandardButton").Ok) |
447+
_to_int(
448+
_enum("QtWidgets.QDialogButtonBox.StandardButton").Cancel)
449+
))
446450
self.formwidget.update_buttons.connect(self.update_buttons)
447451
if self.apply_callback is not None:
448452
apply_btn = bbox.addButton(

lib/matplotlib/testing/conftest.py

+3
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ def pytest_configure(config):
2121
("filterwarnings", "error"),
2222
("filterwarnings",
2323
"ignore:.*The py23 module has been deprecated:DeprecationWarning"),
24+
("filterwarnings",
25+
r"ignore:DynamicImporter.find_spec\(\) not found; "
26+
r"falling back to find_module\(\):ImportWarning"),
2427
]:
2528
config.addinivalue_line(key, value)
2629

lib/matplotlib/tests/test_sphinxext.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
import pytest
1111

1212

13-
pytest.importorskip('sphinx')
13+
pytest.importorskip('sphinx',
14+
minversion=None if sys.version_info < (3, 10) else '4.1.3')
1415

1516

1617
def test_tinypages(tmpdir):

setup.py

+1
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,7 @@ def make_release_tree(self, base_dir, files):
299299
'Programming Language :: Python :: 3.7',
300300
'Programming Language :: Python :: 3.8',
301301
'Programming Language :: Python :: 3.9',
302+
'Programming Language :: Python :: 3.10',
302303
'Topic :: Scientific/Engineering :: Visualization',
303304
],
304305

0 commit comments

Comments
 (0)