mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	bpo-38698: Add a new InvalidMessageID token to email header parser. (GH-17503)
This adds a new InvalidMessageID token to the email header parser which can be used to represent invalid message-id headers in the parse tree.
This commit is contained in:
		
							parent
							
								
									080ee5a884
								
							
						
					
					
						commit
						68157da8b4
					
				
					 3 changed files with 56 additions and 7 deletions
				
			
		|  | @ -850,10 +850,15 @@ def fold(self, policy): | |||
|         # message-id tokens may not be folded. | ||||
|         return str(self) + policy.linesep | ||||
| 
 | ||||
| 
 | ||||
| class MessageID(MsgID): | ||||
|     token_type = 'message-id' | ||||
| 
 | ||||
| 
 | ||||
| class InvalidMessageID(MessageID): | ||||
|     token_type = 'invalid-message-id' | ||||
| 
 | ||||
| 
 | ||||
| class Header(TokenList): | ||||
|     token_type = 'header' | ||||
| 
 | ||||
|  | @ -2110,11 +2115,18 @@ def parse_message_id(value): | |||
|     message_id = MessageID() | ||||
|     try: | ||||
|         token, value = get_msg_id(value) | ||||
|     except errors.HeaderParseError: | ||||
|         message_id.defects.append(errors.InvalidHeaderDefect( | ||||
|             "Expected msg-id but found {!r}".format(value))) | ||||
|     else: | ||||
|         message_id.append(token) | ||||
|     except errors.HeaderParseError as ex: | ||||
|         token = get_unstructured(value) | ||||
|         message_id = InvalidMessageID(token) | ||||
|         message_id.defects.append( | ||||
|             errors.InvalidHeaderDefect("Invalid msg-id: {!r}".format(ex))) | ||||
|     else: | ||||
|         # Value after parsing a valid msg_id should be None. | ||||
|         if value: | ||||
|             message_id.defects.append(errors.InvalidHeaderDefect( | ||||
|                 "Unexpected {!r}".format(value))) | ||||
| 
 | ||||
|     return message_id | ||||
| 
 | ||||
| # | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Abhilash Raj
						Abhilash Raj