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
-
26
- from typing import List , Literal , Optional , TypedDict , Union
25
+ import sys
26
+ from typing import List , Literal , Optional , Union
27
27
28
28
from .snowflake import Snowflake
29
29
from .threads import ThreadArchiveDuration , ThreadMember , ThreadMetadata
30
30
from .user import PartialUser
31
31
32
+ if sys .version_info >= (3 , 11 ):
33
+ from typing import NotRequired , TypedDict
34
+ else :
35
+ from typing_extensions import NotRequired , TypedDict
36
+
37
+
32
38
OverwriteType = Literal [0 , 1 ]
33
39
34
40
@@ -82,12 +88,9 @@ class NewsChannel(_BaseGuildChannel, _TextChannelOptional):
82
88
VideoQualityMode = Literal [1 , 2 ]
83
89
84
90
85
- class _VoiceChannelOptional (TypedDict , total = False ):
86
- rtc_region : Optional [str ]
87
- video_quality_mode : VideoQualityMode
88
-
89
-
90
- class VoiceChannel (_BaseGuildChannel , _VoiceChannelOptional ):
91
+ class VoiceChannel (_BaseGuildChannel ):
92
+ rtc_region : NotRequired [Optional [str ]]
93
+ video_quality_mode : NotRequired [VideoQualityMode ]
91
94
type : Literal [2 ]
92
95
bitrate : int
93
96
user_limit : int
@@ -97,33 +100,24 @@ class CategoryChannel(_BaseGuildChannel):
97
100
type : Literal [4 ]
98
101
99
102
100
- class _StageChannelOptional (TypedDict , total = False ):
101
- rtc_region : Optional [str ]
102
- topic : str
103
-
104
-
105
- class StageChannel (_BaseGuildChannel , _StageChannelOptional ):
103
+ class StageChannel (_BaseGuildChannel ):
104
+ rtc_region : NotRequired [Optional [str ]]
105
+ topic : NotRequired [str ]
106
106
type : Literal [13 ]
107
107
bitrate : int
108
108
user_limit : int
109
109
110
110
111
- class _ThreadChannelOptional (TypedDict , total = False ):
112
- member : ThreadMember
113
- owner_id : Snowflake
114
- rate_limit_per_user : int
115
- last_message_id : Optional [Snowflake ]
116
- last_pin_timestamp : str
117
-
118
-
119
- class ThreadChannel (_BaseChannel , _ThreadChannelOptional ):
111
+ class ThreadChannel (_BaseChannel ):
112
+ member : NotRequired [ThreadMember ]
113
+ owner_id : NotRequired [Snowflake ]
114
+ rate_limit_per_user : NotRequired [int ]
115
+ last_message_id : NotRequired [Optional [Snowflake ]]
116
+ last_pin_timestamp : NotRequired [str ]
120
117
type : Literal [10 , 11 , 12 ]
121
118
guild_id : Snowflake
122
119
parent_id : Snowflake
123
- owner_id : Snowflake
124
120
nsfw : bool
125
- last_message_id : Optional [Snowflake ]
126
- rate_limit_per_user : int
127
121
message_count : int
128
122
member_count : int
129
123
thread_metadata : ThreadMetadata
0 commit comments