@@ -144,35 +144,31 @@ def match_type_and_length(self, name):
144
144
invalid_name_error = (
145
145
"{} name must be a valid unicode string "
146
146
+ "with length < {} " .format (MAX_NAME_LENGTH )
147
- + "containing only ASCII alphanumerics, hyphens, underscores, or periods, "
148
- + "not {}"
147
+ + "containing only ASCII alphanumerics, hyphens, underscores, or periods."
149
148
)
150
149
151
- def valid_channel_name (self , name , receive = False ):
152
- if self .match_type_and_length (name ):
153
- if bool (self .channel_name_regex .match (name )):
154
- # Check cases for special channels
155
- if "!" in name and not name .endswith ("!" ) and receive :
156
- raise TypeError (
157
- "Specific channel names in receive() must end at the !"
158
- )
159
- return True
160
- raise TypeError (self .invalid_name_error .format ("Channel" , name ))
161
-
162
- def valid_group_name (self , name ):
163
- if self .match_type_and_length (name ):
164
- if bool (self .group_name_regex .match (name )):
165
- return True
166
- raise TypeError (self .invalid_name_error .format ("Group" , name ))
150
+ def require_valid_channel_name (self , name , receive = False ):
151
+ if not self .match_type_and_length (name ):
152
+ raise TypeError (self .invalid_name_error .format ("Channel" ))
153
+ if not bool (self .channel_name_regex .match (name )):
154
+ raise TypeError (self .invalid_name_error .format ("Channel" ))
155
+ if "!" in name and not name .endswith ("!" ) and receive :
156
+ raise TypeError ("Specific channel names in receive() must end at the !" )
157
+ return True
158
+
159
+ def require_valid_group_name (self , name ):
160
+ if not self .match_type_and_length (name ):
161
+ raise TypeError (self .invalid_name_error .format ("Group" ))
162
+ if not bool (self .group_name_regex .match (name )):
163
+ raise TypeError (self .invalid_name_error .format ("Group" ))
164
+ return True
167
165
168
166
def valid_channel_names (self , names , receive = False ):
169
167
_non_empty_list = True if names else False
170
168
_names_type = isinstance (names , list )
171
169
assert _non_empty_list and _names_type , "names must be a non-empty list"
172
-
173
- assert all (
174
- self .valid_channel_name (channel , receive = receive ) for channel in names
175
- )
170
+ for channel in names :
171
+ self .require_valid_channel_name (channel , receive = receive )
176
172
return True
177
173
178
174
def non_local_name (self , name ):
@@ -243,7 +239,7 @@ async def send(self, channel, message):
243
239
"""
244
240
# Typecheck
245
241
assert isinstance (message , dict ), "message is not a dict"
246
- assert self .valid_channel_name (channel ), "Channel name not valid"
242
+ self .require_valid_channel_name (channel )
247
243
# If it's a process-local channel, strip off local part and stick full
248
244
# name in message
249
245
assert "__asgi_channel__" not in message
@@ -263,7 +259,7 @@ async def receive(self, channel):
263
259
If more than one coroutine waits on the same channel, a random one
264
260
of the waiting coroutines will get the result.
265
261
"""
266
- assert self .valid_channel_name (channel )
262
+ self .require_valid_channel_name (channel )
267
263
self ._clean_expired ()
268
264
269
265
queue = self .channels .setdefault (
@@ -341,16 +337,16 @@ async def group_add(self, group, channel):
341
337
Adds the channel name to a group.
342
338
"""
343
339
# Check the inputs
344
- assert self .valid_group_name (group ), "Group name not valid"
345
- assert self .valid_channel_name (channel ), "Channel name not valid"
340
+ self .require_valid_group_name (group )
341
+ self .require_valid_channel_name (channel )
346
342
# Add to group dict
347
343
self .groups .setdefault (group , {})
348
344
self .groups [group ][channel ] = time .time ()
349
345
350
346
async def group_discard (self , group , channel ):
351
347
# Both should be text and valid
352
- assert self .valid_channel_name (channel ), "Invalid channel name"
353
- assert self .valid_group_name (group ), "Invalid group name"
348
+ self .require_valid_channel_name (channel )
349
+ self .require_valid_group_name (group )
354
350
# Remove from group set
355
351
group_channels = self .groups .get (group , None )
356
352
if group_channels :
@@ -363,7 +359,7 @@ async def group_discard(self, group, channel):
363
359
async def group_send (self , group , message ):
364
360
# Check types
365
361
assert isinstance (message , dict ), "Message is not a dict"
366
- assert self .valid_group_name (group ), "Invalid group name"
362
+ self .require_valid_group_name (group )
367
363
# Run clean
368
364
self ._clean_expired ()
369
365
0 commit comments