in uimnet/utils/__init__.py [0:0]
def apply_fun(fun, itr):
"Apply function to iterable"
if isinstance(itr, dict):
return {k: apply_fun(fun, v) for k, v in itr.items()}
elif isinstance(itr, OrderedDict):
return OrderedDict([(k, apply_fun(fun, v)) for k, v in list(itr)])
elif isinstance(itr, list) or isinstance(itr, tuple):
els = [apply_fun(fun, v) for v in itr]
return tuple(els) if isinstance(itr, tuple) else els
elif isinstance(itr, types.GeneratorType):
return (apply_fun(fun, v) for v in itr)
else:
return fun(itr)