mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
new: better typings for get_chat_administrators
This commit is contained in:
parent
6d3340b490
commit
49be45fd3a
3 changed files with 12 additions and 7 deletions
|
|
@ -2129,7 +2129,8 @@ class Bot(BaseBot, DataMixin, ContextInstanceMixin):
|
|||
return types.Chat(**result)
|
||||
|
||||
async def get_chat_administrators(self, chat_id: typing.Union[base.Integer, base.String]
|
||||
) -> typing.List[types.ChatMember]:
|
||||
) -> typing.List[typing.Union[types.ChatMemberOwner, types.ChatMemberAdministrator]]:
|
||||
|
||||
"""
|
||||
Use this method to get a list of administrators in a chat.
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import typing
|
|||
from . import base, fields
|
||||
from .chat_invite_link import ChatInviteLink
|
||||
from .chat_location import ChatLocation
|
||||
from .chat_member import ChatMember
|
||||
from .chat_member import ChatMember, ChatMemberAdministrator, ChatMemberOwner
|
||||
from .chat_permissions import ChatPermissions
|
||||
from .chat_photo import ChatPhoto
|
||||
from .input_file import InputFile
|
||||
|
|
@ -470,7 +470,7 @@ class Chat(base.TelegramObject):
|
|||
"""
|
||||
return await self.bot.leave_chat(self.id)
|
||||
|
||||
async def get_administrators(self) -> typing.List[ChatMember]:
|
||||
async def get_administrators(self) -> typing.List[typing.Union[ChatMemberOwner, ChatMemberAdministrator]]:
|
||||
"""
|
||||
Use this method to get a list of administrators in a chat.
|
||||
|
||||
|
|
@ -480,7 +480,7 @@ class Chat(base.TelegramObject):
|
|||
chat administrators except other bots.
|
||||
If the chat is a group or a supergroup and no administrators were appointed,
|
||||
only the creator will be returned.
|
||||
:rtype: :obj:`typing.List[types.ChatMember]`
|
||||
:rtype: :obj:`typing.List[typing.Union[types.ChatMemberOwner, types.ChatMemberAdministrator]]`
|
||||
"""
|
||||
return await self.bot.get_chat_administrators(self.id)
|
||||
|
||||
|
|
|
|||
|
|
@ -69,7 +69,9 @@ class ChatMember(base.TelegramObject):
|
|||
return self.user.id
|
||||
|
||||
@classmethod
|
||||
def resolve(cls, **kwargs) -> "ChatMember":
|
||||
def resolve(cls, **kwargs) -> typing.Union["ChatMemberOwner", "ChatMemberAdministrator",
|
||||
"ChatMemberMember", "ChatMemberRestricted",
|
||||
"ChatMemberLeft", "ChatMemberBanned"]:
|
||||
status = kwargs.get("status")
|
||||
mapping = {
|
||||
ChatMemberStatus.OWNER: ChatMemberOwner,
|
||||
|
|
@ -89,8 +91,10 @@ class ChatMember(base.TelegramObject):
|
|||
def to_object(cls,
|
||||
data: typing.Dict[str, typing.Any],
|
||||
conf: typing.Dict[str, typing.Any] = None
|
||||
) -> "ChatMember":
|
||||
return cls.resolve(**data)
|
||||
) -> typing.Union["ChatMemberOwner", "ChatMemberAdministrator",
|
||||
"ChatMemberMember", "ChatMemberRestricted",
|
||||
"ChatMemberLeft", "ChatMemberBanned"]:
|
||||
return cls.resolve(conf=conf, **data)
|
||||
|
||||
def is_chat_creator(self) -> bool:
|
||||
return ChatMemberStatus.is_chat_creator(self.status)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue