.. attribute:: message_factory
A factory function for constructing a new empty message object. Used
- by the parser when building messages. Defaults to
- :class:`~email.message.Message`.
+ by the parser when building messages. Defaults to ``None``, in
+ which case :class:`~email.message.Message` is used.
.. versionadded:: 3.6
serialized by a generator. Default: True.
message_factory -- the class to use to create new message objects.
+ If the value is None, the default is Message.
"""
cte_type = '8bit'
max_line_length = 78
mangle_from_ = False
- # XXX To avoid circular imports, this is set in email.message.
message_factory = None
def handle_defect(self, obj, defect):
self.policy = policy
self._old_style_factory = False
if _factory is None:
- self._factory = policy.message_factory
+ if policy.message_factory is None:
+ from email.message import Message
+ self._factory = Message
+ else:
+ self._factory = policy.message_factory
else:
self._factory = _factory
try:
super().set_content(*args, **kw)
if 'MIME-Version' not in self:
self['MIME-Version'] = '1.0'
-
-# Set message_factory on Policy here to avoid a circular import.
-Policy.message_factory = Message
'cte_type': '8bit',
'raise_on_defect': False,
'mangle_from_': True,
- 'message_factory': email.message.Message,
+ 'message_factory': None,
}
# These default values are the ones set on email.policy.default.
# If any of these defaults change, the docs must be updated.