clic.stream_json: Wrapper to stream JSON arrays to client

class clic.stream_json.JSONEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)

Bases: JSONEncoder

default(obj)

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 super().default(o)
clic.stream_json.format_error(e)
clic.stream_json.stream_json(generator, header={}, cls=<class 'json.encoder.JSONEncoder'>)

Stream output of generator as JSON. Generator results should be of the form:

  • (‘footer’, {x}): Include items in x after main results

  • (‘header’, {x}): Include items in x before main results

  • Anything else: Add to a “data” array