Skip to content

Commit

Permalink
Fix utils mypy errors
Browse files Browse the repository at this point in the history
  • Loading branch information
Randl committed May 23, 2023
1 parent e1056ee commit 08c3612
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 36 deletions.
4 changes: 2 additions & 2 deletions qiskit/utils/measurement_error_mitigation.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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 = []
Expand Down
20 changes: 10 additions & 10 deletions qiskit/utils/mitigation/_filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
"""

from typing import List
from typing import List, Dict, Any
from copy import deepcopy

import numpy as np
Expand Down Expand Up @@ -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"""
Expand All @@ -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.
Expand Down Expand Up @@ -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.
Expand All @@ -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

Expand Down
20 changes: 10 additions & 10 deletions qiskit/utils/mitigation/circuits.py
Original file line number Diff line number Diff line change
Expand Up @@ -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


Expand All @@ -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.
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
20 changes: 10 additions & 10 deletions qiskit/utils/mitigation/fitters.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"""
Measurement correction fitters.
"""
from typing import List
from typing import List, Any, Dict, Optional, Sequence
import copy
import re

Expand All @@ -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 = "",
):
"""
Expand Down Expand Up @@ -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."""
Expand Down Expand Up @@ -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 = "",
):
Expand Down Expand Up @@ -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:
Expand Down
6 changes: 3 additions & 3 deletions qiskit/utils/quantum_instance.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 "
Expand Down Expand Up @@ -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
Expand Down
4 changes: 3 additions & 1 deletion qiskit/utils/units.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down

0 comments on commit 08c3612

Please sign in to comment.