pmb.parse: add get_parser for returning ArgumentParser obj (MR 2266)
This is needed for sphinx autoprogram since that expects an argparse.ArgumentParser, and arguments() returns some argparse "Namespace" obj. Useful for sphinx/autoprogram and maybe other things later that want to get at pmb's full args.
This commit is contained in:
parent
a5575a28f9
commit
415e7364f4
|
@ -1,6 +1,6 @@
|
||||||
# Copyright 2023 Oliver Smith
|
# Copyright 2023 Oliver Smith
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
from pmb.parse.arguments import arguments, arguments_install, arguments_flasher
|
from pmb.parse.arguments import arguments, arguments_install, arguments_flasher, get_parser
|
||||||
from pmb.parse._apkbuild import apkbuild
|
from pmb.parse._apkbuild import apkbuild
|
||||||
from pmb.parse._apkbuild import function_body
|
from pmb.parse._apkbuild import function_body
|
||||||
from pmb.parse.binfmt_info import binfmt_info
|
from pmb.parse.binfmt_info import binfmt_info
|
||||||
|
|
|
@ -624,7 +624,7 @@ def add_kernel_arg(subparser, name="package", nargs="?", *args, **kwargs):
|
||||||
arg.completer = kernel_completer
|
arg.completer = kernel_completer
|
||||||
|
|
||||||
|
|
||||||
def arguments():
|
def get_parser():
|
||||||
parser = argparse.ArgumentParser(prog="pmbootstrap")
|
parser = argparse.ArgumentParser(prog="pmbootstrap")
|
||||||
arch_native = pmb.config.arch_native
|
arch_native = pmb.config.arch_native
|
||||||
arch_choices = set(pmb.config.build_device_architectures + [arch_native])
|
arch_choices = set(pmb.config.build_device_architectures + [arch_native])
|
||||||
|
@ -930,8 +930,13 @@ def arguments():
|
||||||
if "argcomplete" in sys.modules:
|
if "argcomplete" in sys.modules:
|
||||||
argcomplete.autocomplete(parser, always_complete_options="long")
|
argcomplete.autocomplete(parser, always_complete_options="long")
|
||||||
|
|
||||||
|
return parser
|
||||||
|
|
||||||
|
def arguments():
|
||||||
|
|
||||||
# Parse and extend arguments (also backup unmodified result from argparse)
|
# Parse and extend arguments (also backup unmodified result from argparse)
|
||||||
args = parser.parse_args()
|
args = get_parser().parse_args()
|
||||||
|
|
||||||
setattr(args, "from_argparse", copy.deepcopy(args))
|
setattr(args, "from_argparse", copy.deepcopy(args))
|
||||||
setattr(args.from_argparse, "from_argparse", args.from_argparse)
|
setattr(args.from_argparse, "from_argparse", args.from_argparse)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue