diff --git a/qiskit/utils/measurement_error_mitigation.py b/qiskit/utils/measurement_error_mitigation.py index 0ef09c997ec5..e0b4ddc9f75d 100644 --- a/qiskit/utils/measurement_error_mitigation.py +++ b/qiskit/utils/measurement_error_mitigation.py @@ -51,7 +51,7 @@ def get_measured_qubits( QiskitError: invalid qubit mapping """ qubit_index = None - qubit_mappings = {} + qubit_mappings: Dict[str, List[int]] = {} for idx, qc in enumerate(transpiled_circuits): measured_qubits = [] for instruction in qc.data: @@ -98,7 +98,7 @@ def get_measured_qubits_from_qobj(qobj: QasmQobj) -> Tuple[List[int], Dict[str, """ qubit_index = None - qubit_mappings = {} + qubit_mappings: Dict[str, List[int]] = {} for idx, exp in enumerate(qobj.experiments): measured_qubits = [] diff --git a/qiskit/utils/mitigation/_filters.py b/qiskit/utils/mitigation/_filters.py index 5d566f625116..acfc35ff289a 100644 --- a/qiskit/utils/mitigation/_filters.py +++ b/qiskit/utils/mitigation/_filters.py @@ -22,7 +22,7 @@ """ -from typing import List +from typing import List, Dict, Any from copy import deepcopy import numpy as np @@ -65,6 +65,11 @@ def cal_matrix(self): """Return cal_matrix.""" return self._cal_matrix + @cal_matrix.setter + def cal_matrix(self, new_cal_matrix): + """Set cal_matrix.""" + self._cal_matrix = new_cal_matrix + @property def state_labels(self): """return the state label ordering of the cal matrix""" @@ -75,11 +80,6 @@ def state_labels(self, new_state_labels): """set the state label ordering of the cal matrix""" self._state_labels = new_state_labels - @cal_matrix.setter - def cal_matrix(self, new_cal_matrix): - """Set cal_matrix.""" - self._cal_matrix = new_cal_matrix - def apply(self, raw_data, method="least_squares"): """Apply the calibration matrix to results. @@ -229,7 +229,7 @@ class TensoredFilter: since="0.24.0", additional_msg="For code migration guidelines, visit https://qisk.it/qi_migration.", ) - def __init__(self, cal_matrices: np.matrix, substate_labels_list: list, mit_pattern: list): + def __init__(self, cal_matrices: np.matrix, substate_labels_list: list[str], mit_pattern: list): """ Initialize a tensored measurement error mitigation filter using the cal_matrices from a tensored measurement calibration fitter. @@ -245,9 +245,9 @@ def __init__(self, cal_matrices: np.matrix, substate_labels_list: list, mit_patt """ self._cal_matrices = cal_matrices - self._qubit_list_sizes = [] - self._indices_list = [] - self._substate_labels_list = [] + self._qubit_list_sizes: List[int] = [] + self._indices_list: List[Dict[Any, Any]] = [] + self._substate_labels_list: List[str] = [] self.substate_labels_list = substate_labels_list self._mit_pattern = mit_pattern diff --git a/qiskit/utils/mitigation/circuits.py b/qiskit/utils/mitigation/circuits.py index 2fdeaa6372a6..b593f4865cf3 100644 --- a/qiskit/utils/mitigation/circuits.py +++ b/qiskit/utils/mitigation/circuits.py @@ -18,7 +18,7 @@ Measurement calibration circuits. To apply the measurement mitigation use the fitters to produce a filter. """ -from typing import List, Tuple, Union +from typing import List, Tuple, Union, Any, Optional, Collection from qiskit.utils.deprecation import deprecate_func @@ -45,11 +45,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: List[int] = None, - qr: Union[int, List["QuantumRegister"]] = None, - cr: Union[int, List["ClassicalRegister"]] = None, + qubit_list: Optional[List[int]] = None, + qr: Optional[Union[int, List[Any]]] = None, + cr: Optional[Union[int, List[Any]]] = None, circlabel: str = "", -) -> Tuple[List["QuantumCircuit"], List[str]]: +) -> Tuple[List[Any], List[str]]: """ Deprecated: Return a list of measurement calibration circuits for the full Hilbert space. @@ -126,11 +126,11 @@ def complete_meas_cal( additional_msg="For code migration guidelines, visit https://qisk.it/qi_migration.", ) def tensored_meas_cal( - mit_pattern: List[List[int]] = None, - qr: Union[int, List["QuantumRegister"]] = None, - cr: Union[int, List["ClassicalRegister"]] = None, + mit_pattern: Optional[List[List[int]]] = None, + qr: Optional[Union[int, Collection[Any]]] = None, + cr: Optional[Union[int, Collection[Any]]] = None, circlabel: str = "", -) -> Tuple[List["QuantumCircuit"], List[List[int]]]: +) -> Tuple[List[Any], List[List[int]]]: """ Deprecated: Return a list of calibration circuits @@ -166,7 +166,7 @@ def tensored_meas_cal( QiskitError: if a qubit appears more than once in `mit_pattern`. """ - # Runtime imports to avoid circular imports causeed by QuantumInstance + # Runtime imports to avoid circular imports caused by QuantumInstance # getting initialized by imported utils/__init__ which is imported # by qiskit.circuit from qiskit.circuit.quantumregister import QuantumRegister diff --git a/qiskit/utils/mitigation/fitters.py b/qiskit/utils/mitigation/fitters.py index 65357d5dc5b5..bb3ef7d0e95c 100644 --- a/qiskit/utils/mitigation/fitters.py +++ b/qiskit/utils/mitigation/fitters.py @@ -18,7 +18,7 @@ """ Measurement correction fitters. """ -from typing import List +from typing import List, Any, Dict, Optional, Sequence import copy import re @@ -43,7 +43,7 @@ def __init__( self, results, state_labels: List[str], - qubit_list: List[int] = None, + qubit_list: Optional[Sequence[int]] = None, circlabel: str = "", ): """ @@ -94,16 +94,16 @@ def state_labels(self): """Return state_labels.""" return self._tens_fitt.substate_labels_list[0] - @property - def qubit_list(self): - """Return list of qubits.""" - return self._qubit_list - @state_labels.setter def state_labels(self, new_state_labels): """Set state label.""" self._tens_fitt.substate_labels_list[0] = new_state_labels + @property + def qubit_list(self): + """Return list of qubits.""" + return self._qubit_list + @property def filter(self): """Return a measurement filter using the cal matrix.""" @@ -226,7 +226,7 @@ class TensoredMeasFitter: def __init__( self, results, - mit_pattern: List[List[int]], + mit_pattern: List[Sequence[int]], substate_labels_list: List[List[str]] = None, circlabel: str = "", ): @@ -263,14 +263,14 @@ def __init__( substate_labels_list """ - self._result_list = [] + self._result_list: List[Any] = [] self._cal_matrices = None self._circlabel = circlabel self._mit_pattern = mit_pattern self._qubit_list_sizes = [len(qubit_list) for qubit_list in mit_pattern] - self._indices_list = [] + self._indices_list: List[Dict[Any, Any]] = [] if substate_labels_list is None: self._substate_labels_list = [] for list_size in self._qubit_list_sizes: diff --git a/qiskit/utils/quantum_instance.py b/qiskit/utils/quantum_instance.py index a4bbb76e1b00..b803d32626b5 100644 --- a/qiskit/utils/quantum_instance.py +++ b/qiskit/utils/quantum_instance.py @@ -12,7 +12,7 @@ """Quantum Instance module""" -from typing import Optional, List, Union, Dict, Callable, Tuple +from typing import Optional, List, Union, Dict, Callable, Tuple, Any from enum import Enum import copy import logging @@ -251,7 +251,7 @@ def __init__( if isinstance(backend, Backend): if hasattr(backend, "options"): # should always be true for V1 - backend_shots = backend.options.get("shots", 1024) + backend_shots = backend.options.get("shots", 1024) # type: ignore[attr-defined] if shots != backend_shots: logger.info( "Overwriting the number of shots in the quantum instance with " @@ -324,7 +324,7 @@ def __init__( ) else: self._meas_error_mitigation_cls = measurement_error_mitigation_cls - self._meas_error_mitigation_fitters: Dict[str, Tuple[np.ndarray, float]] = {} + self._meas_error_mitigation_fitters: Dict[str, Tuple[Any, float]] = {} # TODO: support different fitting method in error mitigation? self._meas_error_mitigation_method = "least_squares" self._cals_matrix_refresh_period = cals_matrix_refresh_period diff --git a/qiskit/utils/units.py b/qiskit/utils/units.py index 76f300805c6c..e708f4caad22 100644 --- a/qiskit/utils/units.py +++ b/qiskit/utils/units.py @@ -19,7 +19,9 @@ from qiskit.circuit.parameterexpression import ParameterExpression -def apply_prefix(value: Union[float, ParameterExpression], unit: str) -> float: +def apply_prefix( + value: Union[float, ParameterExpression], unit: str +) -> Union[float, ParameterExpression]: """ Given a SI unit prefix and value, apply the prefix to convert to standard SI unit.