]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Add the concept of a "default type". Normally the default type is
authorBarry Warsaw <barry@python.org>
Tue, 9 Jul 2002 02:46:12 +0000 (02:46 +0000)
committerBarry Warsaw <barry@python.org>
Tue, 9 Jul 2002 02:46:12 +0000 (02:46 +0000)
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.

Lib/email/Message.py

index d6f59f4cc47108ec557a867e5e1277d63bd35537..5e8d32fd85e9089d6f0b2654cd5e9f2987afce96 100644 (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?