Source code for fastdev.io.handlers.json_handler

import msgspec

from fastdev.io.handlers.base_handler import BaseFileHandler


[docs] class JSONHandler(BaseFileHandler):
[docs] str_or_bytes = "bytes"
def __init__(self):
[docs] self.encoder = msgspec.json.Encoder()
[docs] self.decoder = msgspec.json.Decoder()
[docs] def load_from_fileobj(self, file, **kwargs): return self.decoder.decode(file.read())
[docs] def dump_to_fileobj(self, obj, file, **kwargs): file.write(self.encoder.encode(obj))
[docs] def dump_to_str(self, obj, **kwargs): # https://github.com/jcrist/msgspec/issues/514 return self.encoder.encode(obj).decode("utf-8")
[docs] def load_from_str(self, s: str, **kwargs): return self.decoder.decode(s)
__all__ = ["JSONHandler"]