(root)/
Python-3.11.7/
Lib/
email/
errors.py
       1  # Copyright (C) 2001-2006 Python Software Foundation
       2  # Author: Barry Warsaw
       3  # Contact: email-sig@python.org
       4  
       5  """email package exception classes."""
       6  
       7  
       8  class ESC[4;38;5;81mMessageError(ESC[4;38;5;149mException):
       9      """Base class for errors in the email package."""
      10  
      11  
      12  class ESC[4;38;5;81mMessageParseError(ESC[4;38;5;149mMessageError):
      13      """Base class for message parsing errors."""
      14  
      15  
      16  class ESC[4;38;5;81mHeaderParseError(ESC[4;38;5;149mMessageParseError):
      17      """Error while parsing headers."""
      18  
      19  
      20  class ESC[4;38;5;81mBoundaryError(ESC[4;38;5;149mMessageParseError):
      21      """Couldn't find terminating boundary."""
      22  
      23  
      24  class ESC[4;38;5;81mMultipartConversionError(ESC[4;38;5;149mMessageError, ESC[4;38;5;149mTypeError):
      25      """Conversion to a multipart is prohibited."""
      26  
      27  
      28  class ESC[4;38;5;81mCharsetError(ESC[4;38;5;149mMessageError):
      29      """An illegal charset was given."""
      30  
      31  
      32  # These are parsing defects which the parser was able to work around.
      33  class ESC[4;38;5;81mMessageDefect(ESC[4;38;5;149mValueError):
      34      """Base class for a message defect."""
      35  
      36      def __init__(self, line=None):
      37          if line is not None:
      38              super().__init__(line)
      39          self.line = line
      40  
      41  class ESC[4;38;5;81mNoBoundaryInMultipartDefect(ESC[4;38;5;149mMessageDefect):
      42      """A message claimed to be a multipart but had no boundary parameter."""
      43  
      44  class ESC[4;38;5;81mStartBoundaryNotFoundDefect(ESC[4;38;5;149mMessageDefect):
      45      """The claimed start boundary was never found."""
      46  
      47  class ESC[4;38;5;81mCloseBoundaryNotFoundDefect(ESC[4;38;5;149mMessageDefect):
      48      """A start boundary was found, but not the corresponding close boundary."""
      49  
      50  class ESC[4;38;5;81mFirstHeaderLineIsContinuationDefect(ESC[4;38;5;149mMessageDefect):
      51      """A message had a continuation line as its first header line."""
      52  
      53  class ESC[4;38;5;81mMisplacedEnvelopeHeaderDefect(ESC[4;38;5;149mMessageDefect):
      54      """A 'Unix-from' header was found in the middle of a header block."""
      55  
      56  class ESC[4;38;5;81mMissingHeaderBodySeparatorDefect(ESC[4;38;5;149mMessageDefect):
      57      """Found line with no leading whitespace and no colon before blank line."""
      58  # XXX: backward compatibility, just in case (it was never emitted).
      59  MalformedHeaderDefect = MissingHeaderBodySeparatorDefect
      60  
      61  class ESC[4;38;5;81mMultipartInvariantViolationDefect(ESC[4;38;5;149mMessageDefect):
      62      """A message claimed to be a multipart but no subparts were found."""
      63  
      64  class ESC[4;38;5;81mInvalidMultipartContentTransferEncodingDefect(ESC[4;38;5;149mMessageDefect):
      65      """An invalid content transfer encoding was set on the multipart itself."""
      66  
      67  class ESC[4;38;5;81mUndecodableBytesDefect(ESC[4;38;5;149mMessageDefect):
      68      """Header contained bytes that could not be decoded"""
      69  
      70  class ESC[4;38;5;81mInvalidBase64PaddingDefect(ESC[4;38;5;149mMessageDefect):
      71      """base64 encoded sequence had an incorrect length"""
      72  
      73  class ESC[4;38;5;81mInvalidBase64CharactersDefect(ESC[4;38;5;149mMessageDefect):
      74      """base64 encoded sequence had characters not in base64 alphabet"""
      75  
      76  class ESC[4;38;5;81mInvalidBase64LengthDefect(ESC[4;38;5;149mMessageDefect):
      77      """base64 encoded sequence had invalid length (1 mod 4)"""
      78  
      79  # These errors are specific to header parsing.
      80  
      81  class ESC[4;38;5;81mHeaderDefect(ESC[4;38;5;149mMessageDefect):
      82      """Base class for a header defect."""
      83  
      84      def __init__(self, *args, **kw):
      85          super().__init__(*args, **kw)
      86  
      87  class ESC[4;38;5;81mInvalidHeaderDefect(ESC[4;38;5;149mHeaderDefect):
      88      """Header is not valid, message gives details."""
      89  
      90  class ESC[4;38;5;81mHeaderMissingRequiredValue(ESC[4;38;5;149mHeaderDefect):
      91      """A header that must have a value had none"""
      92  
      93  class ESC[4;38;5;81mNonPrintableDefect(ESC[4;38;5;149mHeaderDefect):
      94      """ASCII characters outside the ascii-printable range found"""
      95  
      96      def __init__(self, non_printables):
      97          super().__init__(non_printables)
      98          self.non_printables = non_printables
      99  
     100      def __str__(self):
     101          return ("the following ASCII non-printables found in header: "
     102              "{}".format(self.non_printables))
     103  
     104  class ESC[4;38;5;81mObsoleteHeaderDefect(ESC[4;38;5;149mHeaderDefect):
     105      """Header uses syntax declared obsolete by RFC 5322"""
     106  
     107  class ESC[4;38;5;81mNonASCIILocalPartDefect(ESC[4;38;5;149mHeaderDefect):
     108      """local_part contains non-ASCII characters"""
     109      # This defect only occurs during unicode parsing, not when
     110      # parsing messages decoded from binary.
     111  
     112  class ESC[4;38;5;81mInvalidDateDefect(ESC[4;38;5;149mHeaderDefect):
     113      """Header has unparsable or invalid date"""