functools: Add cache_parameters method to _lru_cache_wrapper (#10076)

The docs says that `cache_parameters()` function was added in 3.9: https://docs.python.org/3/library/functools.html#functools.lru_cache
Source: af53046995/Lib/functools.py (L512)
But, `typeshed` does not have it.
This commit is contained in:
Nikita Sobolev
2023-04-24 17:29:54 +03:00
committed by GitHub
parent 2bfb6d8212
commit 1d9f35369d
4 changed files with 12 additions and 1 deletions

View File

@@ -3,7 +3,7 @@ import types
from _typeshed import SupportsAllComparisons, SupportsItems
from collections.abc import Callable, Hashable, Iterable, Sequence, Sized
from typing import Any, Generic, NamedTuple, TypeVar, overload
from typing_extensions import Literal, ParamSpec, Self, TypeAlias, final
from typing_extensions import Literal, ParamSpec, Self, TypeAlias, TypedDict, final
if sys.version_info >= (3, 9):
from types import GenericAlias
@@ -46,12 +46,20 @@ class _CacheInfo(NamedTuple):
maxsize: int | None
currsize: int
if sys.version_info >= (3, 9):
class _CacheParameters(TypedDict):
maxsize: int
typed: bool
@final
class _lru_cache_wrapper(Generic[_T]):
__wrapped__: Callable[..., _T]
def __call__(self, *args: Hashable, **kwargs: Hashable) -> _T: ...
def cache_info(self) -> _CacheInfo: ...
def cache_clear(self) -> None: ...
if sys.version_info >= (3, 9):
def cache_parameters(self) -> _CacheParameters: ...
def __copy__(self) -> _lru_cache_wrapper[_T]: ...
def __deepcopy__(self, __memo: Any) -> _lru_cache_wrapper[_T]: ...

View File

@@ -17,6 +17,7 @@ contextlib.AbstractAsyncContextManager.__class_getitem__
contextlib.AbstractContextManager.__class_getitem__
fractions.Fraction.__new__ # overload is too complicated for stubtest to resolve
functools.cached_property.__set__ # Stub is a white lie; see comments in the stub
functools._lru_cache_wrapper.cache_parameters # Cannot be detected statically
gettext.install
gettext.translation
hmac.new # Stub is a white lie; see comments in the stub

View File

@@ -21,6 +21,7 @@ enum.auto.value
fractions.Fraction.__new__ # overload is too complicated for stubtest to resolve
ftplib.FTP.trust_server_pasv_ipv4_address
functools.cached_property.__set__ # Stub is a white lie; see comments in the stub
functools._lru_cache_wrapper.cache_parameters # Cannot be detected statically
ipaddress.IPv4Interface.hostmask
ipaddress.IPv6Interface.hostmask
ipaddress._BaseNetwork.broadcast_address

View File

@@ -37,6 +37,7 @@ contextlib.AbstractContextManager.__class_getitem__
distutils.command.bdist_wininst # see #6523
fractions.Fraction.__new__ # overload is too complicated for stubtest to resolve
functools.cached_property.__set__ # Stub is a white lie; see comments in the stub
functools._lru_cache_wrapper.cache_parameters # Cannot be detected statically
gettext.install
gettext.translation
hmac.new # Stub is a white lie; see comments in the stub