[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:
parent
ef75e593f7
commit
3bb857f250
3 changed files with 71 additions and 2 deletions
23
util/algorithm.py
Normal file
23
util/algorithm.py
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue