def is_stream(self):
        if len(self._value) == 0:
            return self.streamable
        s = True
        for v in self._value:
            s &= self._is_stream(v)
        return s
serialize non-serializable data for json
dataset/ETHPy150Open thasso/pyjip/jip/options.py/Option.is_stream--crossover with--dataset/ETHPy150Open frappe/frappe/frappe/utils/response.py/json_handler