Fix code style issues with Black
This commit is contained in:
@@ -44,8 +44,8 @@ from .colour import Colour
|
||||
from .object import Object
|
||||
|
||||
__all__ = (
|
||||
'VoiceState',
|
||||
'Member',
|
||||
"VoiceState",
|
||||
"Member",
|
||||
)
|
||||
|
||||
if TYPE_CHECKING:
|
||||
@@ -113,52 +113,54 @@ class VoiceState:
|
||||
"""
|
||||
|
||||
__slots__ = (
|
||||
'session_id',
|
||||
'deaf',
|
||||
'mute',
|
||||
'self_mute',
|
||||
'self_stream',
|
||||
'self_video',
|
||||
'self_deaf',
|
||||
'afk',
|
||||
'channel',
|
||||
'requested_to_speak_at',
|
||||
'suppress',
|
||||
"session_id",
|
||||
"deaf",
|
||||
"mute",
|
||||
"self_mute",
|
||||
"self_stream",
|
||||
"self_video",
|
||||
"self_deaf",
|
||||
"afk",
|
||||
"channel",
|
||||
"requested_to_speak_at",
|
||||
"suppress",
|
||||
)
|
||||
|
||||
def __init__(self, *, data: VoiceStatePayload, channel: Optional[VocalGuildChannel] = None):
|
||||
self.session_id: str = data.get('session_id')
|
||||
self.session_id: str = data.get("session_id")
|
||||
self._update(data, channel)
|
||||
|
||||
def _update(self, data: VoiceStatePayload, channel: Optional[VocalGuildChannel]):
|
||||
self.self_mute: bool = data.get('self_mute', False)
|
||||
self.self_deaf: bool = data.get('self_deaf', False)
|
||||
self.self_stream: bool = data.get('self_stream', False)
|
||||
self.self_video: bool = data.get('self_video', False)
|
||||
self.afk: bool = data.get('suppress', False)
|
||||
self.mute: bool = data.get('mute', False)
|
||||
self.deaf: bool = data.get('deaf', False)
|
||||
self.suppress: bool = data.get('suppress', False)
|
||||
self.requested_to_speak_at: Optional[datetime.datetime] = utils.parse_time(data.get('request_to_speak_timestamp'))
|
||||
self.self_mute: bool = data.get("self_mute", False)
|
||||
self.self_deaf: bool = data.get("self_deaf", False)
|
||||
self.self_stream: bool = data.get("self_stream", False)
|
||||
self.self_video: bool = data.get("self_video", False)
|
||||
self.afk: bool = data.get("suppress", False)
|
||||
self.mute: bool = data.get("mute", False)
|
||||
self.deaf: bool = data.get("deaf", False)
|
||||
self.suppress: bool = data.get("suppress", False)
|
||||
self.requested_to_speak_at: Optional[datetime.datetime] = utils.parse_time(
|
||||
data.get("request_to_speak_timestamp")
|
||||
)
|
||||
self.channel: Optional[VocalGuildChannel] = channel
|
||||
|
||||
def __repr__(self) -> str:
|
||||
attrs = [
|
||||
('self_mute', self.self_mute),
|
||||
('self_deaf', self.self_deaf),
|
||||
('self_stream', self.self_stream),
|
||||
('suppress', self.suppress),
|
||||
('requested_to_speak_at', self.requested_to_speak_at),
|
||||
('channel', self.channel),
|
||||
("self_mute", self.self_mute),
|
||||
("self_deaf", self.self_deaf),
|
||||
("self_stream", self.self_stream),
|
||||
("suppress", self.suppress),
|
||||
("requested_to_speak_at", self.requested_to_speak_at),
|
||||
("channel", self.channel),
|
||||
]
|
||||
inner = ' '.join('%s=%r' % t for t in attrs)
|
||||
return f'<{self.__class__.__name__} {inner}>'
|
||||
inner = " ".join("%s=%r" % t for t in attrs)
|
||||
return f"<{self.__class__.__name__} {inner}>"
|
||||
|
||||
|
||||
def flatten_user(cls):
|
||||
for attr, value in itertools.chain(BaseUser.__dict__.items(), User.__dict__.items()):
|
||||
# ignore private/special methods
|
||||
if attr.startswith('_'):
|
||||
if attr.startswith("_"):
|
||||
continue
|
||||
|
||||
# don't override what we already have
|
||||
@@ -167,9 +169,9 @@ def flatten_user(cls):
|
||||
|
||||
# if it's a slotted attribute or a property, redirect it
|
||||
# slotted members are implemented as member_descriptors in Type.__dict__
|
||||
if not hasattr(value, '__annotations__'):
|
||||
getter = attrgetter('_user.' + attr)
|
||||
setattr(cls, attr, property(getter, doc=f'Equivalent to :attr:`User.{attr}`'))
|
||||
if not hasattr(value, "__annotations__"):
|
||||
getter = attrgetter("_user." + attr)
|
||||
setattr(cls, attr, property(getter, doc=f"Equivalent to :attr:`User.{attr}`"))
|
||||
else:
|
||||
# Technically, this can also use attrgetter
|
||||
# However I'm not sure how I feel about "functions" returning properties
|
||||
@@ -197,7 +199,7 @@ def flatten_user(cls):
|
||||
return cls
|
||||
|
||||
|
||||
M = TypeVar('M', bound='Member')
|
||||
M = TypeVar("M", bound="Member")
|
||||
|
||||
|
||||
@flatten_user
|
||||
@@ -258,17 +260,17 @@ class Member(discord.abc.Messageable, _UserTag):
|
||||
"""
|
||||
|
||||
__slots__ = (
|
||||
'_roles',
|
||||
'joined_at',
|
||||
'premium_since',
|
||||
'activities',
|
||||
'guild',
|
||||
'pending',
|
||||
'nick',
|
||||
'_client_status',
|
||||
'_user',
|
||||
'_state',
|
||||
'_avatar',
|
||||
"_roles",
|
||||
"joined_at",
|
||||
"premium_since",
|
||||
"activities",
|
||||
"guild",
|
||||
"pending",
|
||||
"nick",
|
||||
"_client_status",
|
||||
"_user",
|
||||
"_state",
|
||||
"_avatar",
|
||||
)
|
||||
|
||||
if TYPE_CHECKING:
|
||||
@@ -290,16 +292,16 @@ class Member(discord.abc.Messageable, _UserTag):
|
||||
|
||||
def __init__(self, *, data: MemberWithUserPayload, guild: Guild, state: ConnectionState):
|
||||
self._state: ConnectionState = state
|
||||
self._user: User = state.store_user(data['user'])
|
||||
self._user: User = state.store_user(data["user"])
|
||||
self.guild: Guild = guild
|
||||
self.joined_at: Optional[datetime.datetime] = utils.parse_time(data.get('joined_at'))
|
||||
self.premium_since: Optional[datetime.datetime] = utils.parse_time(data.get('premium_since'))
|
||||
self._roles: utils.SnowflakeList = utils.SnowflakeList(map(int, data['roles']))
|
||||
self._client_status: Dict[Optional[str], str] = {None: 'offline'}
|
||||
self.joined_at: Optional[datetime.datetime] = utils.parse_time(data.get("joined_at"))
|
||||
self.premium_since: Optional[datetime.datetime] = utils.parse_time(data.get("premium_since"))
|
||||
self._roles: utils.SnowflakeList = utils.SnowflakeList(map(int, data["roles"]))
|
||||
self._client_status: Dict[Optional[str], str] = {None: "offline"}
|
||||
self.activities: Tuple[ActivityTypes, ...] = tuple()
|
||||
self.nick: Optional[str] = data.get('nick', None)
|
||||
self.pending: bool = data.get('pending', False)
|
||||
self._avatar: Optional[str] = data.get('avatar')
|
||||
self.nick: Optional[str] = data.get("nick", None)
|
||||
self.pending: bool = data.get("pending", False)
|
||||
self._avatar: Optional[str] = data.get("avatar")
|
||||
|
||||
def __str__(self) -> str:
|
||||
return str(self._user)
|
||||
@@ -309,8 +311,8 @@ class Member(discord.abc.Messageable, _UserTag):
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return (
|
||||
f'<Member id={self._user.id} name={self._user.name!r} discriminator={self._user.discriminator!r}'
|
||||
f' bot={self._user.bot} nick={self.nick!r} guild={self.guild!r}>'
|
||||
f"<Member id={self._user.id} name={self._user.name!r} discriminator={self._user.discriminator!r}"
|
||||
f" bot={self._user.bot} nick={self.nick!r} guild={self.guild!r}>"
|
||||
)
|
||||
|
||||
def __eq__(self, other: Any) -> bool:
|
||||
@@ -325,25 +327,27 @@ class Member(discord.abc.Messageable, _UserTag):
|
||||
@classmethod
|
||||
def _from_message(cls: Type[M], *, message: Message, data: MemberPayload) -> M:
|
||||
author = message.author
|
||||
data['user'] = author._to_minimal_user_json() # type: ignore
|
||||
data["user"] = author._to_minimal_user_json() # type: ignore
|
||||
return cls(data=data, guild=message.guild, state=message._state) # type: ignore
|
||||
|
||||
def _update_from_message(self, data: MemberPayload) -> None:
|
||||
self.joined_at = utils.parse_time(data.get('joined_at'))
|
||||
self.premium_since = utils.parse_time(data.get('premium_since'))
|
||||
self._roles = utils.SnowflakeList(map(int, data['roles']))
|
||||
self.nick = data.get('nick', None)
|
||||
self.pending = data.get('pending', False)
|
||||
self.joined_at = utils.parse_time(data.get("joined_at"))
|
||||
self.premium_since = utils.parse_time(data.get("premium_since"))
|
||||
self._roles = utils.SnowflakeList(map(int, data["roles"]))
|
||||
self.nick = data.get("nick", None)
|
||||
self.pending = data.get("pending", False)
|
||||
|
||||
@classmethod
|
||||
def _try_upgrade(cls: Type[M], *, data: UserWithMemberPayload, guild: Guild, state: ConnectionState) -> Union[User, M]:
|
||||
def _try_upgrade(
|
||||
cls: Type[M], *, data: UserWithMemberPayload, guild: Guild, state: ConnectionState
|
||||
) -> Union[User, M]:
|
||||
# A User object with a 'member' key
|
||||
try:
|
||||
member_data = data.pop('member')
|
||||
member_data = data.pop("member")
|
||||
except KeyError:
|
||||
return state.create_user(data)
|
||||
else:
|
||||
member_data['user'] = data # type: ignore
|
||||
member_data["user"] = data # type: ignore
|
||||
return cls(data=member_data, guild=guild, state=state) # type: ignore
|
||||
|
||||
@classmethod
|
||||
@@ -374,25 +378,25 @@ class Member(discord.abc.Messageable, _UserTag):
|
||||
# the nickname change is optional,
|
||||
# if it isn't in the payload then it didn't change
|
||||
try:
|
||||
self.nick = data['nick']
|
||||
self.nick = data["nick"]
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
try:
|
||||
self.pending = data['pending']
|
||||
self.pending = data["pending"]
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
self.premium_since = utils.parse_time(data.get('premium_since'))
|
||||
self._roles = utils.SnowflakeList(map(int, data['roles']))
|
||||
self._avatar = data.get('avatar')
|
||||
self.premium_since = utils.parse_time(data.get("premium_since"))
|
||||
self._roles = utils.SnowflakeList(map(int, data["roles"]))
|
||||
self._avatar = data.get("avatar")
|
||||
|
||||
def _presence_update(self, data: PartialPresenceUpdate, user: UserPayload) -> Optional[Tuple[User, User]]:
|
||||
self.activities = tuple(map(create_activity, data['activities']))
|
||||
self.activities = tuple(map(create_activity, data["activities"]))
|
||||
self._client_status = {
|
||||
sys.intern(key): sys.intern(value) for key, value in data.get('client_status', {}).items() # type: ignore
|
||||
sys.intern(key): sys.intern(value) for key, value in data.get("client_status", {}).items() # type: ignore
|
||||
}
|
||||
self._client_status[None] = sys.intern(data['status'])
|
||||
self._client_status[None] = sys.intern(data["status"])
|
||||
|
||||
if len(user) > 1:
|
||||
return self._update_inner_user(user)
|
||||
@@ -402,7 +406,7 @@ class Member(discord.abc.Messageable, _UserTag):
|
||||
u = self._user
|
||||
original = (u.name, u._avatar, u.discriminator, u._public_flags)
|
||||
# These keys seem to always be available
|
||||
modified = (user['username'], user['avatar'], user['discriminator'], user.get('public_flags', 0))
|
||||
modified = (user["username"], user["avatar"], user["discriminator"], user.get("public_flags", 0))
|
||||
if original != modified:
|
||||
to_return = User._copy(self._user)
|
||||
u.name, u._avatar, u.discriminator, u._public_flags = modified
|
||||
@@ -430,21 +434,21 @@ class Member(discord.abc.Messageable, _UserTag):
|
||||
@property
|
||||
def mobile_status(self) -> Status:
|
||||
""":class:`Status`: The member's status on a mobile device, if applicable."""
|
||||
return try_enum(Status, self._client_status.get('mobile', 'offline'))
|
||||
return try_enum(Status, self._client_status.get("mobile", "offline"))
|
||||
|
||||
@property
|
||||
def desktop_status(self) -> Status:
|
||||
""":class:`Status`: The member's status on the desktop client, if applicable."""
|
||||
return try_enum(Status, self._client_status.get('desktop', 'offline'))
|
||||
return try_enum(Status, self._client_status.get("desktop", "offline"))
|
||||
|
||||
@property
|
||||
def web_status(self) -> Status:
|
||||
""":class:`Status`: The member's status on the web client, if applicable."""
|
||||
return try_enum(Status, self._client_status.get('web', 'offline'))
|
||||
return try_enum(Status, self._client_status.get("web", "offline"))
|
||||
|
||||
def is_on_mobile(self) -> bool:
|
||||
""":class:`bool`: A helper function that determines if a member is active on a mobile device."""
|
||||
return 'mobile' in self._client_status
|
||||
return "mobile" in self._client_status
|
||||
|
||||
@property
|
||||
def colour(self) -> Colour:
|
||||
@@ -497,8 +501,8 @@ class Member(discord.abc.Messageable, _UserTag):
|
||||
def mention(self) -> str:
|
||||
""":class:`str`: Returns a string that allows you to mention the member."""
|
||||
if self.nick:
|
||||
return f'<@!{self._user.id}>'
|
||||
return f'<@{self._user.id}>'
|
||||
return f"<@!{self._user.id}>"
|
||||
return f"<@{self._user.id}>"
|
||||
|
||||
@property
|
||||
def display_name(self) -> str:
|
||||
@@ -720,39 +724,39 @@ class Member(discord.abc.Messageable, _UserTag):
|
||||
payload: Dict[str, Any] = {}
|
||||
|
||||
if nick is not MISSING:
|
||||
nick = nick or ''
|
||||
nick = nick or ""
|
||||
if me:
|
||||
await http.change_my_nickname(guild_id, nick, reason=reason)
|
||||
else:
|
||||
payload['nick'] = nick
|
||||
payload["nick"] = nick
|
||||
|
||||
if deafen is not MISSING:
|
||||
payload['deaf'] = deafen
|
||||
payload["deaf"] = deafen
|
||||
|
||||
if mute is not MISSING:
|
||||
payload['mute'] = mute
|
||||
payload["mute"] = mute
|
||||
|
||||
if suppress is not MISSING:
|
||||
voice_state_payload = {
|
||||
'channel_id': self.voice.channel.id,
|
||||
'suppress': suppress,
|
||||
"channel_id": self.voice.channel.id,
|
||||
"suppress": suppress,
|
||||
}
|
||||
|
||||
if suppress or self.bot:
|
||||
voice_state_payload['request_to_speak_timestamp'] = None
|
||||
voice_state_payload["request_to_speak_timestamp"] = None
|
||||
|
||||
if me:
|
||||
await http.edit_my_voice_state(guild_id, voice_state_payload)
|
||||
else:
|
||||
if not suppress:
|
||||
voice_state_payload['request_to_speak_timestamp'] = datetime.datetime.utcnow().isoformat()
|
||||
voice_state_payload["request_to_speak_timestamp"] = datetime.datetime.utcnow().isoformat()
|
||||
await http.edit_voice_state(guild_id, self.id, voice_state_payload)
|
||||
|
||||
if voice_channel is not MISSING:
|
||||
payload['channel_id'] = voice_channel and voice_channel.id
|
||||
payload["channel_id"] = voice_channel and voice_channel.id
|
||||
|
||||
if roles is not MISSING:
|
||||
payload['roles'] = tuple(r.id for r in roles)
|
||||
payload["roles"] = tuple(r.id for r in roles)
|
||||
|
||||
if payload:
|
||||
data = await http.edit_member(guild_id, self.id, reason=reason, **payload)
|
||||
@@ -780,12 +784,12 @@ class Member(discord.abc.Messageable, _UserTag):
|
||||
The operation failed.
|
||||
"""
|
||||
payload = {
|
||||
'channel_id': self.voice.channel.id,
|
||||
'request_to_speak_timestamp': datetime.datetime.utcnow().isoformat(),
|
||||
"channel_id": self.voice.channel.id,
|
||||
"request_to_speak_timestamp": datetime.datetime.utcnow().isoformat(),
|
||||
}
|
||||
|
||||
if self._state.self_id != self.id:
|
||||
payload['suppress'] = False
|
||||
payload["suppress"] = False
|
||||
await self._state.http.edit_voice_state(self.guild.id, self.id, payload)
|
||||
else:
|
||||
await self._state.http.edit_my_voice_state(self.guild.id, payload)
|
||||
|
||||
Reference in New Issue
Block a user