From 38fd362966d08b1a0badec0c0adde953a042dd56 Mon Sep 17 00:00:00 2001 From: Volodymyr Shymanskyy Date: Fri, 18 Oct 2024 12:46:06 +0300 Subject: [PATCH] Update mpy-tool Signed-off-by: Volodymyr Shymanskyy --- src/tools_vfs/lib/makeqstrdata.py | 93 +++++++++++++++---------------- src/tools_vfs/mpy-tool.py | 13 +---- 2 files changed, 48 insertions(+), 58 deletions(-) mode change 100644 => 100755 src/tools_vfs/mpy-tool.py diff --git a/src/tools_vfs/lib/makeqstrdata.py b/src/tools_vfs/lib/makeqstrdata.py index 844b860..df1bc6b 100644 --- a/src/tools_vfs/lib/makeqstrdata.py +++ b/src/tools_vfs/lib/makeqstrdata.py @@ -9,58 +9,55 @@ import re import sys -# Python 2/3 compatibility: +# Python 2/3/micro compatibility: # - iterating through bytes is different -# - codepoint2name lives in a different module -import platform - -if sys.implementation.name == 'micropython': - bytes_cons = bytes -elif platform.python_version_tuple()[0] == "2": +# - codepoint2name from html.entities is hard-coded +if sys.version_info[0] == 2: bytes_cons = lambda val, enc=None: bytearray(val) -elif platform.python_version_tuple()[0] == "3": +elif sys.version_info[0] == 3: # Also handles MicroPython bytes_cons = bytes -# end compatibility code - +# fmt: off codepoint2name = { - 198: 'AElig', 193: 'Aacute', 194: 'Acirc', 192: 'Agrave', 913: 'Alpha', 197: 'Aring', 195: 'Atilde', - 196: 'Auml', 914: 'Beta', 199: 'Ccedil', 935: 'Chi', 8225: 'Dagger', 916: 'Delta', 208: 'ETH', - 201: 'Eacute', 202: 'Ecirc', 200: 'Egrave', 917: 'Epsilon', 919: 'Eta', 203: 'Euml', 915: 'Gamma', - 205: 'Iacute', 206: 'Icirc', 204: 'Igrave', 921: 'Iota', 207: 'Iuml', 922: 'Kappa', 923: 'Lambda', - 924: 'Mu', 209: 'Ntilde', 925: 'Nu', 338: 'OElig', 211: 'Oacute', 212: 'Ocirc', 210: 'Ograve', - 937: 'Omega', 927: 'Omicron', 216: 'Oslash', 213: 'Otilde', 214: 'Ouml', 934: 'Phi', 928: 'Pi', - 8243: 'Prime', 936: 'Psi', 929: 'Rho', 352: 'Scaron', 931: 'Sigma', 222: 'THORN', 932: 'Tau', - 920: 'Theta', 218: 'Uacute', 219: 'Ucirc', 217: 'Ugrave', 933: 'Upsilon', 220: 'Uuml', 926: 'Xi', - 221: 'Yacute', 376: 'Yuml', 918: 'Zeta', 225: 'aacute', 226: 'acirc', 180: 'acute', 230: 'aelig', - 224: 'agrave', 8501: 'alefsym', 945: 'alpha', 38: 'amp', 8743: 'and', 8736: 'ang', 229: 'aring', - 8776: 'asymp', 227: 'atilde', 228: 'auml', 8222: 'bdquo', 946: 'beta', 166: 'brvbar', 8226: 'bull', - 8745: 'cap', 231: 'ccedil', 184: 'cedil', 162: 'cent', 967: 'chi', 710: 'circ', 9827: 'clubs', - 8773: 'cong', 169: 'copy', 8629: 'crarr', 8746: 'cup', 164: 'curren', 8659: 'dArr', 8224: 'dagger', - 8595: 'darr', 176: 'deg', 948: 'delta', 9830: 'diams', 247: 'divide', 233: 'eacute', 234: 'ecirc', - 232: 'egrave', 8709: 'empty', 8195: 'emsp', 8194: 'ensp', 949: 'epsilon', 8801: 'equiv', 951: 'eta', - 240: 'eth', 235: 'euml', 8364: 'euro', 8707: 'exist', 402: 'fnof', 8704: 'forall', 189: 'frac12', - 188: 'frac14', 190: 'frac34', 8260: 'frasl', 947: 'gamma', 8805: 'ge', 62: 'gt', 8660: 'hArr', - 8596: 'harr', 9829: 'hearts', 8230: 'hellip', 237: 'iacute', 238: 'icirc', 161: 'iexcl', 236: 'igrave', - 8465: 'image', 8734: 'infin', 8747: 'int', 953: 'iota', 191: 'iquest', 8712: 'isin', 239: 'iuml', - 954: 'kappa', 8656: 'lArr', 955: 'lambda', 9001: 'lang', 171: 'laquo', 8592: 'larr', 8968: 'lceil', - 8220: 'ldquo', 8804: 'le', 8970: 'lfloor', 8727: 'lowast', 9674: 'loz', 8206: 'lrm', 8249: 'lsaquo', - 8216: 'lsquo', 60: 'lt', 175: 'macr', 8212: 'mdash', 181: 'micro', 183: 'middot', 8722: 'minus', - 956: 'mu', 8711: 'nabla', 160: 'nbsp', 8211: 'ndash', 8800: 'ne', 8715: 'ni', 172: 'not', 8713: 'notin', - 8836: 'nsub', 241: 'ntilde', 957: 'nu', 243: 'oacute', 244: 'ocirc', 339: 'oelig', 242: 'ograve', - 8254: 'oline', 969: 'omega', 959: 'omicron', 8853: 'oplus', 8744: 'or', 170: 'ordf', 186: 'ordm', - 248: 'oslash', 245: 'otilde', 8855: 'otimes', 246: 'ouml', 182: 'para', 8706: 'part', 8240: 'permil', - 8869: 'perp', 966: 'phi', 960: 'pi', 982: 'piv', 177: 'plusmn', 163: 'pound', 8242: 'prime', - 8719: 'prod', 8733: 'prop', 968: 'psi', 34: 'quot', 8658: 'rArr', 8730: 'radic', 9002: 'rang', - 187: 'raquo', 8594: 'rarr', 8969: 'rceil', 8221: 'rdquo', 8476: 'real', 174: 'reg', 8971: 'rfloor', - 961: 'rho', 8207: 'rlm', 8250: 'rsaquo', 8217: 'rsquo', 8218: 'sbquo', 353: 'scaron', 8901: 'sdot', - 167: 'sect', 173: 'shy', 963: 'sigma', 962: 'sigmaf', 8764: 'sim', 9824: 'spades', 8834: 'sub', - 8838: 'sube', 8721: 'sum', 8835: 'sup', 185: 'sup1', 178: 'sup2', 179: 'sup3', 8839: 'supe', - 223: 'szlig', 964: 'tau', 8756: 'there4', 952: 'theta', 977: 'thetasym', 8201: 'thinsp', 254: 'thorn', - 732: 'tilde', 215: 'times', 8482: 'trade', 8657: 'uArr', 250: 'uacute', 8593: 'uarr', 251: 'ucirc', - 249: 'ugrave', 168: 'uml', 978: 'upsih', 965: 'upsilon', 252: 'uuml', 8472: 'weierp', 958: 'xi', - 253: 'yacute', 165: 'yen', 255: 'yuml', 950: 'zeta', 8205: 'zwj', 8204: 'zwnj' + 198: "AElig", 193: "Aacute", 194: "Acirc", 192: "Agrave", 913: "Alpha", 197: "Aring", 195: "Atilde", + 196: "Auml", 914: "Beta", 199: "Ccedil", 935: "Chi", 8225: "Dagger", 916: "Delta", 208: "ETH", + 201: "Eacute", 202: "Ecirc", 200: "Egrave", 917: "Epsilon", 919: "Eta", 203: "Euml", 915: "Gamma", + 205: "Iacute", 206: "Icirc", 204: "Igrave", 921: "Iota", 207: "Iuml", 922: "Kappa", 923: "Lambda", + 924: "Mu", 209: "Ntilde", 925: "Nu", 338: "OElig", 211: "Oacute", 212: "Ocirc", 210: "Ograve", + 937: "Omega", 927: "Omicron", 216: "Oslash", 213: "Otilde", 214: "Ouml", 934: "Phi", 928: "Pi", + 8243: "Prime", 936: "Psi", 929: "Rho", 352: "Scaron", 931: "Sigma", 222: "THORN", 932: "Tau", + 920: "Theta", 218: "Uacute", 219: "Ucirc", 217: "Ugrave", 933: "Upsilon", 220: "Uuml", 926: "Xi", + 221: "Yacute", 376: "Yuml", 918: "Zeta", 225: "aacute", 226: "acirc", 180: "acute", 230: "aelig", + 224: "agrave", 8501: "alefsym", 945: "alpha", 38: "amp", 8743: "and", 8736: "ang", 229: "aring", + 8776: "asymp", 227: "atilde", 228: "auml", 8222: "bdquo", 946: "beta", 166: "brvbar", 8226: "bull", + 8745: "cap", 231: "ccedil", 184: "cedil", 162: "cent", 967: "chi", 710: "circ", 9827: "clubs", + 8773: "cong", 169: "copy", 8629: "crarr", 8746: "cup", 164: "curren", 8659: "dArr", 8224: "dagger", + 8595: "darr", 176: "deg", 948: "delta", 9830: "diams", 247: "divide", 233: "eacute", 234: "ecirc", + 232: "egrave", 8709: "empty", 8195: "emsp", 8194: "ensp", 949: "epsilon", 8801: "equiv", 951: "eta", + 240: "eth", 235: "euml", 8364: "euro", 8707: "exist", 402: "fnof", 8704: "forall", 189: "frac12", + 188: "frac14", 190: "frac34", 8260: "frasl", 947: "gamma", 8805: "ge", 62: "gt", 8660: "hArr", + 8596: "harr", 9829: "hearts", 8230: "hellip", 237: "iacute", 238: "icirc", 161: "iexcl", 236: "igrave", + 8465: "image", 8734: "infin", 8747: "int", 953: "iota", 191: "iquest", 8712: "isin", 239: "iuml", + 954: "kappa", 8656: "lArr", 955: "lambda", 9001: "lang", 171: "laquo", 8592: "larr", 8968: "lceil", + 8220: "ldquo", 8804: "le", 8970: "lfloor", 8727: "lowast", 9674: "loz", 8206: "lrm", 8249: "lsaquo", + 8216: "lsquo", 60: "lt", 175: "macr", 8212: "mdash", 181: "micro", 183: "middot", 8722: "minus", + 956: "mu", 8711: "nabla", 160: "nbsp", 8211: "ndash", 8800: "ne", 8715: "ni", 172: "not", 8713: "notin", + 8836: "nsub", 241: "ntilde", 957: "nu", 243: "oacute", 244: "ocirc", 339: "oelig", 242: "ograve", + 8254: "oline", 969: "omega", 959: "omicron", 8853: "oplus", 8744: "or", 170: "ordf", 186: "ordm", + 248: "oslash", 245: "otilde", 8855: "otimes", 246: "ouml", 182: "para", 8706: "part", 8240: "permil", + 8869: "perp", 966: "phi", 960: "pi", 982: "piv", 177: "plusmn", 163: "pound", 8242: "prime", + 8719: "prod", 8733: "prop", 968: "psi", 34: "quot", 8658: "rArr", 8730: "radic", 9002: "rang", + 187: "raquo", 8594: "rarr", 8969: "rceil", 8221: "rdquo", 8476: "real", 174: "reg", 8971: "rfloor", + 961: "rho", 8207: "rlm", 8250: "rsaquo", 8217: "rsquo", 8218: "sbquo", 353: "scaron", 8901: "sdot", + 167: "sect", 173: "shy", 963: "sigma", 962: "sigmaf", 8764: "sim", 9824: "spades", 8834: "sub", + 8838: "sube", 8721: "sum", 8835: "sup", 185: "sup1", 178: "sup2", 179: "sup3", 8839: "supe", + 223: "szlig", 964: "tau", 8756: "there4", 952: "theta", 977: "thetasym", 8201: "thinsp", 254: "thorn", + 732: "tilde", 215: "times", 8482: "trade", 8657: "uArr", 250: "uacute", 8593: "uarr", 251: "ucirc", + 249: "ugrave", 168: "uml", 978: "upsih", 965: "upsilon", 252: "uuml", 8472: "weierp", 958: "xi", + 253: "yacute", 165: "yen", 255: "yuml", 950: "zeta", 8205: "zwj", 8204: "zwnj" } +# fmt: on +# end compatibility code codepoint2name[ord("-")] = "hyphen" @@ -348,7 +345,7 @@ def compute_hash(qstr, bytes_hash): def qstr_escape(qst): def esc_char(c): - if re.match(r'^[a-zA-Z0-9_]$', c): + if re.match(r"^[a-zA-Z0-9_]$", c): return c c = ord(c) try: @@ -357,7 +354,7 @@ def esc_char(c): name = "0x%02x" % c return "_" + name + "_" - return ''.join(map(esc_char, qst)) + return "".join(map(esc_char, qst)) static_qstr_list_ident = list(map(qstr_escape, static_qstr_list)) diff --git a/src/tools_vfs/mpy-tool.py b/src/tools_vfs/mpy-tool.py old mode 100644 new mode 100755 index 2bee530..29e6d5c --- a/src/tools_vfs/mpy-tool.py +++ b/src/tools_vfs/mpy-tool.py @@ -26,17 +26,9 @@ # Python 2/3 compatibility code from __future__ import print_function -import platform import sys -if sys.implementation.name == 'micropython': - py_ver = "mpy" -elif platform.python_version_tuple()[0] == "2": - py_ver = "2" -elif platform.python_version_tuple()[0] == "3": - py_ver = "3" - -if py_ver == "2": +if sys.version_info[0] == 2: from binascii import hexlify as hexlify_py2 str_cons = lambda val, enc=None: str(val) @@ -49,7 +41,7 @@ def hexlify_to_str(b): x = hexlify_py2(b) return ":".join(x[i : i + 2] for i in range(0, len(x), 2)) -elif py_ver in ("3", "mpy"): +elif sys.version_info[0] == 3: # Also handles MicroPython from binascii import hexlify str_cons = str @@ -1088,6 +1080,7 @@ def __init__( MP_NATIVE_ARCH_X64, MP_NATIVE_ARCH_XTENSA, MP_NATIVE_ARCH_XTENSAWIN, + MP_NATIVE_ARCH_RV32IMC, ): self.fun_data_attributes = '__attribute__((section(".text,\\"ax\\",@progbits # ")))' else: