From fddc78293ab3c76c5c0e29e9a04184b71a896f28 Mon Sep 17 00:00:00 2001 From: Christopher Schramm Date: Thu, 13 Aug 2020 17:35:36 +0200 Subject: [PATCH] Extend function pointer type returned by CDLL (#4444) CDLL.__getattr__ and __getitem__ return function pointers that have a __name__ attribute set, so "CDLL(lib).fun.__name__" is valid code but currently not covered. --- stdlib/2and3/ctypes/__init__.pyi | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/stdlib/2and3/ctypes/__init__.pyi b/stdlib/2and3/ctypes/__init__.pyi index 40646f6db..652db3f6f 100644 --- a/stdlib/2and3/ctypes/__init__.pyi +++ b/stdlib/2and3/ctypes/__init__.pyi @@ -44,8 +44,8 @@ class CDLL(object): use_last_error: bool = ..., winmode: Optional[int] = ..., ) -> None: ... - def __getattr__(self, name: str) -> _FuncPointer: ... - def __getitem__(self, name: str) -> _FuncPointer: ... + def __getattr__(self, name: str) -> _NamedFuncPointer: ... + def __getitem__(self, name: str) -> _NamedFuncPointer: ... if sys.platform == "win32": class OleDLL(CDLL): ... @@ -115,6 +115,9 @@ class _FuncPointer(_PointerLike, _CData): def __init__(self, vtlb_index: int, name: str, paramflags: Tuple[_PF, ...] = ..., iid: pointer[c_int] = ...) -> None: ... def __call__(self, *args: Any, **kwargs: Any) -> Any: ... +class _NamedFuncPointer(_FuncPointer): + __name__: str + class ArgumentError(Exception): ... def CFUNCTYPE(