diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2244163..d7c78f7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,14 +9,17 @@ jobs: unit-test-and-typecheck: runs-on: "ubuntu-latest" strategy: + fail-fast: false matrix: python-version: + - "3.13" + - "3.12" - "3.11" - "3.10" - "3.9" pyqt-dependency: - - "PyQt6" - - "PySide6" + - "PyQt" + - "PySide" steps: - uses: "actions/checkout@v3" @@ -30,10 +33,10 @@ jobs: run: | # Project dependencies from pyproject.toml # NOTE: Also builds viscm. How do we avoid this? - pip install . + pip install .[${{ matrix.pyqt-dependency }}] # Test dependencies - pip install pytest pytest-cov pytest-qt pytest-xvfb ${{ matrix.pyqt-dependency }} + pip install pytest pytest-cov pytest-qt pytest-xvfb # pytest-qt CI dependencies: https://pytest-qt.readthedocs.io/en/latest/troubleshooting.html#github-actions sudo apt update sudo apt install -y \ @@ -41,6 +44,8 @@ jobs: libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-xfixes0 x11-utils \ libxcb-cursor0 + - run: pip list + - name: "Run tests" run: "make test" env: diff --git a/pyproject.toml b/pyproject.toml index f5cb284..fb64270 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,12 +15,12 @@ classifiers = [ "Programming Language :: Python :: 3", ] -requires-python = "~=3.9" +requires-python = ">=3.9" dependencies = [ - "numpy ~=1.22", - "matplotlib ~=3.5", - "colorspacious ~=1.1", - "scipy ~=1.8", + "numpy >=1.22", + "matplotlib >=3.5", + "colorspacious >=1.1", + "scipy >=1.8", ] [project.optional-dependencies] diff --git a/viscm/bezierbuilder/__init__.py b/viscm/bezierbuilder/__init__.py index cce4e21..d245047 100644 --- a/viscm/bezierbuilder/__init__.py +++ b/viscm/bezierbuilder/__init__.py @@ -26,7 +26,7 @@ """ import numpy as np -from matplotlib.backends.qt_compat import QtCore +from matplotlib.backends.qt_compat import QtCore # type: ignore [attr-defined] from matplotlib.lines import Line2D from viscm.bezierbuilder.curve import curve_method diff --git a/viscm/gui.py b/viscm/gui.py index e527ae3..0fd5cc9 100644 --- a/viscm/gui.py +++ b/viscm/gui.py @@ -26,7 +26,11 @@ # matplotlib.rcParams['backend'] = "QtAgg" # Do this first before any other matplotlib imports, to force matplotlib to # use a Qt backend -from matplotlib.backends.qt_compat import QtCore, QtGui, QtWidgets +from matplotlib.backends.qt_compat import ( # type: ignore [attr-defined] + QtCore, + QtGui, + QtWidgets, +) from matplotlib.colors import ListedColormap from matplotlib.gridspec import GridSpec