X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=mimedecode%2Fformatparam_27.py;fp=mimedecode%2Fformatparam_27.py;h=9abbebe02d287677117d6ffa442669ed733c6e33;hb=0d9cead275145c7e37e9acc6c1bd62bbbfd09f2e;hp=0000000000000000000000000000000000000000;hpb=53ddd45e88a7cbabb8555b3ae6e1c2a513da8e1f;p=mimedecode.git diff --git a/mimedecode/formatparam_27.py b/mimedecode/formatparam_27.py new file mode 100644 index 0000000..9abbebe --- /dev/null +++ b/mimedecode/formatparam_27.py @@ -0,0 +1,26 @@ +from email import message +from email import utils + + +def _formatparam(param, value=None, quote=True): + """This is _formatparam from Python 2.7""" + if value is not None and len(value) > 0: + # A tuple is used for RFC 2231 encoded parameter values where items + # are (charset, language, value). charset is a string, not a Charset + # instance. + if isinstance(value, tuple): + # Encode as per RFC 2231 + param += '*' + value = utils.encode_rfc2231(value[2], value[0], value[1]) + # BAW: Please check this. I think that if quote is set it should + # force quoting even if not necessary. + if quote or message.tspecials.search(value): + return '%s="%s"' % (param, utils.quote(value)) + else: + return '%s=%s' % (param, value) + else: + return param + + +# Replace with this _formatparam to avoid re-encoding non-ascii params +message._formatparam = _formatparam