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