human
I wrote the below code

    def only_builtins(item):
        supported_types = (str, unicode, int, float, long, bool, datetime)
        if isinstance(item, supported_types):
            return item
        elif isinstance(item, Mapping):
            result = {}
            for (key, value) in item.items():
                try:
                    result[key] = only_builtins(value)
                except TypeError:
                    continue
            return result
        elif isinstance(item, (list, tuple, set)):
            result = []
            for value in item:
                try:
                    result.append(only_builtins(value))
                except ValueError:
                    continue
            if isinstance(item, list):
                return result
            elif isinstance(item, tuple):
                return tuple(result)
            else:
                return set(result)
        else:
            for s_type in supported_types:
                if isinstance(item, s_type):
                    return s_type(item)
        raise TypeError((u'%r    is    not    of    type    Entry.' % type(item)))
    def getter(self):
        return Entry(json.loads(getattr(self, name), decode_datetime=True))
    def setter(self, entry):
        if (isinstance(entry, Entry) or isinstance(entry, dict)):
            setattr(self, name, unicode(json.dumps(only_builtins(dict(entry)), encode_datetime=True)))
        else:
            raise TypeError((u'%r    is    not    of    type    Entry    or    dict.' % type(entry)))
    return synonym(name, descriptor=property(getter, setter))

What's a good function header?

=====
Here's a good function header?
assistant
#Here's a good function header.

def entry_synonym(name):