mirror of
https://github.com/borgbackup/borg.git
synced 2024-12-25 09:19:31 +00:00
Don't rebuild command line parser for each invocation
Makes tests faster
This commit is contained in:
parent
4302ffbdbc
commit
0e3bba7b64
2 changed files with 5 additions and 5 deletions
|
@ -96,9 +96,10 @@ def wrapper(self, args, repository, key, manifest, **kwargs):
|
|||
|
||||
class Archiver:
|
||||
|
||||
def __init__(self, lock_wait=None):
|
||||
def __init__(self, lock_wait=None, prog=None):
|
||||
self.exit_code = EXIT_SUCCESS
|
||||
self.lock_wait = lock_wait
|
||||
self.parser = self.build_parser(prog)
|
||||
|
||||
def print_error(self, msg, *args):
|
||||
msg = args and msg % args or msg
|
||||
|
@ -1118,7 +1119,7 @@ def preprocess_args(self, args):
|
|||
self.print_warning(warning)
|
||||
return args
|
||||
|
||||
def build_parser(self, args=None, prog=None):
|
||||
def build_parser(self, prog=None):
|
||||
common_parser = argparse.ArgumentParser(add_help=False, prog=prog)
|
||||
|
||||
common_group = common_parser.add_argument_group('Common options')
|
||||
|
@ -2062,8 +2063,7 @@ def parse_args(self, args=None):
|
|||
# We can't use argparse for "serve" since we don't want it to show up in "Available commands"
|
||||
if args:
|
||||
args = self.preprocess_args(args)
|
||||
parser = self.build_parser(args)
|
||||
args = parser.parse_args(args or ['-h'])
|
||||
args = self.parser.parse_args(args or ['-h'])
|
||||
update_excludes(args)
|
||||
return args
|
||||
|
||||
|
|
2
setup.py
2
setup.py
|
@ -159,7 +159,7 @@ def run(self):
|
|||
print('generating usage docs')
|
||||
# allows us to build docs without the C modules fully loaded during help generation
|
||||
from borg.archiver import Archiver
|
||||
parser = Archiver().build_parser(prog='borg')
|
||||
parser = Archiver(prog='borg').parser
|
||||
choices = {}
|
||||
for action in parser._actions:
|
||||
if action.choices is not None:
|
||||
|
|
Loading…
Reference in a new issue