solaar: handle exceptions processing configuration file

This commit is contained in:
Peter F. Patel-Schneider 2022-10-11 05:54:36 -04:00
parent 8a3cbc5378
commit 130aa20bb1
1 changed files with 20 additions and 17 deletions

View File

@ -134,23 +134,26 @@ def _convert_json(json_dict):
def _cleanup_load(c):
_config = [__version__]
for element in c:
if isinstance(element, dict):
divert = element.get('divert-keys')
if divert:
sliding = element.get('dpi-sliding')
if sliding: # convert old-style dpi-sliding setting to divert-keys entry
divert[int(sliding)] = 3
element.pop('dpi-sliding', None)
gestures = element.get('mouse-gestures')
if gestures: # convert old-style mouse-gestures setting to divert-keys entry
divert[int(gestures)] = 2
element.pop('mouse-gestures', None)
# remove any string entries (from bad conversions)
element['divert-keys'] = {k: v for k, v in divert.items() if isinstance(k, int)}
# convert to device entries
element = _DeviceEntry(**element)
_config.append(element)
try:
for element in c:
if isinstance(element, dict):
divert = element.get('divert-keys')
if divert:
sliding = element.get('dpi-sliding')
if sliding: # convert old-style dpi-sliding setting to divert-keys entry
divert[int(sliding)] = 3
element.pop('dpi-sliding', None)
gestures = element.get('mouse-gestures')
if gestures: # convert old-style mouse-gestures setting to divert-keys entry
divert[int(gestures)] = 2
element.pop('mouse-gestures', None)
# remove any string entries (from bad conversions)
element['divert-keys'] = {k: v for k, v in divert.items() if isinstance(k, int)}
# convert to device entries
element = _DeviceEntry(**element)
_config.append(element)
except Exception as e:
_log.warn('Exception processing config.yaml file, ignoring contents: %s', e)
return _config