[core/theme] Add iconset support

Allow themes to specify iconsets. To do so, add a new util library
"util.algorithm", which currently contains support for deep merging of
dicts.
This commit is contained in:
Tobias Witek 2020-02-22 14:07:24 +01:00
parent ef75e593f7
commit 3bb857f250
3 changed files with 71 additions and 2 deletions

23
util/algorithm.py Normal file
View file

@ -0,0 +1,23 @@
import copy
# algorithm copied from
# http://blog.impressiver.com/post/31434674390/deep-merge-multiple-python-dicts
# nicely done :)
def merge(target, *args):
if len(args) > 1:
for item in args:
merge(target, item)
return target
item = args[0]
if not isinstance(item, dict):
return item
for key, value in item.items():
if key in target and isinstance(target[key], dict):
merge(target[key], value)
else:
if not key in target:
target[key] = copy.deepcopy(value)
return target
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4