From ce8ee78993afdc6d1ce7bb79b645a8a07c1efe64 Mon Sep 17 00:00:00 2001 From: Mark Ganson TheMarkster <39143564+mwganson@users.noreply.github.com> Date: Fri, 14 Sep 2018 13:01:06 -0500 Subject: [PATCH] addon manager py3 fixes Only decode / encode if on py2 except for the b'\xc2\xa0', replace, which must be decoded to create the unicode string. --- src/Mod/AddonManager/AddonManager.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/Mod/AddonManager/AddonManager.py b/src/Mod/AddonManager/AddonManager.py index c07a078986..153b1c7ad0 100644 --- a/src/Mod/AddonManager/AddonManager.py +++ b/src/Mod/AddonManager/AddonManager.py @@ -681,18 +681,15 @@ class Macro(object): from HTMLParser import HTMLParser except ImportError: from html.parser import HTMLParser - try: + if sys.version_info.major < 3: code = code.decode('utf8') + try: code = HTMLParser().unescape(code) - code = code.encode('utf8') - code = code.replace('\xc2\xa0', ' ') + code = code.replace(b'\xc2\xa0'.decode("utf-8"), ' ') except: - #HTMLParser().unescape() didn't work, so try manually - try: - code = code.replace('>','>').replace('<','<').replace(' ','').replace('&','&').replace('\xc2\xa0', ' ') - code = code.replace('\t',' ')#some macros in the wiki have tabs interspersed, this might fix some of them - except: - FreeCAD.Console.PrintWarning(translate("AddonsInstaller", "Unable to clean macro code: ") + code + '\n') + FreeCAD.Console.PrintWarning(translate("AddonsInstaller", "Unable to clean macro code: ") + code + '\n') + if sys.version_info.major < 3: + code = code.encode('utf8') desc = re.findall("(.*?)<\/td>", p.replace('\n', ' ')) if desc: desc = desc[0]