Add the concept of a "default type". Normally the default type is

text/plain but the RFCs state that inside a multipart/digest, the
default type is message/rfc822.  To preserve idempotency, we need a
separate place to define the default type than the Content-Type:
header.

get_default_type(), set_default_type(): Accessor and mutator methods
for the default type.
This commit is contained in:
Barry Warsaw 2002-07-09 02:46:12 +00:00
parent bb493a7039
commit a0c8b9d4d5
1 changed files with 22 additions and 0 deletions

View File

@ -79,6 +79,8 @@ class Message:
self._charset = None
# Defaults for multipart messages
self.preamble = self.epilogue = None
# Default content type
self._default_type = 'text/plain'
def __str__(self):
"""Return the entire formatted message as a string.
@ -395,6 +397,26 @@ class Message:
return ctype.split('/')[1]
return failobj
def get_default_type(self):
"""Return the `default' content type.
Most messages have a default content type of text/plain, except for
messages that are subparts of multipart/digest containers. Such
subparts then have a default content type of message/rfc822.
"""
return self._default_type
def set_default_type(self, ctype):
"""Set the `default' content type.
ctype must be either "text/plain" or "message/rfc822". The default
content type is not stored in the Content-Type: header.
"""
if ctype not in ('text/plain', 'message/rfc822'):
raise ValueError(
'first arg must be either "text/plain" or "message/rfc822"')
self._default_type = ctype
def _get_params_preserve(self, failobj, header):
# Like get_params() but preserves the quoting of values. BAW:
# should this be part of the public interface?