Exemplo n.º 1
0
    def default(self, obj):
        new_obj = obj
        if isinstance(obj, collections.Iterable):
            return list(obj)
        elif isinstance(obj, datetime):
            return obj.isoformat()
        elif hasattr(obj, "__getitem__") and hasattr(obj, "keys"):
            return dict(obj)
        elif hasattr(obj, "__dict__"):
            return {member: getattr(obj, member) for member in get_public_members(obj)}

        return json.JSONEncoder.default(self, obj)
Exemplo n.º 2
0
    def default(self, obj):
        if hasattr(obj, "__json__"):
            return obj.__json__()
        elif isinstance(obj, collections.Iterable):
            return list(obj)
        elif isinstance(obj, datetime):
            return obj.isoformat()
        elif hasattr(obj, "__getitem__") and hasattr(obj, "keys"):
            return dict(obj)
        elif hasattr(obj, "__dict__"):
            return {member: getattr(obj, member)
                    for member in get_public_members(obj)}

        return json.JSONEncoder.default(self, obj)
Exemplo n.º 3
0
        def default(self, obj):
            if hasattr(obj, "__json__"):
                fdata = FunctionMetadata.from_function(obj.__json__)
                params = self._filter_params(
                    fdata.optional_params, fdata.non_optional_params)
                return obj.__json__(**params)
            elif isinstance(obj, collections.Iterable):
                return list(obj)
            elif isinstance(obj, datetime):
                return obj.isoformat()
            elif hasattr(obj, "__getitem__") and hasattr(obj, "keys"):
                return dict(obj)
            elif hasattr(obj, "__dict__"):
                return {member: getattr(obj, member)
                        for member in get_public_members(obj)}

            return json.JSONEncoder.default(self, obj)
Exemplo n.º 4
0
        def default(self, obj):
            if hasattr(obj, "__json__"):
                fdata = FunctionMetadata.from_function(obj.__json__)
                params = self._filter_params(fdata.optional_params,
                                             fdata.non_optional_params)
                return obj.__json__(**params)
            elif isinstance(obj, collections.Iterable):
                return list(obj)
            elif isinstance(obj, datetime):
                return obj.isoformat()
            elif hasattr(obj, "__getitem__") and hasattr(obj, "keys"):
                return dict(obj)
            elif hasattr(obj, "__dict__"):
                return {
                    member: getattr(obj, member)
                    for member in get_public_members(obj)
                }

            return json.JSONEncoder.default(self, obj)
Exemplo n.º 5
0
 def __json__(self, use_relpath=False):
     _dict = get_public_members(self)
     if use_relpath:
         _dict['file'] = relpath(_dict['file'])
     return _dict
Exemplo n.º 6
0
 def __json__(self, use_relpath=False):
     _dict = get_public_members(self)
     if use_relpath and _dict['diffs']:
         _dict['diffs'] = {relpath(file): diff
                           for file, diff in _dict['diffs'].items()}
     return _dict