From ce3853a38d31ff3b4d53ec4bb72ec68935a79bf3 Mon Sep 17 00:00:00 2001 From: Stocker <44980366+StockerMC@users.noreply.github.com> Date: Mon, 25 Jul 2022 21:18:52 -0400 Subject: [PATCH] Use a TypeVar for flatten_user to workaround Pyright bug --- discord/member.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/discord/member.py b/discord/member.py index 821cb3949..e740ddc72 100644 --- a/discord/member.py +++ b/discord/member.py @@ -28,7 +28,7 @@ import datetime import inspect import itertools from operator import attrgetter -from typing import Any, Awaitable, Callable, Collection, Dict, List, Optional, TYPE_CHECKING, Tuple, Union, Type +from typing import Any, Awaitable, Callable, Collection, Dict, List, Optional, TYPE_CHECKING, Tuple, TypeVar, Union import discord.abc @@ -47,6 +47,8 @@ __all__ = ( 'Member', ) +T = TypeVar('T', bound=type) + if TYPE_CHECKING: from typing_extensions import Self @@ -170,7 +172,7 @@ class VoiceState: return f'<{self.__class__.__name__} {inner}>' -def flatten_user(cls: Any) -> Type[Member]: +def flatten_user(cls: T) -> T: for attr, value in itertools.chain(BaseUser.__dict__.items(), User.__dict__.items()): # Ignore private/special methods if attr.startswith('_'):