25
25
26
26
from __future__ import annotations
27
27
28
- from collections .abc import Sequence
29
28
import inspect
30
29
import os
30
+ from collections .abc import Sequence
31
31
from typing import TYPE_CHECKING , Callable , TypeVar
32
32
33
33
from .. import abc
34
34
from ..channel import _threaded_guild_channel_factory
35
- from ..components import SelectMenu , SelectOption , SelectDefaultValue
35
+ from ..components import SelectDefaultValue , SelectMenu , SelectOption
36
36
from ..emoji import AppEmoji , GuildEmoji
37
37
from ..enums import ChannelType , ComponentType , SelectDefaultValueType
38
38
from ..errors import InvalidArgument
@@ -248,18 +248,37 @@ def __init__(
248
248
)
249
249
self .row = row
250
250
251
- def _handle_default_values (self , default_values : Sequence [abc .Snowflake ] | None , select_type : ComponentType ) -> list [SelectDefaultValue ]:
251
+ def _handle_default_values (
252
+ self , default_values : Sequence [abc .Snowflake ] | None , select_type : ComponentType
253
+ ) -> list [SelectDefaultValue ]:
252
254
if not default_values :
253
255
return []
254
256
255
257
ret = []
256
258
257
- instances_mapping : dict [type , tuple [tuple [ComponentType , ...], SelectDefaultValueType ]] = {
258
- Role : ((ComponentType .role_select , ComponentType .mentionable_select ), SelectDefaultValueType .role ),
259
- User : ((ComponentType .user_select , ComponentType .mentionable_select ), SelectDefaultValueType .user ),
260
- Member : ((ComponentType .user_select , ComponentType .mentionable_select ), SelectDefaultValueType .user ),
261
- abc .User : ((ComponentType .user_select , ComponentType .mentionable_select ), SelectDefaultValueType .user ),
262
- abc .GuildChannel : ((ComponentType .channel_select ,), SelectDefaultValueType .channel ),
259
+ instances_mapping : dict [
260
+ type , tuple [tuple [ComponentType , ...], SelectDefaultValueType ]
261
+ ] = {
262
+ Role : (
263
+ (ComponentType .role_select , ComponentType .mentionable_select ),
264
+ SelectDefaultValueType .role ,
265
+ ),
266
+ User : (
267
+ (ComponentType .user_select , ComponentType .mentionable_select ),
268
+ SelectDefaultValueType .user ,
269
+ ),
270
+ Member : (
271
+ (ComponentType .user_select , ComponentType .mentionable_select ),
272
+ SelectDefaultValueType .user ,
273
+ ),
274
+ abc .User : (
275
+ (ComponentType .user_select , ComponentType .mentionable_select ),
276
+ SelectDefaultValueType .user ,
277
+ ),
278
+ abc .GuildChannel : (
279
+ (ComponentType .channel_select ,),
280
+ SelectDefaultValueType .channel ,
281
+ ),
263
282
}
264
283
265
284
for dv in default_values :
@@ -276,10 +295,14 @@ def _handle_default_values(self, default_values: Sequence[abc.Snowflake] | None,
276
295
try :
277
296
sel_type , def_type = instances_mapping [obj_type ]
278
297
except KeyError :
279
- raise TypeError (f'{ dv .__class__ .__name__ } is not a valid instance for default_values' )
298
+ raise TypeError (
299
+ f"{ dv .__class__ .__name__ } is not a valid instance for default_values"
300
+ )
280
301
281
302
if select_type not in sel_type :
282
- raise TypeError (f'{ dv .__class__ .__name__ } objects can not be set as a default value for { select_type .value } selects' )
303
+ raise TypeError (
304
+ f"{ dv .__class__ .__name__ } objects can not be set as a default value for { select_type .value } selects"
305
+ )
283
306
284
307
ret .append (SelectDefaultValue (id = obj_id , type = def_type ))
285
308
@@ -390,7 +413,9 @@ def default_values(self) -> list[SelectDefaultValue]:
390
413
return self ._underlying .default_values
391
414
392
415
@default_values .setter
393
- def default_values (self , values : list [SelectDefaultValue | abc .Snowflake ] | None ) -> None :
416
+ def default_values (
417
+ self , values : list [SelectDefaultValue | abc .Snowflake ] | None
418
+ ) -> None :
394
419
default_values = self ._handle_default_values (values , self .type )
395
420
self ._underlying .default_values = default_values
396
421
@@ -424,7 +449,9 @@ def add_default_value(
424
449
The number of default select values exceeds 25.
425
450
"""
426
451
if type is MISSING and self .type is ComponentType .mentionable_select :
427
- raise TypeError ('type is required when select is of type mentionable_select' )
452
+ raise TypeError (
453
+ "type is required when select is of type mentionable_select"
454
+ )
428
455
429
456
types = {
430
457
ComponentType .user_select : SelectDefaultValueType .user ,
@@ -784,7 +811,9 @@ def select(
784
811
raise TypeError ("channel_types may only be specified for channel selects" )
785
812
786
813
if default_values is not None and select_type is ComponentType .string_select :
787
- raise TypeError ("default_values may only be specified for selects other than string selects" )
814
+ raise TypeError (
815
+ "default_values may only be specified for selects other than string selects"
816
+ )
788
817
789
818
def decorator (func : ItemCallbackType ) -> ItemCallbackType :
790
819
if not inspect .iscoroutinefunction (func ):
0 commit comments