22
22
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23
23
DEALINGS IN THE SOFTWARE.
24
24
"""
25
- import sys
26
- from typing import List , Literal , Optional , Union
25
+ from __future__ import annotations
27
26
27
+ from typing import Literal , Union
28
+
29
+ from .._typed_dict import NotRequired , TypedDict
28
30
from .snowflake import Snowflake
29
31
from .threads import ThreadArchiveDuration , ThreadMember , ThreadMetadata
30
32
from .user import PartialUser
31
33
32
- if sys .version_info >= (3 , 11 ):
33
- from typing import NotRequired , TypedDict
34
- else :
35
- from typing_extensions import NotRequired , TypedDict
36
-
37
-
38
34
OverwriteType = Literal [0 , 1 ]
39
35
40
36
@@ -56,9 +52,9 @@ class _BaseChannel(TypedDict):
56
52
class _BaseGuildChannel (_BaseChannel ):
57
53
guild_id : Snowflake
58
54
position : int
59
- permission_overwrites : List [PermissionOverwrite ]
55
+ permission_overwrites : list [PermissionOverwrite ]
60
56
nsfw : bool
61
- parent_id : Optional [ Snowflake ]
57
+ parent_id : Snowflake | None
62
58
63
59
64
60
class PartialChannel (_BaseChannel ):
@@ -67,7 +63,7 @@ class PartialChannel(_BaseChannel):
67
63
68
64
class _TextChannelOptional (TypedDict , total = False ):
69
65
topic : str
70
- last_message_id : Optional [ Snowflake ]
66
+ last_message_id : Snowflake | None
71
67
last_pin_timestamp : str
72
68
rate_limit_per_user : int
73
69
default_auto_archive_duration : ThreadArchiveDuration
@@ -89,7 +85,7 @@ class NewsChannel(_BaseGuildChannel, _TextChannelOptional):
89
85
90
86
91
87
class VoiceChannel (_BaseGuildChannel ):
92
- rtc_region : NotRequired [Optional [ str ] ]
88
+ rtc_region : NotRequired [str | None ]
93
89
video_quality_mode : NotRequired [VideoQualityMode ]
94
90
type : Literal [2 ]
95
91
bitrate : int
@@ -101,7 +97,7 @@ class CategoryChannel(_BaseGuildChannel):
101
97
102
98
103
99
class StageChannel (_BaseGuildChannel ):
104
- rtc_region : NotRequired [Optional [ str ] ]
100
+ rtc_region : NotRequired [str | None ]
105
101
topic : NotRequired [str ]
106
102
type : Literal [13 ]
107
103
bitrate : int
@@ -112,7 +108,7 @@ class ThreadChannel(_BaseChannel):
112
108
member : NotRequired [ThreadMember ]
113
109
owner_id : NotRequired [Snowflake ]
114
110
rate_limit_per_user : NotRequired [int ]
115
- last_message_id : NotRequired [Optional [ Snowflake ] ]
111
+ last_message_id : NotRequired [Snowflake | None ]
116
112
last_pin_timestamp : NotRequired [str ]
117
113
type : Literal [10 , 11 , 12 ]
118
114
guild_id : Snowflake
@@ -137,13 +133,13 @@ class ThreadChannel(_BaseChannel):
137
133
class DMChannel (TypedDict ):
138
134
id : Snowflake
139
135
type : Literal [1 ]
140
- last_message_id : Optional [ Snowflake ]
141
- recipients : List [PartialUser ]
136
+ last_message_id : Snowflake | None
137
+ recipients : list [PartialUser ]
142
138
143
139
144
140
class GroupDMChannel (_BaseChannel ):
145
141
type : Literal [3 ]
146
- icon : Optional [ str ]
142
+ icon : str | None
147
143
owner_id : Snowflake
148
144
149
145
0 commit comments