From f4def636b93e195505641f9a1125cd3cd51e4edd Mon Sep 17 00:00:00 2001 From: David Aguilar Date: Wed, 25 Aug 2021 00:07:01 -0700 Subject: [PATCH] main: adjust argparse usage for older Python versions Limit the argparse update from fb210c07805e9c0b3f7fec0370ac36396070a9b7 by making it active on newer versions of Python only. This fixes a regression on older versions of Python, eg. 2.7.5 on RHEL 7.9, where this usage prevents sub-commands from working properly. Closes #1155 Reported-by: Andreas Schnederle-Wagner Signed-off-by: David Aguilar --- CHANGES.rst | 5 +++++ cola/main.py | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 0ca99b1e..19a0c0af 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -21,6 +21,11 @@ Usability, bells and whistles (`#1149 `_) (`#1110 `_) +Fixes +----- +* The `argparse` usage was adjusted to remain compatible with older Pythons. + (`#1155 `_) + Packaging --------- * The Windows installer was slimmed down by removing unused Qt DLLs. diff --git a/cola/main.py b/cola/main.py index 64e3d409..09a205be 100644 --- a/cola/main.py +++ b/cola/main.py @@ -33,10 +33,12 @@ def winmain(): def parse_args(argv): parser = argparse.ArgumentParser() - # Newer versions of argpares (Python 3.8+) emit an error message for + # Newer versions of argpares (Python 3.6+) emit an error message for # "--help-commands" unless we register the flag on the main parser. - add_help_options(parser) - parser.set_defaults(func=lambda _: parser.print_help()) + python_version = (sys.version_info[0], sys.version_info[1]) + if python_version >= (3, 6): + add_help_options(parser) + parser.set_defaults(func=lambda _: parser.print_help()) subparser = parser.add_subparsers(title='valid commands') add_cola_command(subparser) -- 2.11.4.GIT