# HG changeset patch # User Paul Boddie # Date 1443451970 -7200 # Node ID fd9030f95edad9e1a3ba8089e77d91a2c995dae2 # Parent 0036129e8c5357417361c1987995592cd05f5ee2 Added more informative serialisation errors. diff -r 0036129e8c53 -r fd9030f95eda vContent.py --- a/vContent.py Mon Sep 28 15:22:33 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.