def METHOD_NAME(self, dct):
    if isinstance(dct, dict):
        if '_set_object' in dct:
            return set(self.METHOD_NAME(item) for item in dct['_set_object'])
        elif '_namedtuple_name' in dct:
            ntc = namedtuple(dct['_namedtuple_name'], dct['_namedtuple_fields'])
            t = list(self.METHOD_NAME(item) for item in dct['_namedtuple_values'])
            return ntc(*t)
        elif '_tuple_object' in dct:
            return tuple(self.METHOD_NAME(item) for item in dct['_tuple_object'])
        else:
            return {self.decode_key(k): self.METHOD_NAME(v) for k, v in dct.items()}
    return dct