Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/DEVELOPER_CERTIFICATE_OF_ORIGIN.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Developer Certificate of Origin (DCO)
# Developer Certificate of Origin (DCO)
```
Version 1.1

Expand Down Expand Up @@ -33,4 +33,4 @@ By making a contribution to this project, I certify that:
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
```
```
2 changes: 1 addition & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
directory: "/"
schedule:
interval: "daily"
25 changes: 25 additions & 0 deletions .github/workflows/lint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Lint

on: [push, pull_request]

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.9]

steps:
- uses: actions/checkout@v2

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade pre-commit
- name: Lint
run: pre-commit run --all-files --show-diff-on-failure
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,4 @@ build/
test.py
build/
node_modules/*
test.py
test.py
2 changes: 2 additions & 0 deletions .isort.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[settings]
profile = black
18 changes: 18 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.1.0
hooks:
- id: check-yaml
- repo: https://github.com/psf/black
rev: 22.1.0
hooks:
- id: black
- repo: https://github.com/ikamensh/flynt/
rev: '0.76'
hooks:
- id: flynt
- repo: https://github.com/pycqa/isort
rev: 5.10.1
hooks:
- id: isort
name: isort (python)
2 changes: 1 addition & 1 deletion .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ enable=bad-indentation,line-too-long

indent-string=' '

max-line-length=120
max-line-length=88
6 changes: 3 additions & 3 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -95,16 +95,16 @@ Quick Example
import discord

bot = discord.Bot()

@bot.slash_command()
async def hello(ctx, name: str = None):
name = name or ctx.author.name
await ctx.respond(f"Hello {name}!")

@bot.user_command(name="Say Hello")
async def hi(ctx, user):
await ctx.respond(f"{ctx.author.mention} says hello to {user.name}!")

bot.run("token")

Traditional Commands Example
Expand Down
8 changes: 2 additions & 6 deletions discord/abc.py
Original file line number Diff line number Diff line change
Expand Up @@ -1013,24 +1013,20 @@ async def move(self, **kwargs) -> None:

bucket = self._sorting_bucket
parent_id = kwargs.get("category", MISSING)
# fmt: off
channels: List[GuildChannel]
if parent_id not in (MISSING, None):
parent_id = parent_id.id
channels = [
ch
for ch in self.guild.channels
if ch._sorting_bucket == bucket
and ch.category_id == parent_id
if ch._sorting_bucket == bucket and ch.category_id == parent_id
]
else:
channels = [
ch
for ch in self.guild.channels
if ch._sorting_bucket == bucket
and ch.category_id == self.category_id
if ch._sorting_bucket == bucket and ch.category_id == self.category_id
]
# fmt: on

channels.sort(key=lambda c: (c.position, c.id))

Expand Down
18 changes: 7 additions & 11 deletions discord/activity.py
Original file line number Diff line number Diff line change
Expand Up @@ -421,13 +421,11 @@ def to_dict(self) -> Dict[str, Any]:
if self._end:
timestamps["end"] = self._end

# fmt: off
return {
'type': ActivityType.playing.value,
'name': str(self.name),
'timestamps': timestamps
"type": ActivityType.playing.value,
"name": str(self.name),
"timestamps": timestamps,
}
# fmt: on

def __eq__(self, other: Any) -> bool:
return isinstance(other, Game) and other.name == self.name
Expand Down Expand Up @@ -525,14 +523,12 @@ def twitch_name(self):
return name[7:] if name[:7] == "twitch:" else None

def to_dict(self) -> Dict[str, Any]:
# fmt: off
ret: Dict[str, Any] = {
'type': ActivityType.streaming.value,
'name': str(self.name),
'url': str(self.url),
'assets': self.assets
"type": ActivityType.streaming.value,
"name": str(self.name),
"url": str(self.url),
"assets": self.assets,
}
# fmt: on
if self.details:
ret["details"] = self.details
return ret
Expand Down
83 changes: 45 additions & 38 deletions discord/audit_logs.py
Original file line number Diff line number Diff line change
Expand Up @@ -203,43 +203,50 @@ def __setattr__(self, key: str, value: Any) -> Any:


class AuditLogChanges:
# fmt: off
TRANSFORMERS: ClassVar[Dict[str, Tuple[Optional[str], Optional[Transformer]]]] = {
'verification_level': (None, _enum_transformer(enums.VerificationLevel)),
'explicit_content_filter': (None, _enum_transformer(enums.ContentFilter)),
'allow': (None, _transform_permissions),
'deny': (None, _transform_permissions),
'permissions': (None, _transform_permissions),
'id': (None, _transform_snowflake),
'color': ('colour', _transform_color),
'owner_id': ('owner', _transform_member_id),
'inviter_id': ('inviter', _transform_member_id),
'channel_id': ('channel', _transform_channel),
'afk_channel_id': ('afk_channel', _transform_channel),
'system_channel_id': ('system_channel', _transform_channel),
'widget_channel_id': ('widget_channel', _transform_channel),
'rules_channel_id': ('rules_channel', _transform_channel),
'public_updates_channel_id': ('public_updates_channel', _transform_channel),
'permission_overwrites': ('overwrites', _transform_overwrites),
'splash_hash': ('splash', _guild_hash_transformer('splashes')),
'banner_hash': ('banner', _guild_hash_transformer('banners')),
'discovery_splash_hash': ('discovery_splash', _guild_hash_transformer('discovery-splashes')),
'icon_hash': ('icon', _transform_icon),
'avatar_hash': ('avatar', _transform_avatar),
'rate_limit_per_user': ('slowmode_delay', None),
'guild_id': ('guild', _transform_guild_id),
'tags': ('emoji', None),
'default_message_notifications': ('default_notifications', _enum_transformer(enums.NotificationLevel)),
'region': (None, _enum_transformer(enums.VoiceRegion)),
'rtc_region': (None, _enum_transformer(enums.VoiceRegion)),
'video_quality_mode': (None, _enum_transformer(enums.VideoQualityMode)),
'privacy_level': (None, _enum_transformer(enums.StagePrivacyLevel)),
'format_type': (None, _enum_transformer(enums.StickerFormatType)),
'type': (None, _transform_type),
'status': (None, _enum_transformer(enums.ScheduledEventStatus)),
'entity_type': ('location_type', _enum_transformer(enums.ScheduledEventLocationType)),
"verification_level": (None, _enum_transformer(enums.VerificationLevel)),
"explicit_content_filter": (None, _enum_transformer(enums.ContentFilter)),
"allow": (None, _transform_permissions),
"deny": (None, _transform_permissions),
"permissions": (None, _transform_permissions),
"id": (None, _transform_snowflake),
"color": ("colour", _transform_color),
"owner_id": ("owner", _transform_member_id),
"inviter_id": ("inviter", _transform_member_id),
"channel_id": ("channel", _transform_channel),
"afk_channel_id": ("afk_channel", _transform_channel),
"system_channel_id": ("system_channel", _transform_channel),
"widget_channel_id": ("widget_channel", _transform_channel),
"rules_channel_id": ("rules_channel", _transform_channel),
"public_updates_channel_id": ("public_updates_channel", _transform_channel),
"permission_overwrites": ("overwrites", _transform_overwrites),
"splash_hash": ("splash", _guild_hash_transformer("splashes")),
"banner_hash": ("banner", _guild_hash_transformer("banners")),
"discovery_splash_hash": (
"discovery_splash",
_guild_hash_transformer("discovery-splashes"),
),
"icon_hash": ("icon", _transform_icon),
"avatar_hash": ("avatar", _transform_avatar),
"rate_limit_per_user": ("slowmode_delay", None),
"guild_id": ("guild", _transform_guild_id),
"tags": ("emoji", None),
"default_message_notifications": (
"default_notifications",
_enum_transformer(enums.NotificationLevel),
),
"region": (None, _enum_transformer(enums.VoiceRegion)),
"rtc_region": (None, _enum_transformer(enums.VoiceRegion)),
"video_quality_mode": (None, _enum_transformer(enums.VideoQualityMode)),
"privacy_level": (None, _enum_transformer(enums.StagePrivacyLevel)),
"format_type": (None, _enum_transformer(enums.StickerFormatType)),
"type": (None, _transform_type),
"status": (None, _enum_transformer(enums.ScheduledEventStatus)),
"entity_type": (
"location_type",
_enum_transformer(enums.ScheduledEventLocationType),
),
}
# fmt: on

def __init__(
self,
Expand Down Expand Up @@ -497,17 +504,17 @@ def _from_data(self, data: AuditLogEntryPayload) -> None:
"_AuditLogProxy", (), elems
)()

# fmt: off
self.extra: Union[
_AuditLogProxyMemberPrune,
_AuditLogProxyMemberMoveOrMessageDelete,
_AuditLogProxyMemberDisconnect,
_AuditLogProxyPinAction,
_AuditLogProxyStageInstanceAction,
Member, User, None,
Member,
User,
None,
Role,
]
# fmt: on

# this key is not present when the above is present, typically.
# It's a list of { new_value: a, old_value: b, key: c }
Expand Down
2 changes: 0 additions & 2 deletions discord/channel.py
Original file line number Diff line number Diff line change
Expand Up @@ -926,13 +926,11 @@ def voice_states(self) -> Dict[int, VoiceState]:
Mapping[:class:`int`, :class:`VoiceState`]
The mapping of member ID to a voice state.
"""
# fmt: off
return {
key: value
for key, value in self.guild._voice_states.items()
if value.channel and value.channel.id == self.id
}
# fmt: on

@utils.copy_doc(discord.abc.GuildChannel.permissions_for)
def permissions_for(self, obj: Union[Member, Role], /) -> Permissions:
Expand Down
4 changes: 1 addition & 3 deletions discord/embeds.py
Original file line number Diff line number Diff line change
Expand Up @@ -752,13 +752,11 @@ def to_dict(self) -> EmbedData:
"""Converts this embed object into a dict."""

# add in the raw data into the dict
# fmt: off
result = {
key[1:]: getattr(self, key)
for key in self.__slots__
if key[0] == '_' and hasattr(self, key)
if key[0] == "_" and hasattr(self, key)
}
# fmt: on

# deal with basic convenience wrappers

Expand Down
Loading