Skip to content

Commit baedbac

Browse files
committed
Added exit/log cmd/docs on invalid config file key + msg arg to log.help_cmd_docs_url_exit()
1 parent b765bd6 commit baedbac

6 files changed

Lines changed: 34 additions & 8 deletions

File tree

remove-json-keys/src/remove_json_keys/assets/data/messages.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"log_ALL_JSON_PROCESSED": { "message": "All JSON files processed" },
1616
"log_TOTAL_JSON_PROCESSED": { "message": "Total JSON files processed" },
1717
"log_TYPE": { "message": "Type" },
18+
"log_TO_CREATE_DEFAULT_CONFIG": { "message": "to create default config file" },
1819
"log_FOR_AVAIL_OPTIONS": { "message": "for available options" },
1920
"tip_FOR_MORE_HELP_VISIT": { "message": "For more help, visit" },
2021
"tip_PASS_FORCE_TO_OVERWRITE": { "message": "Pass --force to overwrite" },

remove-json-keys/src/remove_json_keys/lib/log.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ def dim(msg, *args, **kwargs) : print(f'\n{colors.gry}{msg.format(*args, **kwarg
2323
def docs_url(cli) : tip(f'{cli.msgs.tip_FOR_MORE_HELP_VISIT}:\n{cli.urls.docs}')
2424
def error(msg, *args, **kwargs) : print(f'\n{colors.br}ERROR: {msg.format(*args, **kwargs)}{colors.nc}')
2525
def help_cmd(cli) : info(f"{cli.msgs.log_TYPE} '{cli.cli_cmds[0]} --help' {cli.msgs.log_FOR_AVAIL_OPTIONS}\n")
26-
def help_cmd_docs_url_exit(cli) : help_cmd(cli) ; docs_url(cli) ; sys.exit(1)
2726
def info(msg, *args, end='', **kwargs) : print(f'\n{colors.by}{msg.format(*args, **kwargs)}{colors.nc}', end=end)
27+
def init_cmd(cli) : info(f"{cli.msgs.log_TYPE} '{cli.cli_cmds[0]} --init' {cli.msgs.log_TO_CREATE_DEFAULT_CONFIG}\n")
2828
def overwrite_print(msg, *args, **kwargs):
2929
sys.stdout.write('\r' + msg.format(*args, **kwargs).ljust(terminal_width)[:terminal_width])
3030
def success(msg, *args, **kwargs) : print(f'\n{colors.bg}{msg.format(*args, **kwargs)}{colors.nc}')
@@ -60,6 +60,14 @@ def final_summary(msgs, summary_dict):
6060
data(f'{msgs.log_KEYS} {status}: {len(file_set)}')
6161
print(f'{status_color}[\n ' + '\n '.join(file_set) + f'\n]{colors.nc}')
6262

63+
def help_cmd_docs_url_exit(cli, msg=''):
64+
if msg : print(f'\n{colors.br}ERROR: {msg}')
65+
help_cmd(cli) ; docs_url(cli) ; sys.exit(1)
66+
67+
def init_cmd_docs_url_exit(cli, msg=''):
68+
if msg: print(f'\n{colors.br}ERROR: {msg}')
69+
init_cmd(cli) ; docs_url(cli) ; sys.exit(1)
70+
6371
def trunc(msg, end='\n'):
6472
truncated_lines = [
6573
line if len(line) < terminal_width else line[:terminal_width -4] + '...' for line in msg.splitlines()]

remove-json-keys/src/remove_json_keys/lib/settings.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,7 @@ def load(cli):
5050
if getattr(ctrl, 'subcmd', False):
5151
for arg in ctrl.args : subcmd_flags.append(arg)
5252
if unknown_args and not all(f'--{arg}' in subcmd_flags for arg in unknown_args):
53-
log.error(f"{cli.msgs.err_UNRECOGNIZED_ARGS}: {' '.join(unknown_args)}")
54-
log.help_cmd_docs_url_exit(cli)
53+
log.help_cmd_docs_url_exit(cli, f"{cli.msgs.err_UNRECOGNIZED_ARGS}: {' '.join(unknown_args)}")
5554
for ctrl_key, ctrl in vars(controls).items(): # process subcmds
5655
if getattr(ctrl, 'subcmd', False) and next(arg for arg in ctrl.args if arg.startswith('--'))[2:] in sys.argv:
5756
setattr(parsed_args, ctrl_key, True)
@@ -63,7 +62,12 @@ def load(cli):
6362
init.config_filepath(cli)
6463
if getattr(cli, 'config_filepath', None):
6564
for key, val in data.json.read(cli.config_filepath).items():
66-
if not getattr(cli.config, key): setattr(cli.config, key, val)
65+
if not getattr(cli.config, key, None):
66+
if hasattr(cli.config, key):
67+
setattr(cli.config, key, val)
68+
else:
69+
log.init_cmd_docs_url_exit(cli,
70+
f"Invalid key '{key}' found in \n{log.colors.gry}{cli.config_filepath}")
6771
log.debug('Config file loaded!', cli)
6872
else:
6973
log.debug('No config file found.')

translate-messages/src/translate_messages/assets/data/messages.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
"log_NO_NEW_KEYS_ADDED": { "message": "No new keys added (all already present)" },
1717
"log_ALL_JSON_UPDATED": { "message": "All JSON files updated successfully" },
1818
"log_TYPE": { "message": "Type" },
19+
"log_TO_CREATE_DEFAULT_CONFIG": { "message": "to create default config file" },
1920
"log_FOR_AVAIL_OPTIONS": { "message": "for available options" },
2021
"tip_FOR_MORE_HELP_VISIT": { "message": "For more help, visit" },
2122
"tip_PASS_FORCE_TO_OVERWRITE": { "message": "Pass --force to overwrite" },

translate-messages/src/translate_messages/lib/log.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ def dim(msg, *args, **kwargs) : print(f'\n{colors.gry}{msg.format(*args, **kwarg
2323
def docs_url(cli) : tip(f'{cli.msgs.tip_FOR_MORE_HELP_VISIT}:\n{cli.urls.docs}')
2424
def error(msg, *args, **kwargs) : print(f'\n{colors.br}ERROR: {msg.format(*args, **kwargs)}{colors.nc}')
2525
def help_cmd(cli) : info(f"{cli.msgs.log_TYPE} '{cli.cli_cmds[0]} --help' {cli.msgs.log_FOR_AVAIL_OPTIONS}\n")
26-
def help_cmd_docs_url_exit(cli) : help_cmd(cli) ; docs_url(cli) ; sys.exit(1)
2726
def info(msg, *args, end='', **kwargs) : print(f'\n{colors.by}{msg.format(*args, **kwargs)}{colors.nc}', end=end)
27+
def init_cmd(cli) : info(f"{cli.msgs.log_TYPE} '{cli.cli_cmds[0]} --init' {cli.msgs.log_TO_CREATE_DEFAULT_CONFIG}\n")
2828
def overwrite_print(msg, *args, **kwargs):
2929
sys.stdout.write('\r' + msg.format(*args, **kwargs).ljust(terminal_width)[:terminal_width])
3030
def success(msg, *args, **kwargs) : print(f'\n{colors.bg}{msg.format(*args, **kwargs)}{colors.nc}')
@@ -60,6 +60,14 @@ def final_summary(msgs, summary_dict):
6060
data(f'{msgs.log_LANGUAGES} {status}: {len(lang_set)}')
6161
print(f"{status_color}[ {', '.join(lang_set)} ]{colors.nc}")
6262

63+
def help_cmd_docs_url_exit(cli, msg=''):
64+
if msg : print(f'\n{colors.br}ERROR: {msg}')
65+
help_cmd(cli) ; docs_url(cli) ; sys.exit(1)
66+
67+
def init_cmd_docs_url_exit(cli, msg=''):
68+
if msg: print(f'\n{colors.br}ERROR: {msg}')
69+
init_cmd(cli) ; docs_url(cli) ; sys.exit(1)
70+
6371
def trunc(msg, end='\n'):
6472
truncated_lines = [
6573
line if len(line) < terminal_width else line[:terminal_width -4] + '...' for line in msg.splitlines()]

translate-messages/src/translate_messages/lib/settings.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,7 @@ def load(cli):
6060
if getattr(ctrl, 'subcmd', False):
6161
for arg in ctrl.args : subcmd_flags.append(arg)
6262
if unknown_args and not all(f'--{arg}' in subcmd_flags for arg in unknown_args):
63-
log.error(f"{cli.msgs.err_UNRECOGNIZED_ARGS}: {' '.join(unknown_args)}")
64-
log.help_cmd_docs_url_exit(cli)
63+
log.help_cmd_docs_url_exit(cli, f"{cli.msgs.err_UNRECOGNIZED_ARGS}: {' '.join(unknown_args)}")
6564
for ctrl_key, ctrl in vars(controls).items(): # process subcmds
6665
if getattr(ctrl, 'subcmd', False) and next(arg for arg in ctrl.args if arg.startswith('--'))[2:] in sys.argv:
6766
setattr(parsed_args, ctrl_key, True)
@@ -73,7 +72,12 @@ def load(cli):
7372
init.config_filepath(cli)
7473
if getattr(cli, 'config_filepath', None):
7574
for key, val in data.json.read(cli.config_filepath).items():
76-
if not getattr(cli.config, key): setattr(cli.config, key, val)
75+
if not getattr(cli.config, key, None):
76+
if hasattr(cli.config, key):
77+
setattr(cli.config, key, val)
78+
else:
79+
log.init_cmd_docs_url_exit(cli,
80+
f"Invalid key '{key}' found in \n{log.colors.gry}{cli.config_filepath}")
7781
log.debug('Config file loaded!', cli)
7882
else:
7983
log.debug('No config file found.')

0 commit comments

Comments
 (0)