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

Method _explain_to

Lib/mailbox.py:1778–1827  ·  view source on GitHub ↗

Copy mbox- or MMDF-specific state to message insofar as possible.

(self, message)

Source from the content-addressed store, hash-verified

1776 self.set_flags(''.join(set(self.get_flags()) - set(flag)))
1777
1778 def _explain_to(self, message):
1779 """Copy mbox- or MMDF-specific state to message insofar as possible."""
1780 if isinstance(message, MaildirMessage):
1781 flags = set(self.get_flags())
1782 if 'O' in flags:
1783 message.set_subdir('cur')
1784 if 'F' in flags:
1785 message.add_flag('F')
1786 if 'A' in flags:
1787 message.add_flag('R')
1788 if 'R' in flags:
1789 message.add_flag('S')
1790 if 'D' in flags:
1791 message.add_flag('T')
1792 del message['status']
1793 del message['x-status']
1794 maybe_date = ' '.join(self.get_from().split()[-5:])
1795 try:
1796 message.set_date(calendar.timegm(time.strptime(maybe_date,
1797 '%a %b %d %H:%M:%S %Y')))
1798 except (ValueError, OverflowError):
1799 pass
1800 elif isinstance(message, _mboxMMDFMessage):
1801 message.set_flags(self.get_flags())
1802 message.set_from(self.get_from())
1803 elif isinstance(message, MHMessage):
1804 flags = set(self.get_flags())
1805 if 'R' not in flags:
1806 message.add_sequence('unseen')
1807 if 'A' in flags:
1808 message.add_sequence('replied')
1809 if 'F' in flags:
1810 message.add_sequence('flagged')
1811 del message['status']
1812 del message['x-status']
1813 elif isinstance(message, BabylMessage):
1814 flags = set(self.get_flags())
1815 if 'R' not in flags:
1816 message.add_label('unseen')
1817 if 'D' in flags:
1818 message.add_label('deleted')
1819 if 'A' in flags:
1820 message.add_label('answered')
1821 del message['status']
1822 del message['x-status']
1823 elif isinstance(message, Message):
1824 pass
1825 else:
1826 raise TypeError('Cannot convert to specified type: %s' %
1827 type(message))
1828
1829
1830class mboxMessage(_mboxMMDFMessage):

Callers

nothing calls this directly

Calls 13

get_flagsMethod · 0.95
get_fromMethod · 0.95
setFunction · 0.85
set_subdirMethod · 0.80
set_dateMethod · 0.80
set_fromMethod · 0.80
add_sequenceMethod · 0.80
add_labelMethod · 0.80
add_flagMethod · 0.45
joinMethod · 0.45
splitMethod · 0.45
strptimeMethod · 0.45

Tested by

no test coverage detected