Skip to content

Commit a7c7667

Browse files
Add better types for predicate parameter to inspect.getx functions (#9891)
Co-authored-by: Alex Waygood <[email protected]>
1 parent 557554f commit a7c7667

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

stdlib/inspect.pyi

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,12 +161,20 @@ TPFLAGS_IS_ABSTRACT: Literal[1048576]
161161

162162
modulesbyfile: dict[str, Any]
163163

164+
_GetMembersPredicateTypeGuard: TypeAlias = Callable[[Any], TypeGuard[_T]]
164165
_GetMembersPredicate: TypeAlias = Callable[[Any], bool]
166+
_GetMembersReturnTypeGuard: TypeAlias = list[tuple[str, _T]]
165167
_GetMembersReturn: TypeAlias = list[tuple[str, Any]]
166168

169+
@overload
170+
def getmembers(object: object, predicate: _GetMembersPredicateTypeGuard[_T]) -> _GetMembersReturnTypeGuard[_T]: ...
171+
@overload
167172
def getmembers(object: object, predicate: _GetMembersPredicate | None = None) -> _GetMembersReturn: ...
168173

169174
if sys.version_info >= (3, 11):
175+
@overload
176+
def getmembers_static(object: object, predicate: _GetMembersPredicateTypeGuard[_T]) -> _GetMembersReturnTypeGuard[_T]: ...
177+
@overload
170178
def getmembers_static(object: object, predicate: _GetMembersPredicate | None = None) -> _GetMembersReturn: ...
171179

172180
def getmodulename(path: str) -> str | None: ...

0 commit comments

Comments
 (0)