diff --git a/implementations/python/preserves/binary.py b/implementations/python/preserves/binary.py index 5704b4c..0cf2a7b 100644 --- a/implementations/python/preserves/binary.py +++ b/implementations/python/preserves/binary.py @@ -200,6 +200,8 @@ class Encoder(BinaryCodec): try: i = iter(v) except TypeError: + i = None + if i is None: raise TypeError('Cannot preserves-encode: ' + repr(v)) self.encodevalues(5, i) diff --git a/implementations/python/preserves/text.py b/implementations/python/preserves/text.py index c36a739..bb368bb 100644 --- a/implementations/python/preserves/text.py +++ b/implementations/python/preserves/text.py @@ -389,6 +389,8 @@ class Formatter(TextCodec): try: i = iter(v) except TypeError: + i = None + if i is None: raise TypeError('Cannot preserves-format: ' + repr(v)) self.write_seq('[', ']', i)