MIME types
rigour.mime
This module handles the parsing and normalisation of internet MIME types in Python. This can be useful to normalise invalid, or misformatted MIME types emitted by remote web servers.
Usage
The simplest use is to normalise a MIME type:
from rigour.mime import normalize_mimetype
assert normalize_mimetype('TEXT/PLAIN') == 'text/plain'
assert normalize_mimetype('plain/text') == 'text/plain'
assert normalize_mimetype(None) == 'application/octet-stream'
assert normalize_mimetype('') == 'application/octet-stream'
Internally, rigour.mime
uses a MIMEType
object to handle parsing. It can be used to access more
specific information, like human readable labels:
from rigour.mime import parse_mimetype
parsed = parse_mimetype('text/plain')
assert parsed.family == 'text'
assert parsed.subtype == 'plain'
assert parsed.label == 'Plain text'
Open issues
- Internationalisation, i.e. make the human-readable labels available in multiple languages.
- Expand replacements for specific MIME types.
This module is an inlined version of the pantomime
library.
mimetype_extension(mime_type)
Infer a possible extension from a MIME type.
Source code in rigour/mime/filename.py
normalize_extension(extension)
Normalise a file name extension.
Source code in rigour/mime/filename.py
normalize_mimetype(text, default=DEFAULT)
parse_mimetype(text, default=DEFAULT)
useful_mimetype(text)
Check to see if the given mime type is a MIME type which is useful in terms of how to treat this file.