Source code for sleap.io.format.genericjson

"""
Adaptor for reading and writing any generic JSON file.

This is a good example of a very simple adaptor class.
"""

from .adaptor import Adaptor, SleapObjectType
from .filehandle import FileHandle

from sleap.util import json_dumps


[docs]class GenericJsonAdaptor(Adaptor): @property def handles(self): return SleapObjectType.misc @property def default_ext(self): return "json" @property def all_exts(self): return ["json", "txt"] @property def name(self): return "JSON file"
[docs] def can_read_file(self, file: FileHandle): if not self.does_match_ext(file.filename): return False return file.is_json
[docs] def can_write_filename(self, filename: str) -> bool: return True
[docs] def does_read(self) -> bool: return True
[docs] def does_write(self) -> bool: return True
[docs] def read(self, file: FileHandle, *args, **kwargs): return file.json
[docs] def write(self, filename: str, source_object: dict): json_dumps(source_object, filename)