From 6e80e89e18da2691a86d4e2050db2e5479043b16 Mon Sep 17 00:00:00 2001 From: Evgenii Zheltonozhskii Date: Mon, 25 Sep 2023 17:23:50 +0300 Subject: [PATCH] Fix utils mypy errors (#8264) --- qiskit/utils/deprecation.py | 33 ++++++++++++++++++--------------- qiskit/utils/units.py | 7 +++---- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/qiskit/utils/deprecation.py b/qiskit/utils/deprecation.py index 92cd4d44b863..57fecfd9a449 100644 --- a/qiskit/utils/deprecation.py +++ b/qiskit/utils/deprecation.py @@ -17,13 +17,14 @@ import functools import inspect import warnings -from typing import Any, Callable, Dict, Optional, Type, Tuple, Union +from collections.abc import Callable +from typing import Any, Type def deprecate_func( *, since: str, - additional_msg: Optional[str] = None, + additional_msg: str | None = None, pending: bool = False, package_name: str = "qiskit-terra", removal_timeline: str = "no earlier than 3 months after the release date", @@ -104,12 +105,12 @@ def deprecate_arg( name: str, *, since: str, - additional_msg: Optional[str] = None, - deprecation_description: Optional[str] = None, + additional_msg: str | None = None, + deprecation_description: str | None = None, pending: bool = False, package_name: str = "qiskit-terra", - new_alias: Optional[str] = None, - predicate: Optional[Callable[[Any], bool]] = None, + new_alias: str | None = None, + predicate: Callable[[Any], bool] | None = None, removal_timeline: str = "no earlier than 3 months after the release date", ): """Decorator to indicate an argument has been deprecated in some way. @@ -204,10 +205,10 @@ def wrapper(*args, **kwargs): def deprecate_arguments( - kwarg_map: Dict[str, Optional[str]], + kwarg_map: dict[str, str | None], category: Type[Warning] = DeprecationWarning, *, - since: Optional[str] = None, + since: str | None = None, ): """Deprecated. Instead, use `@deprecate_arg`. @@ -280,7 +281,7 @@ def deprecate_function( stacklevel: int = 2, category: Type[Warning] = DeprecationWarning, *, - since: Optional[str] = None, + since: str | None = None, ): """Deprecated. Instead, use `@deprecate_func`. @@ -313,15 +314,15 @@ def wrapper(*args, **kwargs): def _maybe_warn_and_rename_kwarg( args: tuple[Any, ...], - kwargs: Dict[str, Any], + kwargs: dict[str, Any], *, func_name: str, original_func_co_varnames: tuple[str, ...], old_arg_name: str, - new_alias: Optional[str], + new_alias: str | None, warning_msg: str, category: Type[Warning], - predicate: Optional[Callable[[Any], bool]], + predicate: Callable[[Any], bool] | None, ) -> None: # In Python 3.10+, we should set `zip(strict=False)` (the default). That is, we want to # stop iterating once `args` is done, since some args may have not been explicitly passed as @@ -353,9 +354,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: @@ -412,7 +415,7 @@ def _write_deprecation_msg( def add_deprecation_to_docstring( - func: Callable, msg: str, *, since: Optional[str], pending: bool + func: Callable, msg: str, *, since: str | None, pending: bool ) -> None: """Dynamically insert the deprecation message into ``func``'s docstring. diff --git a/qiskit/utils/units.py b/qiskit/utils/units.py index 76f300805c6c..76bd9ff77145 100644 --- a/qiskit/utils/units.py +++ b/qiskit/utils/units.py @@ -11,15 +11,14 @@ # that they have been altered from the originals. """SI unit utilities""" - -from typing import Tuple, Optional, Union +from __future__ import annotations import numpy as np from qiskit.circuit.parameterexpression import ParameterExpression -def apply_prefix(value: Union[float, ParameterExpression], unit: str) -> float: +def apply_prefix(value: float | ParameterExpression, unit: str) -> float | ParameterExpression: """ Given a SI unit prefix and value, apply the prefix to convert to standard SI unit. @@ -69,7 +68,7 @@ def apply_prefix(value: Union[float, ParameterExpression], unit: str) -> float: return value * pow(10, pow10) -def detach_prefix(value: float, decimal: Optional[int] = None) -> Tuple[float, str]: +def detach_prefix(value: float, decimal: int | None = None) -> tuple[float, str]: """ Given a SI unit value, find the most suitable prefix to scale the value.