mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-07 20:54:28 +08:00
42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
import sys
|
|
from collections.abc import Callable
|
|
from typing import Any, Generic, TypeVar, final, overload
|
|
from typing_extensions import Self
|
|
|
|
if sys.version_info >= (3, 9):
|
|
from types import GenericAlias
|
|
|
|
_C = TypeVar("_C", bound=Callable[..., Any])
|
|
_T = TypeVar("_T")
|
|
|
|
@final
|
|
class CallableProxyType(Generic[_C]): # "weakcallableproxy"
|
|
def __eq__(self, value: object, /) -> bool: ...
|
|
def __getattr__(self, attr: str) -> Any: ...
|
|
__call__: _C
|
|
|
|
@final
|
|
class ProxyType(Generic[_T]): # "weakproxy"
|
|
def __eq__(self, value: object, /) -> bool: ...
|
|
def __getattr__(self, attr: str) -> Any: ...
|
|
|
|
class ReferenceType(Generic[_T]):
|
|
__callback__: Callable[[ReferenceType[_T]], Any]
|
|
def __new__(cls, o: _T, callback: Callable[[ReferenceType[_T]], Any] | None = ..., /) -> Self: ...
|
|
def __call__(self) -> _T | None: ...
|
|
def __eq__(self, value: object, /) -> bool: ...
|
|
def __hash__(self) -> int: ...
|
|
if sys.version_info >= (3, 9):
|
|
def __class_getitem__(cls, item: Any) -> GenericAlias: ...
|
|
|
|
ref = ReferenceType
|
|
|
|
def getweakrefcount(object: Any, /) -> int: ...
|
|
def getweakrefs(object: Any, /) -> list[Any]: ...
|
|
|
|
# Return CallableProxyType if object is callable, ProxyType otherwise
|
|
@overload
|
|
def proxy(object: _C, callback: Callable[[_C], Any] | None = None, /) -> CallableProxyType[_C]: ...
|
|
@overload
|
|
def proxy(object: _T, callback: Callable[[_T], Any] | None = None, /) -> Any: ...
|