Refactor error construction into a common method.

This commit is contained in:
Baizley 2019-12-20 22:05:40 +01:00 committed by Nick Hall
parent 8a5c8ffbc9
commit 8ca2ff5dad

View File

@ -242,24 +242,14 @@ class ArgParser:
try:
options, leftargs = getopt.getopt(self.args[1:],
SHORTOPTS, LONGOPTS)
except getopt.GetoptError as error:
# Extract the arguments in the list.
cli_args = "[ %s ]" % " ".join(self.args[1:])
# The % operator replaces the list elements
# with repr() of the list elements
# which is OK for latin characters,
# but not for non latin characters in list elements
translated_error_message = _(
"Error parsing the arguments: %s \n"
"Type gramps --help for an overview of "
"commands, or read the manual pages."
) % cli_args
self.errors += [(
_('Error parsing the arguments'),
str(error) + '\n' + translated_error_message
)]
except getopt.GetoptError as getopt_error:
self.errors.append(
self.construct_error(
"Type gramps --help for an overview of "
"commands, or read the manual pages.",
error=getopt_error
)
)
return
@ -460,22 +450,33 @@ class ArgParser:
or self.list_more
or self.list_table
or self.help)):
# Extract and convert to unicode the arguments in the list.
# The % operator replaces the list elements with repr() of
# the list elements, which is OK for latin characters
# but not for non-latin characters in list elements
cliargs = "[ "
for arg in range(len(self.args) - 1):
cliargs += self.args[arg + 1] + ' '
cliargs += "]"
self.errors += [(_('Error parsing the arguments'),
_("Error parsing the arguments: %s \n"
"To use in the command-line mode, supply at "
"least one input file to process."
) % cliargs)]
self.errors.append(
self.construct_error(
"To use in the command-line mode, supply at "
"least one input file to process."
)
)
if need_to_quit:
sys.exit(0)
def construct_error(self, suggestion_message, error=None):
# Extract the arguments in the list.
cli_args = "[ %s ]" % " ".join(self.args[1:])
# The % operator replaces the list elements
# with repr() of the list elements
# which is OK for latin characters,
# but not for non latin characters in list elements
error_message = "Error parsing the arguments: %s \n"
translated_message = _(error_message + suggestion_message) % cli_args
if error:
translated_message = str(error) + '\n' + translated_message
return _('Error parsing the arguments'), translated_message
#-------------------------------------------------------------------------
# Determine the need for GUI
#-------------------------------------------------------------------------