From 0a08b8d3fc06d091ce1e25490df026105ce0e1fb Mon Sep 17 00:00:00 2001 From: rocky Date: Sat, 17 Feb 2024 19:46:57 -0500 Subject: [PATCH] Simplify double quote preference in string --- uncompyle6/scanner.py | 8 ++++---- uncompyle6/scanners/scanner3.py | 2 +- uncompyle6/scanners/scanner37base.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/uncompyle6/scanner.py b/uncompyle6/scanner.py index 474856e5..46124aec 100644 --- a/uncompyle6/scanner.py +++ b/uncompyle6/scanner.py @@ -24,7 +24,7 @@ scanners, e.g. for Python 2.7 or 3.4. from array import array from collections import namedtuple from types import ModuleType -from typing import Optional, Tuple, Union +from typing import Optional, Union import xdis from xdis import ( @@ -654,9 +654,9 @@ def prefer_double_quote(string: str) -> str: Prefer a double quoted string over a single quoted string when possible """ - if string.find("'") == -1: - return f'"{string}"' - return repr(string) + if string.find("'") == -1 and not string.startswith("'''"): + return f'"{string[1:-2]}"' + return string if __name__ == "__main__": diff --git a/uncompyle6/scanners/scanner3.py b/uncompyle6/scanners/scanner3.py index 7058cbac..6f8533e9 100644 --- a/uncompyle6/scanners/scanner3.py +++ b/uncompyle6/scanners/scanner3.py @@ -612,7 +612,7 @@ class Scanner3(Scanner): pattr = "" elif isinstance(const, str): opname = "LOAD_STR" - pattr = prefer_double_quote(inst.argval) + pattr = prefer_double_quote(inst.argrepr) else: if isinstance(inst.arg, int) and inst.arg < len(co.co_consts): argval, _ = _get_const_info(inst.arg, co.co_consts) diff --git a/uncompyle6/scanners/scanner37base.py b/uncompyle6/scanners/scanner37base.py index 257fc79f..69e010ea 100644 --- a/uncompyle6/scanners/scanner37base.py +++ b/uncompyle6/scanners/scanner37base.py @@ -386,7 +386,7 @@ class Scanner37Base(Scanner): pattr = "" elif isinstance(const, str): opname = "LOAD_STR" - pattr = prefer_double_quote(inst.argval) + pattr = prefer_double_quote(inst.argrepr) else: if isinstance(inst.arg, int) and inst.arg < len(co.co_consts): argval, _ = _get_const_info(inst.arg, co.co_consts)