From 03fadc07fec43d911b7871590c17025d16924032 Mon Sep 17 00:00:00 2001 From: Evgenii Zheltonozhskii Date: Tue, 23 May 2023 17:09:52 +0300 Subject: [PATCH] Fix utils mypy errors --- qiskit/utils/deprecation.py | 8 ++++--- qiskit/utils/measurement_error_mitigation.py | 13 ++++++----- qiskit/utils/mitigation/_filters.py | 2 +- qiskit/utils/mitigation/circuits.py | 23 +++++++++++--------- qiskit/utils/run_circuits.py | 4 ++-- 5 files changed, 28 insertions(+), 22 deletions(-) diff --git a/qiskit/utils/deprecation.py b/qiskit/utils/deprecation.py index 92cd4d44b863..e34f404625ef 100644 --- a/qiskit/utils/deprecation.py +++ b/qiskit/utils/deprecation.py @@ -17,7 +17,7 @@ import functools import inspect import warnings -from typing import Any, Callable, Dict, Optional, Type, Tuple, Union +from typing import Any, Callable, Dict, Optional, Type def deprecate_func( @@ -353,9 +353,11 @@ def _write_deprecation_msg( pending: bool, additional_msg: str, removal_timeline: str, -) -> Tuple[str, Union[Type[DeprecationWarning], Type[PendingDeprecationWarning]]]: +) -> tuple[str, Type[DeprecationWarning] | Type[PendingDeprecationWarning]]: if pending: - category = PendingDeprecationWarning + category: Type[DeprecationWarning] | Type[ + PendingDeprecationWarning + ] = PendingDeprecationWarning deprecation_status = "pending deprecation" removal_desc = f"marked deprecated in a future release, and then removed {removal_timeline}" else: diff --git a/qiskit/utils/measurement_error_mitigation.py b/qiskit/utils/measurement_error_mitigation.py index e0b4ddc9f75d..d3a692b79e97 100644 --- a/qiskit/utils/measurement_error_mitigation.py +++ b/qiskit/utils/measurement_error_mitigation.py @@ -11,9 +11,10 @@ # that they have been altered from the originals. """Measurement error mitigation""" +from __future__ import annotations import copy -from typing import List, Optional, Tuple, Dict, Callable +from typing import List, Optional, Tuple, Dict, Callable, Type, Any from qiskit import compiler from qiskit.providers import Backend @@ -129,12 +130,12 @@ def get_measured_qubits_from_qobj(qobj: QasmQobj) -> Tuple[List[int], Dict[str, ) def build_measurement_error_mitigation_circuits( qubit_list: List[int], - fitter_cls: Callable, + fitter_cls: Type[CompleteMeasFitter] | Type[TensoredMeasFitter], backend: Backend, - backend_config: Optional[Dict] = None, - compile_config: Optional[Dict] = None, - mit_pattern: Optional[List[List[int]]] = None, -) -> Tuple[QuantumCircuit, List[str], List[str]]: + backend_config: dict[str, Any] | None = None, + compile_config: dict[str, Any] | None = None, + mit_pattern: list[list[int]] | None = None, +) -> Tuple[QuantumCircuit, list[str], list[str]]: """Deprecated: Build measurement error mitigation circuits Args: qubit_list: list of ordered qubits used in the algorithm diff --git a/qiskit/utils/mitigation/_filters.py b/qiskit/utils/mitigation/_filters.py index acfc35ff289a..1bebd36e0e5a 100644 --- a/qiskit/utils/mitigation/_filters.py +++ b/qiskit/utils/mitigation/_filters.py @@ -21,7 +21,7 @@ Measurement correction filters. """ - +from __future__ import annotations from typing import List, Dict, Any from copy import deepcopy diff --git a/qiskit/utils/mitigation/circuits.py b/qiskit/utils/mitigation/circuits.py index b593f4865cf3..45a23a370a22 100644 --- a/qiskit/utils/mitigation/circuits.py +++ b/qiskit/utils/mitigation/circuits.py @@ -18,7 +18,10 @@ Measurement calibration circuits. To apply the measurement mitigation use the fitters to produce a filter. """ -from typing import List, Tuple, Union, Any, Optional, Collection +from __future__ import annotations + +from collections.abc import Sequence +from typing import Any from qiskit.utils.deprecation import deprecate_func @@ -26,7 +29,7 @@ since="0.24.0", additional_msg="For code migration guidelines, visit https://qisk.it/qi_migration.", ) -def count_keys(num_qubits: int) -> List[str]: +def count_keys(num_qubits: int) -> list[str]: """Deprecated: Return ordered count keys. Args: @@ -45,11 +48,11 @@ def count_keys(num_qubits: int) -> List[str]: additional_msg="For code migration guidelines, visit https://qisk.it/qi_migration.", ) def complete_meas_cal( - qubit_list: Optional[List[int]] = None, - qr: Optional[Union[int, List[Any]]] = None, - cr: Optional[Union[int, List[Any]]] = None, + qubit_list: Sequence[int] | None = None, + qr: int | list | None = None, + cr: int | list | None = None, circlabel: str = "", -) -> Tuple[List[Any], List[str]]: +) -> tuple[list, list[str]]: """ Deprecated: Return a list of measurement calibration circuits for the full Hilbert space. @@ -126,11 +129,11 @@ def complete_meas_cal( additional_msg="For code migration guidelines, visit https://qisk.it/qi_migration.", ) def tensored_meas_cal( - mit_pattern: Optional[List[List[int]]] = None, - qr: Optional[Union[int, Collection[Any]]] = None, - cr: Optional[Union[int, Collection[Any]]] = None, + mit_pattern: list[list[int]] | None = None, + qr: int | Sequence[Any] | None = None, + cr: int | Sequence[Any] | None = None, circlabel: str = "", -) -> Tuple[List[Any], List[List[int]]]: +) -> tuple[list[Any], list[list[int]]]: """ Deprecated: Return a list of calibration circuits diff --git a/qiskit/utils/run_circuits.py b/qiskit/utils/run_circuits.py index 9714234ca694..3d86623426d4 100644 --- a/qiskit/utils/run_circuits.py +++ b/qiskit/utils/run_circuits.py @@ -11,7 +11,7 @@ # that they have been altered from the originals. """run circuits functions""" - +from __future__ import annotations from typing import Optional, Dict, Callable, List, Union, Tuple import sys import logging @@ -59,7 +59,7 @@ def find_regs_by_name( """ found_reg = None - regs = circuit.qregs if qreg else circuit.cregs + regs: list[QuantumRegister] | list[ClassicalRegister] = circuit.qregs if qreg else circuit.cregs for reg in regs: if reg.name == name: found_reg = reg