| # Copyright (C) 2001-2006 Python Software Foundation | 
 | # Author: Barry Warsaw | 
 | # Contact: email-sig@python.org | 
 |  | 
 | """email package exception classes.""" | 
 |  | 
 |  | 
 |  | 
 | class MessageError(Exception): | 
 |     """Base class for errors in the email package.""" | 
 |  | 
 |  | 
 | class MessageParseError(MessageError): | 
 |     """Base class for message parsing errors.""" | 
 |  | 
 |  | 
 | class HeaderParseError(MessageParseError): | 
 |     """Error while parsing headers.""" | 
 |  | 
 |  | 
 | class BoundaryError(MessageParseError): | 
 |     """Couldn't find terminating boundary.""" | 
 |  | 
 |  | 
 | class MultipartConversionError(MessageError, TypeError): | 
 |     """Conversion to a multipart is prohibited.""" | 
 |  | 
 |  | 
 | class CharsetError(MessageError): | 
 |     """An illegal charset was given.""" | 
 |  | 
 |  | 
 |  | 
 | # These are parsing defects which the parser was able to work around. | 
 | class MessageDefect: | 
 |     """Base class for a message defect.""" | 
 |  | 
 |     def __init__(self, line=None): | 
 |         self.line = line | 
 |  | 
 | class NoBoundaryInMultipartDefect(MessageDefect): | 
 |     """A message claimed to be a multipart but had no boundary parameter.""" | 
 |  | 
 | class StartBoundaryNotFoundDefect(MessageDefect): | 
 |     """The claimed start boundary was never found.""" | 
 |  | 
 | class FirstHeaderLineIsContinuationDefect(MessageDefect): | 
 |     """A message had a continuation line as its first header line.""" | 
 |  | 
 | class MisplacedEnvelopeHeaderDefect(MessageDefect): | 
 |     """A 'Unix-from' header was found in the middle of a header block.""" | 
 |  | 
 | class MalformedHeaderDefect(MessageDefect): | 
 |     """Found a header that was missing a colon, or was otherwise malformed.""" | 
 |  | 
 | class MultipartInvariantViolationDefect(MessageDefect): | 
 |     """A message claimed to be a multipart but no subparts were found.""" |