Files @ 744479013d7a
Branch filter:

Location: NPO-Accounting/oxrlib/oxrlib/loaders.py

Brett Smith
loaders: Introduce common exceptions.
class LoaderError(Exception):
    pass


class LoaderNoDataError(LoaderError):
    pass


class LoaderBadRequestError(LoaderError):
    pass


class LoaderSourceError(LoaderError):
    pass


class FileCache:
    def __init__(self, dir_path, filename_pattern):
        self.dir_path = dir_path
        self.pattern = filename_pattern

    def historical(self, date, base):
        path = self.dir_path / self.pattern.format(date=date.isoformat(), base=base)
        try:
            return path.open()
        except FileNotFoundError as error:
            raise LoaderNoDataError(path) from error