1  # Copyright (C) 2001-2006 Python Software Foundation
       2  # Author: Barry Warsaw
       3  # Contact: email-sig@python.org
       4  
       5  """Class representing text/* type MIME documents."""
       6  
       7  __all__ = ['MIMEText']
       8  
       9  from email.mime.nonmultipart import MIMENonMultipart
      10  
      11  
      12  class ESC[4;38;5;81mMIMEText(ESC[4;38;5;149mMIMENonMultipart):
      13      """Class for generating text/* type MIME documents."""
      14  
      15      def __init__(self, _text, _subtype='plain', _charset=None, *, policy=None):
      16          """Create a text/* type MIME document.
      17  
      18          _text is the string for this message object.
      19  
      20          _subtype is the MIME sub content type, defaulting to "plain".
      21  
      22          _charset is the character set parameter added to the Content-Type
      23          header.  This defaults to "us-ascii".  Note that as a side-effect, the
      24          Content-Transfer-Encoding header will also be set.
      25          """
      26  
      27          # If no _charset was specified, check to see if there are non-ascii
      28          # characters present. If not, use 'us-ascii', otherwise use utf-8.
      29          # XXX: This can be removed once #7304 is fixed.
      30          if _charset is None:
      31              try:
      32                  _text.encode('us-ascii')
      33                  _charset = 'us-ascii'
      34              except UnicodeEncodeError:
      35                  _charset = 'utf-8'
      36  
      37          MIMENonMultipart.__init__(self, 'text', _subtype, policy=policy,
      38                                    charset=str(_charset))
      39  
      40          self.set_payload(_text, _charset)