# HG changeset patch # User Paul Boddie # Date 1443451970 -7200 # Node ID b28a84c6c886e03ec741736feaedd1f7343a1ebe # Parent 587642552f6eafae898454c187e8cec254677b2f Added more informative serialisation errors. diff -r 587642552f6e -r b28a84c6c886 vContent.py --- a/vContent.py Thu Sep 10 00:27:50 2015 +0200 +++ b/vContent.py Mon Sep 28 16:52:50 2015 +0200 @@ -62,6 +62,12 @@ pass +class WriteError(Exception): + + "General writing errors." + + pass + # Reader and parser classes. class Reader: @@ -570,12 +576,15 @@ encoding = parameters.get("ENCODING") charset = parameters.get("CHARSET") - if encoding == "QUOTED-PRINTABLE": - value = quopri.encodestring(value.encode(charset or "iso-8859-1")) - elif encoding == "BASE64": - value = base64.encodestring(value) + try: + if encoding == "QUOTED-PRINTABLE": + value = quopri.encodestring(value.encode(charset or "iso-8859-1")) + elif encoding == "BASE64": + value = base64.encodestring(value) - return self.encode_content(value) + return self.encode_content(value) + except TypeError: + raise WriteError, "Property %r value with parameters %r cannot be encoded: %r" % (name, parameters, value) # Overrideable methods.