Example #1
0
    def default(self, o):
        if isinstance(o, AudioQuantum):
            return self.map_instance_variables(o, "start", "duration", "confidence")

        elif isinstance(o, AudioAnalysis):
            return self.map_instance_variables(o, *AUDIO_ANALYSIS_KEYS)

        elif isinstance(o, Track) or isinstance(o, audio.LocalAudioFile):
            # Don't know what should be serialized
            return {}

        else:
            JSONEncoder.default(self, o)
Example #2
0
    def default(self, obj):
        if isinstance(obj.__class__, DeclarativeMeta):
            # an SQLAlchemy class
            fields = {}
            for field in [x for x in dir(obj) if not x.startswith('_') and x != 'metadata']:
                data = obj.__getattribute__(field)

                if isinstance(data, date):
                    data = str(data)

                if isinstance(data, Name)\
                        or isinstance(data, Speaker)\
                        or isinstance(data, Congregation)\
                        or isinstance(data, Outline)\
                        or isinstance(data, OCLM):
                    data = loads(dumps(data, cls=AlchemyEncoder))

                try:
                    dumps(data) # this will fail on non-encodable values, like other classes
                    fields[field] = data
                except TypeError:
                    x = 1
                    # none
            # a json-encodable dict
            return fields

        return JSONEncoder.default(self, obj)
Example #3
0
 def default(self, obj):
     if isinstance(obj, datetime.datetime):
         return obj.strftime('%a %b %d %H:%M:%S %Y')
     elif isinstance(obj, ndb.Model):
         return obj.to_dict()
     else:
         return JSONEncoder.default(self, obj)
 def default(self, o):
     if isinstance(o, Session):
         return str(o.sid)
     if isinstance(o, OAuthHmacToken):
         return o.token
     if isinstance(o, datetime):
         return o.isoformat()
     if isinstance(o, ndb.Key):
         assert isinstance(o, ndb.Key)
         debug("encoding ndb.Key %s to JSON" % o)
         entity = o.get()
         if entity is None:
             return None
         return unicode(o.get().to_dict())
     if isinstance(o, db.Key):
         assert isinstance(o, db.Key)
         debug("encoding db.Key %s to JSON" % o)
         return unicode(o)
     if isinstance(o, ndb.Model):
         return o.to_dict()
         debug("encoding NdbModel %s to JSON" % o)
     if isinstance(o, Columns):
         assert isinstance(o, Columns)
         debug("encoding Columns %s to JSON" % o)
         return o.getDataTableCols()
     debug("encoding unknown object %s, %s " % (type(o), o))
     return _JSONEncoder.default(self, o)
Example #5
0
 def default(self, obj):
     if isinstance(obj, QuerySet):
         # `default` must return a python serializable
         # structure, the easiest way is to load the JSON
         # string produced by `serialize` and return it
         return loads(serialize('json', obj))
     return JSONEncoder.default(self, obj)
Example #6
0
 def default(self, obj):
     try:
         key = str(type(obj).__name__)
         return _TYPE_FUNCS[ key ](obj)
     except KeyError, e:
         print "JSONPLUSTYPES:'key':{0} not found".format(key)
         return JSONEncoder.default(self, obj)
Example #7
0
    def default(self, obj, **kwargs):
        if isinstance(obj, ObjectId):
            return str(obj)
        elif isinstance(obj, datetime.datetime) or isinstance(obj, datetime.date) or isinstance(obj, datetime.time):
			return unicode(obj)
        else:            
            return JSONEncoder.default(obj, **kwargs)
Example #8
0
 def default(self, obj):
     if isinstance(obj, PRecord):
         result = dict(obj)
         result[_CLASS_MARKER] = obj.__class__.__name__
         return result
     elif isinstance(obj, PClass):
         result = obj.evolver().data
         result[_CLASS_MARKER] = obj.__class__.__name__
         return result
     elif isinstance(obj, PMap):
         return {_CLASS_MARKER: u"PMap", u"values": dict(obj).items()}
     elif isinstance(obj, (PSet, PVector, set)):
         return list(obj)
     elif isinstance(obj, FilePath):
         return {_CLASS_MARKER: u"FilePath",
                 u"path": obj.path.decode("utf-8")}
     elif isinstance(obj, UUID):
         return {_CLASS_MARKER: u"UUID",
                 "hex": unicode(obj)}
     elif isinstance(obj, datetime):
         if obj.tzinfo is None:
             raise ValueError(
                 "Datetime without a timezone: {}".format(obj))
         return {_CLASS_MARKER: u"datetime",
                 "seconds": timegm(obj.utctimetuple())}
     return JSONEncoder.default(self, obj)
Example #9
0
 def default(self, obj):
     if isinstance(obj, self._registered_types_list):
         # Minor optimization, enter loop only when we are instance of a supported type.
         for type_, encoder in self._registered_types_map.items():
             if isinstance(obj, type_):
                 return encoder(obj)
     elif hasattr(obj, '__json__') and callable(obj.__json__):
         return obj.__json__()
     elif isinstance(obj, (datetime.date, datetime.datetime)):
         if self._isodates:
             if isinstance(obj, datetime.datetime):
                 obj = obj.replace(microsecond=0)
             return obj.isoformat()
         else:
             return str(obj)
     elif isinstance(obj, decimal.Decimal):
         return float(obj)
     elif is_saobject(obj):
         return dictify_sqla(obj)
     elif is_mingobject(obj):
         return dictify_ming(obj)
     elif is_query_result(obj):
         return dict(rows=list(obj), count=obj.rowcount)
     elif is_query_row(obj):
         return dict(rows=dict(obj), count=1)
     elif is_objectid(obj):
         return str(obj)
     elif isinstance(obj, MultiDict):
         return obj.mixed()
     elif isinstance(obj, types.GeneratorType):
         return list(obj)
     else:
         return _JSONEncoder.default(self, obj)
  def default(self, obj):
    """
    Returns instance of a `dict` from an ndb object.

      :param value:
        Value to get dictionary for.  If not encodable, will call the
        superclasses default method.
    """
    if isinstance(obj, query.Query):
      return list(obj)

    elif isinstance(obj, ndb.Cursor):
      return obj.urlsafe()

    elif isinstance(obj, ndb.BlobKey):
      return str(obj)

    elif isinstance(obj, ndb.Key):
      return obj.urlsafe()

    elif hasattr(obj, 'to_dict'):
      return getattr(obj, 'to_dict')(
        includes=self.__includes,
        excludes=self.__excludes)

    elif isinstance(obj, datetime):
      return to_epoch(obj)

    elif isinstance(obj, date):
      return to_epoch(datetime(obj.year, obj.month, obj.day))

    return JSONEncoder.default(self, obj)
Example #11
0
 def default(self, obj):
     if isinstance(obj, datetime):
         return obj.strftime('%Y-%m-%d %H:%M:%S')
     elif isinstance(obj, date):
         return obj.strftime('%Y-%m-%d')
     else:
         return JSONEncoder.default(self, obj)
Example #12
0
def json_encoder(obj):
    if isinstance(obj, boto.regioninfo.RegionInfo):
        return obj.name
    elif isinstance(obj, datetime.datetime):
        return int(mktime(obj.timetuple()))

    return JSONEncoder.default(self, obj)
Example #13
0
 def default(self, obj, **kwargs):
     if isinstance(obj, ObjectId):
         return str(obj)
     elif isinstance(obj, datetime):
         return obj.isoformat()
     else:            
         return JSONEncoder.default(obj, **kwargs)
Example #14
0
 def default(self, obj):
     if obj.__class__ in self.type_map:
         nj = to_json(obj)
         nj['__type__'] = self.type_map[obj.__class__]
         return nj
     else:
         return JSONEncoder.default(self, obj)
Example #15
0
 def default(self, obj):
     if isinstance(obj, Fault):
         return self.default(obj.value)
     elif isinstance(obj, set):
         return sorted(obj)
     else:
         return JSONEncoder.default(self, obj)
Example #16
0
 def default(self, obj):
     if isinstance(obj, (list, dict, unicode, int, float, bool, type(None))):
         return JSONEncoder.default(self, obj)
     elif isinstance(obj, set):
         return list(obj)
     elif isinstance(obj, str):
         return unicode(obj)
Example #17
0
	def default(self, obj):
		if isinstance(obj, EvaluationSet):
			returnObject = {
				'evaluator':obj.evaluator,
				'comment':obj.comment
			}
			for evaluation in obj.evaluation_set.all():
				returnObject[evaluation.name] = evaluation.factor
			return returnObject

		if isinstance(obj, Message):
			controller = MessageController(obj)
			userName = '******'
			if obj.author!=None:
				userName = obj.author.username
				
			returnObject = {
				'id':obj.guid,
				'author':userName,
				'avatar':CollDemUser.objects.get_pic(obj.author),
				'header':obj.header, 
				'text':obj.text,
				'is_author':(obj.author == obj.requestUser),
				'evaluation':controller.getEvaluation(obj.requestUser),
			}
			if hasattr(obj, 'completeDataLength'):
				returnObject['completeDataLength'] = obj.completeDataLength

			if hasattr(obj, 'twittermessage'):
				returnObject['twitter_id'] = obj.twittermessage.msg_id

			return returnObject

		return JSONEncoder.default(self, obj)
Example #18
0
 def default(self, obj):
     if isinstance(obj, datetime):
         return obj.isoformat()
     if isinstance(obj, timedelta):
         return str(obj)
     else:
         return JSONEncoder.default(self, obj)
 def default(self, obj):
      if isinstance(obj,QuerySet):
          #  Queryset实例
          # 直接使用Django内置的序列化工具进行序列化
          # 但是如果直接返回serialize('json',obj)
          # 则在simplejson序列化时会被从当成字符串处理
          # 则会多出前后的双引号
          # 因此这里先获得序列化后的对象
          # 然后再用simplejson反序列化一次
          # 得到一个标准的字典(dict)对象
          return loads(serialize('json',obj))
      if isinstance(obj,models.Model):
         # 如果传入的是单个对象,区别于QuerySet的就是
         # Django不支持序列化单个对象
         # 因此,首先用单个对象来构造一个只有一个对象的数组
         # 这是就可以看做是QuerySet对象
         # 然后此时再用Django来进行序列化
         # 就如同处理QuerySet一样
         # 但是由于序列化QuerySet会被'[]'所包围
         # 因此使用string[1:-1]来去除
         # 由于序列化QuerySet而带入的'[]'
          return loads(serialize('json',[obj])[1:-1])
      if hasattr(obj, 'isoformat'):
          #处理日期类型
          return obj.isoformat()
      return JSONEncoder.default(self,obj)
Example #20
0
    def default(self, obj):
        if set(['quantize', 'year', 'tm_hour']).intersection(dir(obj)):
            return str(obj)
        elif set(['next', 'union']).intersection(dir(obj)):
            return list(obj)

        return JSONEncoder.default(self, obj)
Example #21
0
  def default(self, obj):
    if isinstance(obj, datetime):
      return obj.isoformat()
    return JSONEncoder.default(self, obj)
# Error handlers
#app.error_handlers[404] = handle_404
#app.error_handlers[500] = handle_500
Example #22
0
 def default(self, obj):
     if isinstance(obj, date):
         return obj.isoformat()
     try:
         return JSONEncoder.default(self, obj)
     except:
         return str(obj)
 def default(self, o):
     """Encode the provided object."""
     if type(o) is QuerySet: return list(o)
     elif type(o) is Article: return self._encode_article(o)
     elif type(o) is Category: return self._encode_category(o)
     elif type(o) is Profile: return self._encode_profile(o)
     else: return JSONEncoder.default(self, o)
Example #24
0
 def default(self, obj):
     if hasattr(obj, '__json__'):
         return obj.__json__()
     elif hasattr(obj, 'isoformat'):
         return obj.isoformat()
     else:
         return JSONEncoder.default(self, obj)
Example #25
0
 def default(self, obj):
     if isinstance(obj, (list, dict, str, unicode,
                         int, float, bool, type(None))):
         return JSONEncoder.default(self, obj)
     if isinstance(obj, datetime.datetime):
         return str(obj)
     return "COMPLEXBLOB"
 def default(self, obj):
     if isinstance(obj, Decimal):
         return round(obj, 2)
     elif isinstance(obj, datetime) or isinstance(obj, date):
         date_format = app.config.get('DATE_FORMAT', '%Y-%m-%d')
         return datetime.strftime(obj, date_format)
     return JSONEncoder.default(self, obj)
Example #27
0
    def default(self, obj, **kwargs):
        from bson import ObjectId

        if isinstance(obj, ObjectId):
            return str(obj)
        else:
            return JSONEncoder.default(obj, **kwargs)
Example #28
0
File: jsonify.py Project: Cito/tg2
    def default(self, obj):
        if hasattr(obj, '__json__') and callable(obj.__json__):
            return obj.__json__()
        elif isinstance(obj, (datetime.date, datetime.datetime)):
            return str(obj)
        elif isinstance(obj, decimal.Decimal):
            return float(obj)
        elif is_saobject(obj):
            props = {}
            for key in obj.__dict__:
                if not key.startswith('_sa_'):
                    props[key] = getattr(obj, key)
            return props
        elif is_mingobject(obj) and ming is not NotExistingImport:
            prop_names = [prop.name for prop in ming.odm.mapper(obj).properties
                          if isinstance(prop, ming.odm.property.FieldProperty)]

            props = {}
            for key in prop_names:
                props[key] = getattr(obj, key)
            return props
        elif isinstance(obj, ResultProxy):
            return dict(rows=list(obj), count=obj.rowcount)
        elif isinstance(obj, RowProxy):
            return dict(rows=dict(obj), count=1)
        elif isinstance(obj, ObjectId):
            return str(obj)
        elif isinstance(obj, MultiDict):
            return obj.mixed()
        elif isinstance(obj, types.GeneratorType):
            return list(obj)
        else:
            return JSONEncoder.default(self, obj)
Example #29
0
 def default(self, obj):
     if isinstance(obj, numpy.ndarray):
         if obj.ndim == 0:
             return obj + 0
         if obj.ndim == 1:
             return obj.tolist()
         return list([self.default(row) for row in obj])
     return JSONEncoder.default(self, obj)
Example #30
0
 def default(self, obj):
     a_list_of_types = (list, dict, str,
                        int, float, bool, type(None))
     if PY2:
         a_list_of_types += (unicode,)
     if isinstance(obj, a_list_of_types):
         return JSONEncoder.default(self, obj)
     return {'_python_object': str(obj)}
Example #31
0
    def default(self, obj: typing.Any) -> str:
        if isinstance(obj, bytes):
            try:
                return obj.decode("ascii")
            except:  # noqa: E722
                return ""

        if isinstance(obj, (datetime, date)):
            serial = obj.isoformat()
            return serial

        return JSONEncoder.default(self, obj)
Example #32
0
 def default(self, obj):
     if hasattr(obj, 'dump'):
         return obj.dump()
     elif hasattr(obj, '__json__'):
         return obj.__json__()
     elif hasattr(obj, 'to_json'):
         return obj.to_json()
     elif hasattr(obj, 'as_json'):
         return obj.as_json()
     elif isinstance(obj, Enum):
         return obj.value
     return JSONEncoder.default(self, obj)
Example #33
0
 def default(self, o):
     if isinstance(o, Block):
         return {
             'block_id': o.block_id,
             'block_number': o.block_number,
             'previous_block_hash': o.previous_block_hash,
             'timestamp': o.timestamp,
             'merkle_root': o.merkle_root,
             'difficulty_target': o.difficulty_target,
             'nonce': o.nonce,
             'transactions': o.transactions
         }
     if isinstance(o, Transaction):
         return {
             'transaction_id': o.transaction_id,
             'tx_outputs': o.tx_outputs,
             'tx_inputs': o.tx_inputs
         }
     if isinstance(o, TransactionInput):
         return {
             'transaction_input_id': o.transaction_input_id,
             'transaction_output_id': o.transaction_output_id,
             'unlocking_script': o.unlocking_script,
             'amount': o.amount
         }
     if isinstance(o, TransactionOutput):
         return {
             'transaction_output_id': o.transaction_output_id,
             'amount': o.amount,
             'locking_script': o.locking_script,
             'sender_address': o.sender_address,
             'recipient_address': o.recipient_address
         }
     if isinstance(o, TransactionRequest):
         return {
             'sender_address': o.sender_address,
             'recipient_address': o.recipient_address,
             'amount': o.amount,
             'timestamp': o.timestamp,
             'tx_input_requests': o.tx_input_requests
         }
     if isinstance(o, TxInputRequest):
         return {
             'transaction_output_id': o.transaction_output_id,
             'unlocking_script': o.unlocking_script
         }
     if isinstance(o, ProofResult):
         return {
             'result_hash_int': o.result_hash_int,
             'target_hash_int': o.target_hash_int,
             'nonce': o.nonce
         }
     return JSONEncoder.default(self, o)
    def default(self, obj):
        if isinstance(obj, ToolMap):
            return obj._toolMap

        if isinstance(obj, PatternIndex):
            return PatternIndexEncoder.default(obj)

        if isinstance(obj, SiteInfo):
            return SiteInfoEncoder.default(obj)

        else:
            return JSONEncoder.default(obj)
Example #35
0
    def default(self, obj):
        if isinstance(obj, datetime.date):
            return obj.isoformat()
        elif isinstance(obj, np.ndarray) and obj.ndim == 1:
            lobj = obj.tolist()
            if len(lobj) == 1:
                return lobj[0]
            else:
                return lobj


        return JSONEncoder.default(self, obj)
Example #36
0
 def default(self, obj):
     """
     """
     if isinstance(obj,
                   (np.int_, np.intc, np.intp, np.int8, np.int16, np.int32,
                    np.int64, np.uint8, np.uint16, np.uint32, np.uint64)):
         return int(obj)
     elif isinstance(obj, (np.float_, np.float16, np.float32, np.float64)):
         return float(obj)
     elif isinstance(obj, (np.ndarray, )):
         return obj.tolist()
     return JSONEncoder.default(self, obj)
Example #37
0
 def default(self, obj):  # pylint: disable=E0202
     """Encode based on object type."""
     if isinstance(obj, Patient):
         return self.encode_patient(obj)
     elif isinstance(obj, Visit):
         return self.encode_visit(obj)
     elif isinstance(obj, Event):
         return self.encode_event(obj)
     elif isinstance(obj, Entity):
         return self.encode_entity(obj)
     else:
         return JSONEncoder.default(self, obj)
Example #38
0
 def default(self, o):
     if isinstance(o, Block):
         return {
             'block_id': o.block_id,
             'block_number': o.block_number,
             'version': o.version,
             'previous_block_hash': o.previous_block_hash,
             'timestamp': o.timestamp,
             'merkle_root': o.merkle_root,
             'difficulty_target': o.difficulty_target,
             'nonce': o.nonce,
             'transactions': o.transactions
         }
     if isinstance(o, Transaction):
         return {
             'transaction_id': o.transaction_id,
             'block_id': o.block_id,
             'locktime': o.locktime,
             'transaction_inputs': o.transaction_inputs,
             'transaction_outputs': o.transaction_outputs
         }
     if isinstance(o, TransactionOutput):
         return {
             'transaction_output_id': o.transaction_output_id,
             'transaction_id': o.transaction_id,
             'amount': o.amount,
             'locking_script': o.locking_script,
             'sender_address': o.sender_address,
             'recipient_address': o.recipient_address
         }
     if isinstance(o, TransactionInput):
         return {
             'transaction_input_id': o.transaction_input_id,
             'transaction_id': o.transaction_id,
             'transaction_output_id': o.transaction_output_id,
             'unlocking_script': o.unlocking_script,
         }
     if isinstance(o, ProofResult):
         return {
             'result_hash_int': o.result_hash_int,
             'target_hash_int': o.target_hash_int,
             'nonce': o.nonce
         }
     if isinstance(o, PeerNode):
         return {
             'peer_node_id': o.peer_node_id,
             'url': o.url,
             'address': o.address
         }
     if isinstance(o, Decimal):
         return float(o)
     return JSONEncoder.default(self, o)
Example #39
0
    def default(self, obj):
        """
        WTF, why doesn't JSONEncoder already try str(obj) ??
        """
        try:
            return obj.serializeable()
        except AttributeError:
            pass

        try:
            return JSONEncoder.default(self, obj)
        except TypeError:
            return str(obj)
Example #40
0
 def default(self, book):
     if isinstance(book, Book):
         return {
             "isbn": book.isbn,
             "book_title": book.book_title,
             "book_author": book.book_author,
             "publisher": book.publisher,
             "year_of_publication": book.year_of_publication,
             "image_url_s": book.image_url_s,
             "image_url_m": book.image_url_m,
             "image_url_l": book.image_url_l
         }
     return JSONEncoder.default(self, book)
Example #41
0
File: web.py Project: jie/dragonlib
    def default(self, obj):
        try:
            if isinstance(obj, datetime):
                return obj.strftime("%Y-%m-%d %H:%M:%S")
            elif isinstance(obj, date):
                return obj.strftime("%Y-%m-%d")

            iterable = iter(obj)
        except TypeError as e:
            logger.warn(e)
        else:
            return list(iterable)
        return JSONEncoder.default(self, obj)
    def default(self, obj):
        if obj is not None:
            from pjdata.aux.uuid import UUID

            if isinstance(obj, np.ndarray):
                return str(obj)
            elif isinstance(obj, UUID):
                return obj.id
            elif not isinstance(obj,
                                (list, set, str, int, float, bytearray, bool)):
                return obj.jsonable

        return JSONEncoder.default(self, obj)
Example #43
0
    def default(self, obj: Any) -> Any:
        iterate = getattr(obj, "__iter__", None)
        if iterate is not None:
            # We have an Iterable
            if hasattr(obj, "__getitem__"):
                # We have a Mapping
                return dict(obj)
            return list(iterate())

        if isinstance(obj, DateTime):
            return dateAsRFC3339Text(obj)

        return BaseJSONEncoder.default(self, obj)
Example #44
0
 def default(self, obj):
     """default."""
     if isinstance(obj, (datetime.datetime, datetime.date)):
         return obj.isoformat()
     elif isinstance(
             obj,
         (list, dict, str, unicode, int, float, bool, type, type(None))):
         return JSONEncoder.default(self, obj)
     logging.warning(
         "Unable to find matching encoder for type %s. Using pickle",
         str(type(obj)),
     )
     return {"_python_object": pickle.dumps(obj)}
Example #45
0
 def default(self, o):
     if isinstance(o, Site):
         return {
             '_type': 'site',
             'name': o.name,
             'servers': json.dumps(o.servers),
             'port': o.port,
             'ssl': o.ssl,
             'log_level': o.log_level,
             'username': '' if not o.username else o.username,
             'password': '' if not o.password else o.password,
         }
     return JSONEncoder.default(self, o)
Example #46
0
 def default(self, obj):
     if isinstance(obj, NestedField):
         return dict([(k if v.name is None else v.name, self.default(v))
                      for k, v in obj.items()])
     elif isinstance(obj, ListField):
         return [self.default(v) for v in obj.value]
     elif isinstance(obj, DateField):
         return obj.json_encode()
     elif isinstance(obj, BaseField):
         return obj.value
     else:
         return JSONEncoder.default(
             self, obj)  # super(MyEncoder, self).default(obj)
    def default(self, obj):
        if isinstance(obj, TimedPatternSortedList):
            return list(obj)

        if isinstance(obj, TimedPattern):
            return {'time': obj.time, "pattern": obj.pattern}

        if isinstance(obj, datetime):
            return obj.iso_format()

        if isinstance(obj, re.Pattern):
            return obj.pattern

        return JSONEncoder.default(obj)
    def default(self, obj):
        if isinstance(obj, np.ndarray):
            return obj.tolist()
        elif isinstance(obj, (np.int64, np.int32)):
            return int(obj)
        elif isinstance(obj, (np.float64, np.float32)):
            return float(obj)
        elif isinstance(obj, PosixPath):
            return str(obj)

        try:
            return JSONEncoder.default(self, obj)
        except TypeError:
            return None
Example #49
0
    def default(self, message):
        if isinstance(message, Message):
            json_res = {
                "title": message.title,
                "text": message.text,
                "author": message.author,
                "date": str(message.date)
            }
            return json_res

        else:
            # call base class implementation which takes care of
            # raising exceptions for unsupported types
            return JSONEncoder.default(self, message)
Example #50
0
 def default(self, o):
     """
     Encode the provided object.
     """
     if type(o) is QuerySet:
         return list(o)
     elif type(o) is Article:
         return self._encode_article(o)
     elif type(o) is Category:
         return self._encode_category(o)
     elif type(o) is Profile:
         return self._encode_profile(o)
     else:
         return JSONEncoder.default(self, o)
Example #51
0
 def default(self, obj):
     if isinstance(obj, datetime):
         return {
             '__type__': 'datetime',
             'year': obj.year,
             'month': obj.month,
             'day': obj.day,
             'hour': obj.hour,
             'minute': obj.minute,
             'second': obj.second,
             'microsecond': obj.microsecond,
         }
     else:
         return JSONEncoder.default(self, obj)
Example #52
0
 def default(self, o):
     if isinstance(o, Decimal):
         return str(o)
     elif isinstance(o, datetime):
         return o.isoformat()
     elif isinstance(o, date):
         return o.isoformat()
     elif isinstance(o, time):
         return o.isoformat()
     elif isinstance(o, MSG):
         return o.gettext()
     elif isinstance(o, XMLParser):
         return stream_to_str_as_html(o)
     return JSONEncoder.default(self, o)
Example #53
0
 def default(self, ride):
     if isinstance(ride, Ride):
         json = {
             "driver_name": ride.get_driver().get_username(),
             "passengers": ride.get_passengers_names(),
             "available_seats": ride.get_available_seats(),
             "source": ride.get_source(),
             "departure_time": ride.get_departure_time()
         }
         return json
     else:
         # call base class implementation which takes care of
         # raising exceptions for unsupported types
         return JSONEncoder.default(self, ride)
Example #54
0
 def default(self, o):
     if isinstance(o, BaseModel):
         return o.dict()
     if isinstance(o, Decimal):
         return str(o)
     if isinstance(o, (datetime, date)):
         return o.isoformat()
     if is_dataclass(o):
         return asdict(o)
     if isinstance(o, Enum):
         return o.value
     if isinstance(o, Exception):
         return str(o)
     return JSONEncoder.default(self, o)
    def default(self, o: Any) -> JSONEncoderTypes:
        """Convert OkResponse & ErrResponse to dictionaries."""
        if isinstance(o, OkResponse):
            return o.__dict__

        if isinstance(o, ErrResponse):
            return o.__dict__

        # NOTE: Casting as built-in JSONEncoder's default method
        # incorrectly has signature of Any when the documentation
        # for the method states it must return either a type that is
        # serializable to JSON by the default rules, or raises a
        # TypeError.
        return cast(JSONEncoderTypes, JSONEncoder.default(self, o))
Example #56
0
 def default(self, obj):
     if isinstance(obj, datetime):
         return obj.strftime('%Y-%m-%d %H:%M:%S')
     elif isinstance(obj, date):
         return obj.strftime('%Y-%m-%d')
     elif isinstance(obj, decimal.Decimal):
         return float(obj)
     elif isinstance(obj, time):
         return obj.strftime('%H:%M:%S')
     elif isinstance(obj, timedelta):
         sec = int(obj.total_seconds())
         return '{H:02d}:{M:02d}:{S:02d}'.format(H=int(sec / 3600), M=int(sec / 24 % 60), S=sec % 60)
     else:
         return JSONEncoder.default(self, obj)
Example #57
0
 def default(self, obj):
     if isinstance(obj, Output):
         out_dict = dict()
         out_dict['classifier'] = obj.classifier
         out_dict['version'] = obj.version
         out_dict['labels'] = obj.labels
         out_dict['scores'] = obj.scores
         out_dict['probas'] = obj.probas
         out_dict['paths'] = obj.paths
         out_dict['thresholds'] = obj.thresholds
         out_dict['positivenesses'] = obj.positivenesses
         out_dict['negativenesses'] = obj.negativenesses
         return out_dict
     return JSONEncoder.default(self, obj)
Example #58
0
    def default(self, o):
        if hasattr(o, '__json_default__'):
            return o.__json_default__()

        elif isinstance(o, (datetime, date, time)):
            return o.strftime('%b %d %Y %H:%M:%S')

        try:
            iterable = iter(o)
        except TypeError:
            pass
        else:
            return list(iterable)
        return JSONEncoder.default(self, o)
Example #59
0
 def default(self, obj):
     if isinstance(obj, datetime):
         return {
             "__type__": "datetime",
             "year": obj.year,
             "month": obj.month,
             "day": obj.day,
             "hour": obj.hour,
             "minute": obj.minute,
             "second": obj.second,
             "microsecond": obj.microsecond,
         }
     else:
         return JSONEncoder.default(self, obj)
Example #60
0
 def default(self, obj):
     try:
         if isinstance(obj, datetime.date):
             return obj.isoformat().replace('T', ' ')
         elif isinstance(obj, datetime.datetime):
             return obj.isoformat().replace('T', " ")
         elif isinstance(obj, decimal.Decimal):
             return str(obj)
         iterable = iter(obj)
     except TypeError:
         pass
     else:
         return list(iterable)
     return JSONEncoder.default(self, obj)