Source code for fastdev.io.handlers.json_handler
import msgspec
from fastdev.io.handlers.base_handler import BaseFileHandler
[docs]
class JSONHandler(BaseFileHandler):
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"]