Source code for fumus.decorators.mapper

from collections.abc import Mapping
from functools import wraps

from fumus.utils import DictItem


[docs] def map_dict_items(func): @wraps(func) def wrapper(*args, **kw): if not any(isinstance(arg, Mapping) for arg in args): return func(*args, **kw) remapped = [] for arg in args: if isinstance(arg, Mapping): remapped.append((DictItem(k, v) for k, v in arg.items())) else: remapped.append(arg) return func(*remapped, **kw) return wrapper