From: Luca Boccassi Date: Tue, 19 Jan 2021 11:57:46 +0000 (+0000) Subject: tools: make update-dbus-docs compatible with Python 3.7 X-Git-Tag: v248-rc1~239^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=668b3a42fe9e250912bd3efa4460ed691452d9bf;p=thirdparty%2Fsystemd.git tools: make update-dbus-docs compatible with Python 3.7 Debian Stable uses Python 3.7, but there are a couple of 3.8 features used in the script. Add fallbacks. --- diff --git a/tools/update-dbus-docs.py b/tools/update-dbus-docs.py index ebe67af836f..269b2196a26 100755 --- a/tools/update-dbus-docs.py +++ b/tools/update-dbus-docs.py @@ -18,6 +18,11 @@ try: except ImportError as e: shlex_join = e +try: + from shlex import quote as shlex_quote +except ImportError as e: + shlex_quote = e + class NoCommand(Exception): pass @@ -186,7 +191,10 @@ def subst_output(document, programlisting, stats): interface = programlisting.get('interface') argv = [f'{opts.build_dir}/{executable}', f'--bus-introspect={interface}'] - print(f'COMMAND: {shlex_join(argv)}') + if isinstance(shlex_join, Exception): + print(f'COMMAND: {" ".join(shlex_quote(arg) for arg in argv)}') + else: + print(f'COMMAND: {shlex_join(argv)}') try: out = subprocess.check_output(argv, text=True) @@ -296,7 +304,7 @@ def parse_args(): if __name__ == '__main__': opts = parse_args() - for item in (etree, shlex_join): + for item in (etree, shlex_quote): if isinstance(item, Exception): print(item, file=sys.stderr) exit(77 if opts.test else 1) @@ -308,7 +316,7 @@ if __name__ == '__main__': # Let's print all statistics at the end mlen = max(len(page) for page in stats) - total = sum((item['stats'] for item in stats.values()), start=collections.Counter()) + total = sum((item['stats'] for item in stats.values()), collections.Counter()) total = 'total', dict(stats=total, outdated=False) outdated = [] for page, info in sorted(stats.items()) + [total]: