Remove types for __deprecated as ParamSpec not available on Py3.8

This commit is contained in:
mio
2025-02-15 20:50:20 +08:00
parent 7ec987e626
commit bf5e335269

View File

@@ -3,7 +3,7 @@ based on Nguyen Anh Quynnh's work
""" """
from __future__ import annotations from __future__ import annotations
from typing import TYPE_CHECKING, Any, Callable, Dict, Generic, Iterable, Iterator, Optional, Sequence, Tuple, Type, TypeVar, Union, ParamSpec from typing import TYPE_CHECKING, Any, Callable, Dict, Generic, Iterable, Iterator, Optional, Sequence, Tuple, Type, TypeVar, Union
import ctypes import ctypes
import functools import functools
@@ -636,14 +636,12 @@ class Uc(RegStateManager):
# https://stackoverflow.com/questions/2536307/decorators-in-the-python-standard-lib-deprecated-specifically # https://stackoverflow.com/questions/2536307/decorators-in-the-python-standard-lib-deprecated-specifically
@staticmethod @staticmethod
def __deprecated(msg: str): def __deprecated(msg: str):
__rT = TypeVar('rT') # return type def __deprecated_inner(func: Callable) -> Callable:
__pT = ParamSpec('pT') # parameters type
def __deprecated_inner(func: Callable[__pT, __rT]) -> Callable[__pT, __rT]:
"""Use this decorator to mark functions as deprecated. """Use this decorator to mark functions as deprecated.
Every time the decorated function runs, it will emit Every time the decorated function runs, it will emit
a "deprecation" warning.""" a "deprecation" warning."""
@functools.wraps(func) @functools.wraps(func)
def new_func(*args: __pT.args, **kwargs: __pT.kwargs): def new_func(*args, **kwargs):
warnings.simplefilter('always', DeprecationWarning) # turn off filter warnings.simplefilter('always', DeprecationWarning) # turn off filter
warnings.warn("Call to a deprecated function {}. {}".format(func.__name__, msg), warnings.warn("Call to a deprecated function {}. {}".format(func.__name__, msg),
category=DeprecationWarning, category=DeprecationWarning,