Utils

restless.utils

class restless.utils.MoreTypesJSONEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)

A JSON encoder that allows for more common Python data types.

In addition to the defaults handled by json, this also supports:

  • datetime.datetime

  • datetime.date

  • datetime.time

  • decimal.Decimal

  • uuid.UUID

default(data)

Implement this method in a subclass such that it returns a serializable object for o, or calls the base implementation (to raise a TypeError).

For example, to support arbitrary iterators, you could implement default like this:

def default(self, o):
    try:
        iterable = iter(o)
    except TypeError:
        pass
    else:
        return list(iterable)
    # Let the base class default method raise the TypeError
    return JSONEncoder.default(self, o)
restless.utils.format_traceback(exc_info)