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()} _dict['aspect'] = type(self.aspect).__qualname__ return _dict
def __json__(cls): """ Override JSON export of ``Bear`` object. """ # json cannot serialize properties, so drop them _dict = { key: value for key, value in get_public_members(cls).items() if not isinstance(value, property) } metadata = cls.get_metadata() non_optional_params = metadata.non_optional_params optional_params = metadata.optional_params _dict['metadata'] = { 'desc': metadata.desc, 'non_optional_params': ({ param: non_optional_params[param][0] } for param in non_optional_params), 'optional_params': ({ param: optional_params[param][0] } for param in optional_params) } if hasattr(cls, 'languages'): _dict['languages'] = (str(language) for language in cls.languages) return _dict
def __json__(cls): """ Override JSON export of ``Bear`` class. """ # Those members get duplicated if they aren't excluded because they # exist also as fields. excluded_members = {'can_detect', 'maintainers', 'maintainers_emails'} # json cannot serialize properties, so drop them data = { key: value for key, value in get_public_members(cls).items() if not isinstance(value, property) and key not in excluded_members} metadata = cls.get_metadata() non_optional_params = metadata.non_optional_params optional_params = metadata.optional_params data['metadata'] = { 'desc': metadata.desc, 'non_optional_params': {param: non_optional_params[param][0] for param in non_optional_params}, 'optional_params': {param: optional_params[param][0] for param in optional_params}} return data
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
def __json__(cls): """ Override JSON export of ``Bear`` object. """ # json cannot serialize properties, so drop them _dict = {key: value for key, value in get_public_members(cls).items() if not isinstance(value, property)} metadata = cls.get_metadata() non_optional_params = metadata.non_optional_params optional_params = metadata.optional_params _dict["metadata"] = { "desc": metadata.desc, "non_optional_params": ({param: non_optional_params[param][0]} for param in non_optional_params), "optional_params": ({param: optional_params[param][0]} for param in optional_params), } return _dict
def __json__(cls): """ Override JSON export of ``Bear`` object. """ # json cannot serialize properties, so drop them _dict = {key: value for key, value in get_public_members(cls).items() if not isinstance(value, property)} metadata = cls.get_metadata() non_optional_params = metadata.non_optional_params optional_params = metadata.optional_params _dict['metadata'] = { 'desc': metadata.desc, 'non_optional_params': ({param: non_optional_params[param][0]} for param in non_optional_params), 'optional_params': ({param: optional_params[param][0]} for param in optional_params)} if hasattr(cls, 'languages'): _dict['languages'] = (str(language) for language in cls.languages) return _dict
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)} elif isinstance(obj, re._pattern_type): return obj.pattern return json.JSONEncoder.default(self, obj)
def __json__(cls): """ Override JSON export of ``Bear`` object. """ _dict = get_public_members(cls) metadata = cls.get_metadata() non_optional_params = metadata.non_optional_params optional_params = metadata.optional_params _dict["metadata"] = { "desc": metadata.desc, "non_optional_params": ({param: non_optional_params[param][0]} for param in non_optional_params), "optional_params": ({param: optional_params[param][0]} for param in optional_params)} # Delete attributes that cannot be serialized unserializable_attributes = ["new_result", "printer"] for attribute in unserializable_attributes: _dict.pop(attribute, None) return _dict
def __json__(cls): """ Override JSON export of ``Bear`` object. """ # json cannot serialize properties, so drop them _dict = { key: value for key, value in get_public_members(cls).items() if not isinstance(value, property) } metadata = cls.get_metadata() non_optional_params = metadata.non_optional_params optional_params = metadata.optional_params _dict["metadata"] = { "desc": metadata.desc, "non_optional_params": ({ param: non_optional_params[param][0] } for param in non_optional_params), "optional_params": ({ param: optional_params[param][0] } for param in optional_params) } return _dict
def __json__(self, use_relpath=False): _dict = get_public_members(self) if use_relpath: _dict['file'] = relpath(_dict['file']) return _dict
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