csvpath.managers.results.readers.file_errors_reader

 1import os
 2import json
 3from abc import ABC, abstractmethod
 4from csvpath.managers.errors.error import Error
 5from csvpath.util.nos import Nos
 6from csvpath.util.file_readers import DataFileReader
 7from .readers import ErrorsReader
 8
 9
10class FileErrorsReader(ErrorsReader):
11    def __init__(self) -> None:
12        super().__init__()
13        self._errors = None
14
15    @property
16    def errors(self) -> list[Error]:
17        if self._errors is None and self.result is not None:
18            ej = None
19            p = os.path.join(self.result.instance_dir, "errors.json")
20            if Nos(p).exists():
21                with DataFileReader(p) as file:
22                    ej = json.load(file.source)
23            self._errors = []
24            if ej:
25                for e in ej:
26                    error = Error()
27                    error.from_json(e)
28                    self._errors.append(error)
29        return self._errors
class FileErrorsReader(csvpath.managers.results.readers.readers.ErrorsReader):
11class FileErrorsReader(ErrorsReader):
12    def __init__(self) -> None:
13        super().__init__()
14        self._errors = None
15
16    @property
17    def errors(self) -> list[Error]:
18        if self._errors is None and self.result is not None:
19            ej = None
20            p = os.path.join(self.result.instance_dir, "errors.json")
21            if Nos(p).exists():
22                with DataFileReader(p) as file:
23                    ej = json.load(file.source)
24            self._errors = []
25            if ej:
26                for e in ej:
27                    error = Error()
28                    error.from_json(e)
29                    self._errors.append(error)
30        return self._errors

Helper class that provides a standard way to create an ABC using inheritance.

errors: list[csvpath.managers.errors.error.Error]
16    @property
17    def errors(self) -> list[Error]:
18        if self._errors is None and self.result is not None:
19            ej = None
20            p = os.path.join(self.result.instance_dir, "errors.json")
21            if Nos(p).exists():
22                with DataFileReader(p) as file:
23                    ej = json.load(file.source)
24            self._errors = []
25            if ej:
26                for e in ej:
27                    error = Error()
28                    error.from_json(e)
29                    self._errors.append(error)
30        return self._errors