Add ContentType class.
[third_party/subunit] / python / subunit / content_type.py
1 #
2 #  subunit: extensions to Python unittest to get test results from subprocesses.
3 #  Copyright (C) 2009  Robert Collins <robertc@robertcollins.net>
4 #
5 #  Licensed under either the Apache License, Version 2.0 or the BSD 3-clause
6 #  license at the users choice. A copy of both licenses are available in the
7 #  project source as Apache-2.0 and BSD. You may not use this file except in
8 #  compliance with one of these two licences.
9 #  
10 #  Unless required by applicable law or agreed to in writing, software
11 #  distributed under these licenses is distributed on an "AS IS" BASIS, WITHOUT
12 #  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
13 #  license you chose for the specific language governing permissions and
14 #  limitations under that license.
15 #
16
17 """ContentType - a MIME Content Type."""
18
19 class ContentType(object):
20     """A content type from http://www.iana.org/assignments/media-types/
21     
22     :ivar type: The primary type, e.g. "text" or "application"
23     :ivar subtype: The subtype, e.g. "plain" or "octet-stream"
24     :ivar parameters: A dict of additional parameters specific to the
25     content type.
26     """
27
28     def __init__(self, primary_type, sub_type, parameters=None):
29         """Create a ContentType."""
30         if None in (primary_type, sub_type):
31             raise ValueError("None not permitted in %r, %r" % (
32                 primary_type, sub_type))
33         self.type = primary_type
34         self.subtype = sub_type
35         self.parameters = parameters or {}