Skip to content

Commit b501ade

Browse files
committed
Merge branch 'feat/select-defaults' of https://github.com/DA-344/pycord into feat/select-defaults
2 parents 512ecb0 + 6ea9848 commit b501ade

File tree

4 files changed

+20
-11
lines changed

4 files changed

+20
-11
lines changed

CHANGELOG.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ These changes are available on the `master` branch, but have not yet been releas
1717
([#2711](https://github.com/Pycord-Development/pycord/pull/2711))
1818
- Added `RawMessageUpdateEvent.new_message` - message update events now contain full
1919
message objects ([#2780](https://github.com/Pycord-Development/pycord/pull/2780))
20-
2120
- Added support for select default values.
2221
([#2899](https://github.com/Pycord-Development/pycord/pull/2899))
2322

discord/components.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,9 @@ def _handle_model(
639639
break
640640

641641
if sel_types is None or def_type is None:
642-
raise TypeError(f"{obj_type.__name__} is not a valid instance for a select default value")
642+
raise TypeError(
643+
f"{obj_type.__name__} is not a valid instance for a select default value"
644+
)
643645

644646
# we can't actually check select types when not in a select context
645647
if select_type is not None and select_type not in sel_types:

discord/ui/select.py

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,9 @@ def __init__(
255255
self.row = row
256256

257257
def _handle_default_values(
258-
self, default_values: Sequence[Snowflake | ST] | None, select_type: ComponentType
258+
self,
259+
default_values: Sequence[Snowflake | ST] | None,
260+
select_type: ComponentType,
259261
) -> list[SelectDefaultValue]:
260262
if not default_values:
261263
return []
@@ -266,18 +268,25 @@ def _handle_default_values(
266268
ComponentType.user_select: (SelectDefaultValueType.user,),
267269
ComponentType.role_select: (SelectDefaultValueType.role,),
268270
ComponentType.channel_select: (SelectDefaultValueType.channel,),
269-
ComponentType.mentionable_select: (SelectDefaultValueType.user, SelectDefaultValueType.role),
271+
ComponentType.mentionable_select: (
272+
SelectDefaultValueType.user,
273+
SelectDefaultValueType.role,
274+
),
270275
}
271276

272277
for dv in default_values:
273278
if isinstance(dv, SelectDefaultValue):
274279
try:
275280
valid_types = valid_default_types[select_type]
276281
except KeyError:
277-
raise TypeError(f"select default values are not allowed for this select type ({select_type.name})")
282+
raise TypeError(
283+
f"select default values are not allowed for this select type ({select_type.name})"
284+
)
278285

279286
if dv.type not in valid_types:
280-
raise TypeError(f"{dv.type.name} is not a valid select default value for selects of type {select_type.name}")
287+
raise TypeError(
288+
f"{dv.type.name} is not a valid select default value for selects of type {select_type.name}"
289+
)
281290

282291
ret.append(dv)
283292
continue
@@ -394,9 +403,7 @@ def default_values(self) -> list[SelectDefaultValue]:
394403
return self._underlying.default_values
395404

396405
@default_values.setter
397-
def default_values(
398-
self, values: Sequence[SelectDefaultValue | ST] | None
399-
) -> None:
406+
def default_values(self, values: Sequence[SelectDefaultValue | ST] | None) -> None:
400407
default_values = self._handle_default_values(values, self.type)
401408
self._underlying.default_values = default_values
402409

@@ -952,7 +959,9 @@ def mentionable_select(
952959
row: int | None = None,
953960
id: int | None = None,
954961
default_values: Sequence[SelectDefaultValue | Snowflake] | None = None,
955-
) -> Callable[[ItemCallbackType[Select[V, Role | User | Member]]], Select[V, Role | User | Member]]:
962+
) -> Callable[
963+
[ItemCallbackType[Select[V, Role | User | Member]]], Select[V, Role | User | Member]
964+
]:
956965
"""A shortcut for :meth:`discord.ui.select` with select type :attr:`discord.ComponentType.mentionable_select`.
957966
958967
.. versionadded:: 2.3

examples/views/role_select.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
from typing import Self
21
import discord
32

43
# Role selects (dropdowns) are a new type of select menu/dropdown Discord has added so people can select server roles from a dropdown.

0 commit comments

Comments
 (0)