def sanitize_args()

in backend/lambda_layers/decorators/python/decorators.py [0:0]


def sanitize_args(args):
    args = deepcopy(args)
    disallowed_keys = ["match"]
    if isinstance(args, dict):
        for k, v in args.items():
            if isinstance(k, str) and any(
                [disallowed.lower() in k.lower() for disallowed in disallowed_keys]
            ):
                if isinstance(v, (list, tuple)):
                    args[k] = ["*** MATCH ID ***" for _ in v]
                else:
                    args[k] = "*** MATCH ID ***"
            elif isinstance(v, (dict, list, tuple)):
                args[k] = sanitize_args(v)
        return args
    elif isinstance(args, (list, tuple)):
        is_tuple = isinstance(args, tuple)
        args = list(args)
        for i, item in enumerate(args):
            if isinstance(item, (dict, list)):
                args[i] = sanitize_args(item)
        return tuple(args) if is_tuple else args
    return args