From 09b4218b83b0daa43b94a06dfbc312ac79b1d1b4 Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Fri, 17 May 2019 17:11:45 -0400 Subject: [PATCH] py3: recursive forcing to unicode missed converting set() This resulted in e.g. ebook-convert-complete still storing most formats in msgpack as bytestrings, and therefore not being completed. --- src/polyglot/builtins.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/polyglot/builtins.py b/src/polyglot/builtins.py index 12781595b1..32dffe7173 100644 --- a/src/polyglot/builtins.py +++ b/src/polyglot/builtins.py @@ -38,12 +38,12 @@ def as_unicode(x, encoding='utf-8', errors='strict'): def only_unicode_recursive(x, encoding='utf-8', errors='strict'): - # Convert any bytestrings in lists/tuples/dicts to unicode + # Convert any bytestrings in sets/lists/tuples/dicts to unicode if isinstance(x, bytes): return x.decode(encoding, errors) if isinstance(x, unicode_type): return x - if isinstance(x, (list, tuple)): + if isinstance(x, (set, list, tuple)): return type(x)(only_unicode_recursive(i, encoding, errors) for i in x) if isinstance(x, dict): return {only_unicode_recursive(k, encoding, errors): only_unicode_recursive(v, encoding, errors) for k, v in iteritems(x)}