diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 3e2ff232..29b6506b 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -8,11 +8,16 @@ on: jobs: pytest-with-nbmake: + strategy: + matrix: + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] runs-on: ubuntu-latest timeout-minutes: 30 steps: - uses: actions/checkout@v5 - name: Setup uv project virtual environment + env: + UV_PYTHON: ${{ matrix.python-version }} uses: ./.github/actions/setup-uv - name: Run pytest --nbmake run: uv run --no-project pytest --nbmake diff --git a/pyproject.toml b/pyproject.toml index f0e0f6b8..70d99141 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -71,6 +71,7 @@ jupyter = [ mypy = [ "mypy >= 1.14", "scipy-stubs >= 1.15; python_version >= '3.10'", + "typing_extensions >= 4.10", ] [dependency-groups] diff --git a/src/rydstate/__init__.py b/src/rydstate/__init__.py index 7636e437..06216317 100644 --- a/src/rydstate/__init__.py +++ b/src/rydstate/__init__.py @@ -12,4 +12,4 @@ ] -__version__ = "0.9.0" +__version__ = "0.9.1" diff --git a/src/rydstate/angular/angular_ket.py b/src/rydstate/angular/angular_ket.py index 1cfc561b..bb01fd3e 100644 --- a/src/rydstate/angular/angular_ket.py +++ b/src/rydstate/angular/angular_ket.py @@ -2,7 +2,7 @@ import logging from abc import ABC -from typing import TYPE_CHECKING, Any, ClassVar, Literal, Self, get_args, overload +from typing import TYPE_CHECKING, Any, ClassVar, Literal, get_args, overload from rydstate.angular.angular_matrix_element import ( AngularMomentumQuantumNumbers, @@ -24,6 +24,8 @@ from rydstate.species import SpeciesObject if TYPE_CHECKING: + from typing_extensions import Self + from rydstate.angular.angular_state import AngularState logger = logging.getLogger(__name__) diff --git a/src/rydstate/angular/angular_state.py b/src/rydstate/angular/angular_state.py index 2f40acd3..dd054933 100644 --- a/src/rydstate/angular/angular_state.py +++ b/src/rydstate/angular/angular_state.py @@ -2,7 +2,7 @@ import logging import math -from typing import TYPE_CHECKING, Any, Generic, Literal, Self, TypeVar, get_args, overload +from typing import TYPE_CHECKING, Any, Generic, Literal, TypeVar, get_args, overload import numpy as np @@ -17,10 +17,11 @@ if TYPE_CHECKING: from collections.abc import Iterator + from typing_extensions import Self + from rydstate.angular.angular_ket import CouplingScheme from rydstate.angular.angular_matrix_element import AngularOperatorType - logger = logging.getLogger(__name__) diff --git a/src/rydstate/angular/utils.py b/src/rydstate/angular/utils.py index 550afe76..03ad0009 100644 --- a/src/rydstate/angular/utils.py +++ b/src/rydstate/angular/utils.py @@ -33,9 +33,9 @@ def sympify_args(func: Callable[P, R]) -> Callable[P, R]: return func def check_arg(arg: float) -> Integer: - if arg.is_integer(): + if isinstance(arg, int) or arg.is_integer(): return Integer(int(arg)) - if (arg * 2).is_integer(): + if isinstance(arg * 2, int) or (arg * 2).is_integer(): return Integer(int(arg * 2)) / Integer(2) raise ValueError(f"Invalid input to {func.__name__}: {arg}.")