Skip to content

Commit e343fc4

Browse files
authored
Revert "refactor: utils (#44)"
This reverts commit 0f7f84d.
1 parent 68a1ef1 commit e343fc4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+1747
-1607
lines changed

CHANGELOG-V3.md

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,3 @@ release.
1212
### Deprecated
1313

1414
### Removed
15-
16-
- `utils.filter_params`
17-
- `utils.sleep_until` use `asyncio.sleep` combined with `datetime.datetime` instead
18-
- `utils.compute_timedelta` use the `datetime` module instead
19-
- `utils.resolve_invite`
20-
- `utils.resolve_template`
21-
- `utils.parse_time` use `datetime.datetime.fromisoformat` instead
22-
- `utils.time_snowflake` use `utils.generate_snowflake` instead
23-
- `utils.warn_deprecated`
24-
- `utils.deprecated`
25-
- `utils.get` use `utils.find` with `lambda i: i.attr == val` instead
26-
- `AsyncIterator.get` use `AsyncIterator.find` with `lambda i: i.attr == val` instead
27-
- `utils.as_chunks` use `itertools.batched` on Python 3.12+ or your own implementation
28-
instead

discord/__version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535

3636
from typing import Literal, NamedTuple
3737

38-
from .utils.private import deprecated
38+
from .utils import deprecated
3939
from ._version import __version__, __version_tuple__
4040

4141

discord/abc.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
runtime_checkable,
4242
)
4343

44-
from .utils.private import warn_deprecated
4544
from . import utils
4645
from .context_managers import Typing
4746
from .enums import ChannelType
@@ -725,7 +724,7 @@ def permissions_for(self, obj: Member | Role, /) -> Permissions:
725724
if obj.is_default():
726725
return base
727726

728-
overwrite = utils.find(lambda o: o.type == _Overwrites.ROLE and o.id == obj.id, self._overwrites)
727+
overwrite = utils.get(self._overwrites, type=_Overwrites.ROLE, id=obj.id)
729728
if overwrite is not None:
730729
base.handle_overwrite(overwrite.allow, overwrite.deny)
731730

@@ -1530,7 +1529,7 @@ async def send(
15301529
from .message import MessageReference # noqa: PLC0415
15311530

15321531
if not isinstance(reference, MessageReference):
1533-
warn_deprecated(
1532+
utils.warn_deprecated(
15341533
f"Passing {type(reference).__name__} to reference",
15351534
"MessageReference",
15361535
"2.7",

discord/activity.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
from .colour import Colour
3333
from .enums import ActivityType, try_enum
3434
from .partial_emoji import PartialEmoji
35-
from .utils.private import get_as_snowflake
35+
from .utils import _get_as_snowflake
3636

3737
__all__ = (
3838
"BaseActivity",
@@ -226,7 +226,7 @@ def __init__(self, **kwargs):
226226
self.timestamps: ActivityTimestamps = kwargs.pop("timestamps", {})
227227
self.assets: ActivityAssets = kwargs.pop("assets", {})
228228
self.party: ActivityParty = kwargs.pop("party", {})
229-
self.application_id: int | None = get_as_snowflake(kwargs, "application_id")
229+
self.application_id: int | None = _get_as_snowflake(kwargs, "application_id")
230230
self.url: str | None = kwargs.pop("url", None)
231231
self.flags: int = kwargs.pop("flags", 0)
232232
self.sync_id: str | None = kwargs.pop("sync_id", None)

discord/appinfo.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727

2828
from typing import TYPE_CHECKING
2929

30-
from .utils.private import warn_deprecated, get_as_snowflake
3130
from . import utils
3231
from .asset import Asset
3332
from .permissions import Permissions
@@ -201,9 +200,9 @@ def __init__(self, state: ConnectionState, data: AppInfoPayload):
201200
self._summary: str = data["summary"]
202201
self.verify_key: str = data["verify_key"]
203202

204-
self.guild_id: int | None = get_as_snowflake(data, "guild_id")
203+
self.guild_id: int | None = utils._get_as_snowflake(data, "guild_id")
205204

206-
self.primary_sku_id: int | None = get_as_snowflake(data, "primary_sku_id")
205+
self.primary_sku_id: int | None = utils._get_as_snowflake(data, "primary_sku_id")
207206
self.slug: str | None = data.get("slug")
208207
self._cover_image: str | None = data.get("cover_image")
209208
self.terms_of_service_url: str | None = data.get("terms_of_service_url")
@@ -262,7 +261,7 @@ def summary(self) -> str | None:
262261
.. versionadded:: 1.3
263262
.. deprecated:: 2.7
264263
"""
265-
warn_deprecated(
264+
utils.warn_deprecated(
266265
"summary",
267266
"description",
268267
reference="https://discord.com/developers/docs/resources/application#application-object-application-structure",

discord/asset.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,6 @@
4747
MISSING = utils.MISSING
4848

4949

50-
def _valid_icon_size(size: int) -> bool:
51-
"""Icons must be power of 2 within [16, 4096]."""
52-
return not size & (size - 1) and 4096 >= size >= 16
53-
54-
5550
class AssetMixin:
5651
url: str
5752
_state: Any | None
@@ -378,7 +373,7 @@ def replace(
378373
url = url.with_path(f"{path}.{static_format}")
379374

380375
if size is not MISSING:
381-
if not _valid_icon_size(size):
376+
if not utils.valid_icon_size(size):
382377
raise InvalidArgument("size must be a power of 2 between 16 and 4096")
383378
url = url.with_query(size=size)
384379
else:
@@ -405,7 +400,7 @@ def with_size(self, size: int, /) -> Asset:
405400
InvalidArgument
406401
The asset had an invalid size.
407402
"""
408-
if not _valid_icon_size(size):
403+
if not utils.valid_icon_size(size):
409404
raise InvalidArgument("size must be a power of 2 between 16 and 4096")
410405

411406
url = str(yarl.URL(self._url).with_query(size=size))

discord/audit_logs.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,7 @@
2626
from __future__ import annotations
2727

2828
from typing import TYPE_CHECKING, Any, Callable, ClassVar, Generator, TypeVar
29-
from functools import cached_property
3029

31-
from .utils.private import get_as_snowflake
3230
from . import enums, utils
3331
from .asset import Asset
3432
from .automod import AutoModAction, AutoModTriggerMetadata
@@ -561,21 +559,21 @@ def _from_data(self, data: AuditLogEntryPayload) -> None:
561559
# into meaningful data when requested
562560
self._changes = data.get("changes", [])
563561

564-
self.user = self._get_member(get_as_snowflake(data, "user_id")) # type: ignore
565-
self._target_id = get_as_snowflake(data, "target_id")
562+
self.user = self._get_member(utils._get_as_snowflake(data, "user_id")) # type: ignore
563+
self._target_id = utils._get_as_snowflake(data, "target_id")
566564

567565
def _get_member(self, user_id: int) -> Member | User | None:
568566
return self.guild.get_member(user_id) or self._users.get(user_id)
569567

570568
def __repr__(self) -> str:
571569
return f"<AuditLogEntry id={self.id} action={self.action} user={self.user!r}>"
572570

573-
@cached_property
571+
@property
574572
def created_at(self) -> datetime.datetime:
575573
"""Returns the entry's creation time in UTC."""
576574
return utils.snowflake_time(self.id)
577575

578-
@cached_property
576+
@property
579577
def target(
580578
self,
581579
) -> (
@@ -604,7 +602,7 @@ def category(self) -> enums.AuditLogActionCategory:
604602
"""The category of the action, if applicable."""
605603
return self.action.category
606604

607-
@cached_property
605+
@property
608606
def changes(self) -> AuditLogChanges:
609607
"""The list of changes this entry has."""
610608
obj = AuditLogChanges(self, self._changes, state=self._state)

discord/bot.py

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,7 @@
6363
from .shard import AutoShardedClient
6464
from .types import interactions
6565
from .user import User
66-
from .utils import MISSING, find
67-
from .utils.private import async_all
66+
from .utils import MISSING, async_all, find, get
6867

6968
if TYPE_CHECKING:
7069
from .member import Member
@@ -217,13 +216,13 @@ def get_application_command(
217216
return command
218217
elif (names := name.split())[0] == command.name and isinstance(command, SlashCommandGroup):
219218
while len(names) > 1:
220-
command = find(lambda c: c.name == names.pop(0), commands)
219+
command = get(commands, name=names.pop(0))
221220
if not isinstance(command, SlashCommandGroup) or (
222221
guild_ids is not None and command.guild_ids != guild_ids
223222
):
224223
return
225224
commands = command.subcommands
226-
command = find(lambda c: c.name == names.pop(), commands)
225+
command = get(commands, name=names.pop())
227226
if not isinstance(command, type) or (guild_ids is not None and command.guild_ids != guild_ids):
228227
return
229228
return command
@@ -358,7 +357,7 @@ def _check_command(cmd: ApplicationCommand, match: Mapping[str, Any]) -> bool:
358357

359358
# Now let's see if there are any commands on discord that we need to delete
360359
for cmd, value_ in registered_commands_dict.items():
361-
match = find(lambda c: c.name == value_["name"], pending)
360+
match = get(pending, name=value_["name"])
362361
if match is None:
363362
# We have this command registered but not in our list
364363
return_value.append(
@@ -517,7 +516,7 @@ def register(
517516
)
518517
continue
519518
# We can assume the command item is a command, since it's only a string if action is delete
520-
match = find(lambda c: c.name == cmd["command"].name and c.type == cmd["command"].type, pending)
519+
match = get(pending, name=cmd["command"].name, type=cmd["command"].type)
521520
if match is None:
522521
continue
523522
if cmd["action"] == "edit":
@@ -606,9 +605,10 @@ def register(
606605
registered = await register("bulk", data, guild_id=guild_id)
607606

608607
for i in registered:
609-
cmd = find(
610-
lambda c: c.name == i["name"] and c.type == i.get("type"),
608+
cmd = get(
611609
self.pending_application_commands,
610+
name=i["name"],
611+
type=i.get("type"),
612612
)
613613
if not cmd:
614614
raise ValueError(f"Registered command {i['name']}, type {i.get('type')} not found in pending commands")
@@ -712,9 +712,11 @@ async def on_connect():
712712
registered_guild_commands[guild_id] = app_cmds
713713

714714
for i in registered_commands:
715-
cmd = find(
716-
lambda c: c.name == i["name"] and c.guild_ids is None and c.type == i.get("type"),
715+
cmd = get(
717716
self.pending_application_commands,
717+
name=i["name"],
718+
guild_ids=None,
719+
type=i.get("type"),
718720
)
719721
if cmd:
720722
cmd.id = i["id"]

0 commit comments

Comments
 (0)