Source code for pOCCI.render
import re
from render_json import *
from render_http import *
from render_text import *
from render_uri import *
mimetypes = [
'text/plain',
'text/occi+plain',
'text/occi',
'text/uri-list',
'application/occi+json',
]
[docs]def parse_mimetype(mimetype):
""" Parse mimetype name string.
Example::
text/plain; charset=iso-8859-1
:param string mimetype: mimetype
:result: (mimetype, charset) tuple
:rtype: (string, string)
"""
charset = None
m = re.split(r';\s*', mimetype, 2)
if len(m) > 2:
return (None, None)
if len(m) == 2:
charset = m[1]
return (m[0], charset)
[docs]def create_renderer(req_mimetype):
"""Create OCCI Renderer.
:param string req_mimetype: requested mimetype
:return: renderer or None
:rtype: RenderBase
"""
renderer = None
mimetype, charset = parse_mimetype(req_mimetype)
if mimetype in ['text/plain', 'text/occi+plain']:
renderer = TextRenderer()
elif mimetype in ['text/occi']:
renderer = HTTPHeadersRenderer()
elif mimetype in ['text/uri-list']:
renderer = URIListRenderer()
elif mimetype in ['application/occi+json']:
renderer = JSONRenderer()
return renderer