diff --git a/CHANGES.rst b/CHANGES.rst index 664c1fd670ffb732349906386004d316d92f057f..cbe36e9967065592fddbba982b0386d99414475e 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -20,6 +20,11 @@ Config * Setting to skip reading of the default config file (``.NO_DEFAULT = true``) * Add function to convert ISO periods to seconds (period2sec) +Tools +----- + +* Make deletion of missing keys non-fatal for setconfig + Release 1.4.1 ============= diff --git a/setconfig b/setconfig index 561f5f5a9b681a2d5eacf56be92b50878408fd89..dfad453ee0ced6332a59cb823425048e7031d300 100755 --- a/setconfig +++ b/setconfig @@ -15,7 +15,7 @@ import sys from expconfig import ConfigObj from expargparse import assigns_to_dicts, get_key_chain -from feedback import die +from feedback import die, warn import package_info # @@ -70,9 +70,12 @@ for current in args.delete: chain = get_key_chain(current) chain.reverse() key = chain.pop() - for section in chain: - config = config[section] - del config[key] + try: + for section in chain: + config = config[section] + del config[key] + except KeyError: + warn(f"key to be deleted ({current}) does not exist") # Merge key=value assignments from command line