diff --git a/conservancy_beancount/books.py b/conservancy_beancount/books.py index 09a87999769c57295598e74bda353b42a515e420..42bf43498c3d6c90b6f2c5788ba0712392c9ea9c 100644 --- a/conservancy_beancount/books.py +++ b/conservancy_beancount/books.py @@ -254,3 +254,16 @@ class Loader: 'lineno': lineno, } return LoadResult.empty(Error(source, "no books to load in configuration", None)) + + @classmethod + def dispatch(cls, + loader: Optional['Loader'], + from_fy: Optional[Year]=None, + to_fy: Optional[Year]=None, + ) -> LoadResult: + if loader is None: + return cls.load_none() + elif to_fy is None: + return loader.load_all(from_fy) + else: + return loader.load_fy_range(from_fy or 0, to_fy)