Always flatten in listify() since we always want that
All our kwargs take lists that must be flattened Closes https://github.com/mesonbuild/meson/issues/2408
This commit is contained in:
parent
26dada3797
commit
24e0774ace
|
@ -200,15 +200,7 @@ def classify_unity_sources(compilers, sources):
|
||||||
return compsrclist
|
return compsrclist
|
||||||
|
|
||||||
def flatten(item):
|
def flatten(item):
|
||||||
if not isinstance(item, list):
|
return listify(item, flatten=True)
|
||||||
return [item]
|
|
||||||
result = []
|
|
||||||
for i in item:
|
|
||||||
if isinstance(i, list):
|
|
||||||
result += flatten(i)
|
|
||||||
else:
|
|
||||||
result.append(i)
|
|
||||||
return result
|
|
||||||
|
|
||||||
def is_osx():
|
def is_osx():
|
||||||
return platform.system().lower() == 'darwin'
|
return platform.system().lower() == 'darwin'
|
||||||
|
@ -475,23 +467,33 @@ def replace_if_different(dst, dst_tmp):
|
||||||
os.unlink(dst_tmp)
|
os.unlink(dst_tmp)
|
||||||
|
|
||||||
|
|
||||||
def listify(*args):
|
def listify(item, flatten=True):
|
||||||
'''
|
'''
|
||||||
Returns a list with all args embedded in a list if they are not of type list.
|
Returns a list with all args embedded in a list if they are not of type list.
|
||||||
This function preserves order.
|
This function preserves order.
|
||||||
'''
|
'''
|
||||||
if len(args) == 1: # Special case with one single arg
|
if not isinstance(item, list):
|
||||||
return args[0] if type(args[0]) is list else [args[0]]
|
return [item]
|
||||||
return [item if type(item) is list else [item] for item in args]
|
result = []
|
||||||
|
if flatten:
|
||||||
|
for i in item:
|
||||||
|
if isinstance(i, list):
|
||||||
|
result += listify(i, flatten=True)
|
||||||
|
else:
|
||||||
|
result.append(i)
|
||||||
|
else:
|
||||||
|
for i in item:
|
||||||
|
result.append(i)
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
def extract_as_list(dict_object, *keys, pop = False):
|
def extract_as_list(dict_object, *keys, pop=False):
|
||||||
'''
|
'''
|
||||||
Extracts all values from given dict_object and listifies them.
|
Extracts all values from given dict_object and listifies them.
|
||||||
'''
|
'''
|
||||||
if pop:
|
if pop:
|
||||||
return listify(*[dict_object.pop(key, []) for key in keys])
|
return flatten([dict_object.pop(key, []) for key in keys])
|
||||||
return listify(*[dict_object.get(key, []) for key in keys])
|
return flatten([dict_object.get(key, []) for key in keys])
|
||||||
|
|
||||||
|
|
||||||
def typeslistify(item, types):
|
def typeslistify(item, types):
|
||||||
|
|
Loading…
Reference in New Issue