diff --git a/.github/package.json b/.github/package.json index ef1add29380d..67553b38e995 100644 --- a/.github/package.json +++ b/.github/package.json @@ -1 +1 @@ -{"devDependencies": {"pyright": "1.1.408"}} +{"devDependencies": {"pyright": "1.1.409"}} diff --git a/src/qcodes/dataset/dond/do_nd_utils.py b/src/qcodes/dataset/dond/do_nd_utils.py index 4864ece31663..5d0339c23b43 100644 --- a/src/qcodes/dataset/dond/do_nd_utils.py +++ b/src/qcodes/dataset/dond/do_nd_utils.py @@ -1,7 +1,7 @@ from __future__ import annotations import logging -from collections.abc import Callable, Iterator, Sequence +from collections.abc import Callable, Generator, Sequence from contextlib import contextmanager from typing import TYPE_CHECKING @@ -120,7 +120,7 @@ def _register_actions( @contextmanager -def catch_interrupts() -> Iterator[Callable[[], MeasInterruptT | None]]: +def catch_interrupts() -> Generator[Callable[[], MeasInterruptT | None], None, None]: interrupt_exception: MeasInterruptT | None = None interrupt_raised = False diff --git a/src/qcodes/dataset/sqlite/connection.py b/src/qcodes/dataset/sqlite/connection.py index 2e38547a3977..b450c3c8194e 100644 --- a/src/qcodes/dataset/sqlite/connection.py +++ b/src/qcodes/dataset/sqlite/connection.py @@ -14,7 +14,7 @@ from qcodes.utils import DelayedKeyboardInterrupt if TYPE_CHECKING: - from collections.abc import Iterator + from collections.abc import Generator log = logging.getLogger(__name__) @@ -46,7 +46,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: @contextmanager -def atomic(conn: AtomicConnection) -> Iterator[AtomicConnection]: +def atomic(conn: AtomicConnection) -> Generator[AtomicConnection, None, None]: """ Guard a series of transactions as atomic. diff --git a/src/qcodes/dataset/sqlite/database.py b/src/qcodes/dataset/sqlite/database.py index 06fb478dc1a3..a0d17507babf 100644 --- a/src/qcodes/dataset/sqlite/database.py +++ b/src/qcodes/dataset/sqlite/database.py @@ -29,7 +29,7 @@ from qcodes.utils.types import complex_types, numpy_floats, numpy_ints if TYPE_CHECKING: - from collections.abc import Iterator + from collections.abc import Generator from pathlib import Path JournalMode = Literal["DELETE", "TRUNCATE", "PERSIST", "MEMORY", "WAL", "OFF"] @@ -273,7 +273,7 @@ def initialise_or_create_database_at( @contextmanager def initialised_database_at( db_file_with_abs_path: str | Path, *, journal_mode: JournalMode | None = "WAL" -) -> Iterator[None]: +) -> Generator[None, None, None]: """ Initialises or creates a database at the specified location, configures QCoDeS to use this as the default database for the duration of the context, and restores the 'db_location' afterwards. diff --git a/src/qcodes/instrument_drivers/AlazarTech/ATS.py b/src/qcodes/instrument_drivers/AlazarTech/ATS.py index bba21e8424d6..377f9ae4b610 100644 --- a/src/qcodes/instrument_drivers/AlazarTech/ATS.py +++ b/src/qcodes/instrument_drivers/AlazarTech/ATS.py @@ -19,7 +19,7 @@ from .utils import TraceParameter if TYPE_CHECKING: - from collections.abc import Iterator, Sequence + from collections.abc import Generator, Sequence from typing_extensions import Unpack @@ -208,7 +208,7 @@ def get_idn(self) -> dict[str, str | int | None]: # type: ignore[override] } @contextmanager - def syncing(self) -> Iterator[None]: + def syncing(self) -> Generator[None, None, None]: """ Context manager for syncing settings to Alazar card. It will automatically call sync_settings_to_card at the end of the diff --git a/src/qcodes/logger/instrument_logger.py b/src/qcodes/logger/instrument_logger.py index bb96129a6a56..ddc32374fcb6 100644 --- a/src/qcodes/logger/instrument_logger.py +++ b/src/qcodes/logger/instrument_logger.py @@ -16,7 +16,7 @@ from .logger import LevelType, get_console_handler, handler_level if TYPE_CHECKING: - from collections.abc import Iterator, Mapping, MutableMapping, Sequence + from collections.abc import Generator, Mapping, MutableMapping, Sequence from qcodes.instrument import InstrumentBase @@ -157,7 +157,7 @@ def filter_instrument( instrument: InstrumentBase | Sequence[InstrumentBase], handler: logging.Handler | Sequence[logging.Handler] | None = None, level: LevelType | None = None, -) -> Iterator[None]: +) -> Generator[None, None, None]: """ Context manager that adds a filter that only enables the log messages of the supplied instruments to pass. diff --git a/src/qcodes/logger/log_analysis.py b/src/qcodes/logger/log_analysis.py index 81828cad456b..2f58b5ed9b39 100644 --- a/src/qcodes/logger/log_analysis.py +++ b/src/qcodes/logger/log_analysis.py @@ -13,7 +13,7 @@ from typing import TYPE_CHECKING if TYPE_CHECKING: - from collections.abc import Callable, Iterator, Sequence + from collections.abc import Callable, Generator, Sequence import numpy as np import numpy.typing as npt @@ -156,7 +156,7 @@ def time_difference( @contextmanager def capture_dataframe( level: LevelType = logging.DEBUG, logger: logging.Logger | None = None -) -> Iterator[tuple[logging.StreamHandler, Callable[[], pd.DataFrame]]]: +) -> Generator[tuple[logging.StreamHandler, Callable[[], pd.DataFrame]], None, None]: """ Context manager to capture the logs in a :class:`pd.DataFrame` diff --git a/src/qcodes/logger/logger.py b/src/qcodes/logger/logger.py index 96a48b2ec22d..8291d4b9dd7e 100644 --- a/src/qcodes/logger/logger.py +++ b/src/qcodes/logger/logger.py @@ -18,7 +18,7 @@ from typing import TYPE_CHECKING, Any, Self if TYPE_CHECKING: - from collections.abc import Iterator, Sequence + from collections.abc import Generator, Sequence from types import TracebackType import qcodes as qc @@ -352,7 +352,7 @@ def running_in_test_or_tool() -> bool: @contextmanager def handler_level( level: LevelType, handler: "logging.Handler | Sequence[logging.Handler]" -) -> "Iterator[None]": +) -> "Generator[None, None, None]": """ Context manager to temporarily change the level of handlers. @@ -378,7 +378,7 @@ def handler_level( @contextmanager -def console_level(level: LevelType) -> "Iterator[None]": +def console_level(level: LevelType) -> "Generator[None, None, None]": """ Context manager to temporarily change the level of the qcodes console handler. diff --git a/src/qcodes/utils/attribute_helpers.py b/src/qcodes/utils/attribute_helpers.py index b2b32a27fc3a..5a8fc6c2546b 100644 --- a/src/qcodes/utils/attribute_helpers.py +++ b/src/qcodes/utils/attribute_helpers.py @@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Any, ClassVar if TYPE_CHECKING: - from collections.abc import Iterator, Sequence + from collections.abc import Generator, Sequence class DelegateAttributes: @@ -165,7 +165,7 @@ def checked_getattr_indexed( @contextmanager def attribute_set_to( object_: object, attribute_name: str, new_value: Any -) -> "Iterator[None]": +) -> "Generator[None, None, None]": """ This context manager allows to change a given attribute of a given object to a new value, and the original value is reverted upon exit of the context diff --git a/tests/parameter/test_group_parameter.py b/tests/parameter/test_group_parameter.py index 974ec8b4478e..6c580e036ce0 100644 --- a/tests/parameter/test_group_parameter.py +++ b/tests/parameter/test_group_parameter.py @@ -221,6 +221,7 @@ def test_update_group_parameter_reflected_in_cache_of_all_params() -> None: assert before <= dummy.a.cache.timestamp assert after >= dummy.a.cache.timestamp + assert dummy.b.cache.timestamp is not None assert before <= dummy.b.cache.timestamp assert after >= dummy.b.cache.timestamp @@ -244,6 +245,7 @@ def test_get_group_param_updates_cache_of_other_param() -> None: assert before <= dummy.a.cache.timestamp assert after >= dummy.a.cache.timestamp + assert dummy.b.cache.timestamp is not None assert before <= dummy.b.cache.timestamp assert after >= dummy.b.cache.timestamp @@ -267,6 +269,7 @@ def test_set_group_param_updates_cache_of_other_param() -> None: assert before <= dummy.a.cache.timestamp assert after >= dummy.a.cache.timestamp + assert dummy.b.cache.timestamp is not None assert before <= dummy.b.cache.timestamp assert after >= dummy.b.cache.timestamp