MCPcopy Index your code
hub / github.com/python/cpython / _find_body

Method _find_body

Lib/email/message.py:1021–1048  ·  view source on GitHub ↗
(self, part, preferencelist)

Source from the content-addressed store, hash-verified

1019 return False if c_d is None else c_d.content_disposition == 'attachment'
1020
1021 def _find_body(self, part, preferencelist):
1022 if part.is_attachment():
1023 return
1024 maintype, subtype = part.get_content_type().split('/')
1025 if maintype == 'text':
1026 if subtype in preferencelist:
1027 yield (preferencelist.index(subtype), part)
1028 return
1029 if maintype != 'multipart' or not self.is_multipart():
1030 return
1031 if subtype != 'related':
1032 for subpart in part.iter_parts():
1033 yield from self._find_body(subpart, preferencelist)
1034 return
1035 if 'related' in preferencelist:
1036 yield (preferencelist.index('related'), part)
1037 candidate = None
1038 start = part.get_param('start')
1039 if start:
1040 for subpart in part.iter_parts():
1041 if subpart['content-id'] == start:
1042 candidate = subpart
1043 break
1044 if candidate is None:
1045 subparts = part.get_payload()
1046 candidate = subparts[0] if subparts else None
1047 if candidate is not None:
1048 yield from self._find_body(candidate, preferencelist)
1049
1050 def get_body(self, preferencelist=('related', 'html', 'plain')):
1051 """Return best candidate mime part for display as 'body' of message.

Callers 1

get_bodyMethod · 0.95

Calls 8

is_attachmentMethod · 0.80
get_content_typeMethod · 0.80
is_multipartMethod · 0.80
get_paramMethod · 0.80
get_payloadMethod · 0.80
splitMethod · 0.45
indexMethod · 0.45
iter_partsMethod · 0.45

Tested by

no test coverage detected