arguments: fix compat with argcomplete 1.8 (MR 2134)

When running pmbootstrap on debian bullseye with the distro's
python3-argcomplete 1.8 from 2017, tab completion was broken. After
disabling stderr redirect to /dev/null, the error appeared:
  TypeError: package_completer() missing 1 required positional argument: 'parser'

Support this ancient version of argcomplete too by setting None as
default value for parser (we don't use it anyway).

Related: https://wiki.postmarketos.org/wiki/Pmbootstrap_development_guide#Debugging_tab_completion_.28argparse.29
This commit is contained in:
Oliver Smith 2021-10-21 11:18:25 +02:00
parent 8ace36113c
commit 152bd6753c
No known key found for this signature in database
GPG Key ID: 5AE7F5513E0885CB
1 changed files with 2 additions and 2 deletions

View File

@ -502,7 +502,7 @@ def arguments_status(subparser):
return ret
def package_completer(prefix, action, parser, parsed_args):
def package_completer(prefix, action, parser=None, parsed_args=None):
args = parsed_args
pmb.config.merge_with_args(args)
pmb.helpers.args.replace_placeholders(args)
@ -513,7 +513,7 @@ def package_completer(prefix, action, parser, parsed_args):
return packages
def kernel_completer(prefix, action, parser, parsed_args):
def kernel_completer(prefix, action, parser=None, parsed_args=None):
packages = package_completer("linux-" + prefix, action, parser,
parsed_args)
return [package.replace("linux-", "", 1) for package in packages]