Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/future/backports/email/mime/text.py: 94%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

18 statements  

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.""" 

6from __future__ import unicode_literals 

7from __future__ import division 

8from __future__ import absolute_import 

9 

10__all__ = ['MIMEText'] 

11 

12from future.backports.email.encoders import encode_7or8bit 

13from future.backports.email.mime.nonmultipart import MIMENonMultipart 

14 

15 

16class MIMEText(MIMENonMultipart): 

17 """Class for generating text/* type MIME documents.""" 

18 

19 def __init__(self, _text, _subtype='plain', _charset=None): 

20 """Create a text/* type MIME document. 

21 

22 _text is the string for this message object. 

23 

24 _subtype is the MIME sub content type, defaulting to "plain". 

25 

26 _charset is the character set parameter added to the Content-Type 

27 header. This defaults to "us-ascii". Note that as a side-effect, the 

28 Content-Transfer-Encoding header will also be set. 

29 """ 

30 

31 # If no _charset was specified, check to see if there are non-ascii 

32 # characters present. If not, use 'us-ascii', otherwise use utf-8. 

33 # XXX: This can be removed once #7304 is fixed. 

34 if _charset is None: 

35 try: 

36 _text.encode('us-ascii') 

37 _charset = 'us-ascii' 

38 except UnicodeEncodeError: 

39 _charset = 'utf-8' 

40 

41 MIMENonMultipart.__init__(self, 'text', _subtype, 

42 **{'charset': _charset}) 

43 

44 self.set_payload(_text, _charset)