Skip to content

Commit

Permalink
Added parsing of Content-Type to RFC 6350.
Browse files Browse the repository at this point in the history
  • Loading branch information
Lance Helsten committed Aug 24, 2012
1 parent 9972bc0 commit dc38eff
Showing 1 changed file with 19 additions and 4 deletions.
23 changes: 19 additions & 4 deletions rfc6350/parameter.py
Expand Up @@ -24,6 +24,7 @@
import string
import re

from rfc2045 import ContentType
from rfc5646 import LanguageTag

__all__ = ['build_parameter']
Expand Down Expand Up @@ -160,6 +161,14 @@ def parse_value(self, value):
except ValueError as err:
self.raise_invalid_value(value)

def check_value(self, value):
if isinstance(value, str):
value = LanguageTag(value)
elif isinstance(value, LanguageTag):
return value
else:
return None

class ValueParam(Parameter):
"""`§ 5.2 <http://tools.ietf.org/html/rfc6350#section-5.2>`_"""
param_abnf = '''value-param = "VALUE=" value-type'''
Expand Down Expand Up @@ -277,12 +286,18 @@ class MediatypeParam(Parameter):
param_name = 'MEDIATYPE'

def parse_value(self, value):
#TODO
return value
try:
return ContentType(value)
except ValueError as err:
self.raise_invalid_value(value)

def check_value(self, value):
#TODO
return value
if isinstance(value, str):
value = ContentType(value)
elif isinstance(value, ContentType):
return value
else:
return None


class CalscaleParam(Parameter):
Expand Down

0 comments on commit dc38eff

Please sign in to comment.