From 321b4bf74cf8b6e6b30cf93b893e7b3a1c595967 Mon Sep 17 00:00:00 2001 From: Saul Pwanson Date: Sun, 9 Jun 2024 00:53:25 -0700 Subject: [PATCH] [loaders] msgpack #2419 --- visidata/loaders/msgpack.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 visidata/loaders/msgpack.py diff --git a/visidata/loaders/msgpack.py b/visidata/loaders/msgpack.py new file mode 100644 index 000000000..e27601c8d --- /dev/null +++ b/visidata/loaders/msgpack.py @@ -0,0 +1,19 @@ +from visidata import vd, VisiData, JsonSheet + + +@VisiData.api +def open_msgpack(vd, p): + return MsgpackSheet(p.name, source=p) + + +VisiData.open_msgpackz = VisiData.open_msgpack + + +class MsgpackSheet(JsonSheet): + def iterload(self): + msgpack = vd.importModule('msgpack') + data = self.source.read_bytes() + if self.source.suffix == '.msgpackz': + brotli = vd.importModule('brotli') + data = brotli.decompress(data) + yield from msgpack.unpackb(data, raw=False)