1
# Copyright (c) 2009-2010 testtools developers. See LICENSE for details.
3
"""ContentType - a MIME Content Type."""
6
class ContentType(object):
7
"""A content type from http://www.iana.org/assignments/media-types/
9
:ivar type: The primary type, e.g. "text" or "application"
10
:ivar subtype: The subtype, e.g. "plain" or "octet-stream"
11
:ivar parameters: A dict of additional parameters specific to the
15
def __init__(self, primary_type, sub_type, parameters=None):
16
"""Create a ContentType."""
17
if None in (primary_type, sub_type):
18
raise ValueError("None not permitted in %r, %r" % (
19
primary_type, sub_type))
20
self.type = primary_type
21
self.subtype = sub_type
22
self.parameters = parameters or {}
24
def __eq__(self, other):
25
if type(other) != ContentType:
27
return self.__dict__ == other.__dict__
30
return "%s/%s params=%s" % (self.type, self.subtype, self.parameters)
33
UTF8_TEXT = ContentType('text', 'plain', {'charset': 'utf8'})