csvpath.managers.results.result_file_reader

 1import os
 2import json
 3from csvpath.util.nos import Nos
 4from csvpath.util.file_readers import DataFileReader
 5from csvpath.util.file_writers import DataFileWriter
 6
 7
 8class ResultFileReader:
 9    """@private"""
10    @classmethod
11    def json_file(self, path: str) -> dict | None:
12        if not Nos(path).exists():
13            with DataFileWriter(path=path) as file:
14                json.dump({}, file.sink, indent=2)
15                return {}
16        with DataFileReader(path) as file:
17            d = json.load(file.source)
18            return d
19
20    @classmethod
21    def manifest(self, result_home: str) -> dict | None:
22        mp = os.path.join(result_home, "manifest.json")
23        return ResultFileReader.json_file(mp)
24
25    @classmethod
26    def meta(self, result_home: str) -> dict | None:
27        mp = os.path.join(result_home, "meta.json")
28        return ResultFileReader.json_file(mp)
29
30    @classmethod
31    def vars(self, result_home: str) -> dict | None:
32        mp = os.path.join(result_home, "vars.json")
33        return ResultFileReader.json_file(mp)