plugin: Load user configuration file.

This commit is contained in:
Brett Smith 2020-06-16 15:10:19 -04:00
parent b1f82badf7
commit cf2833ee20
2 changed files with 14 additions and 1 deletions

View file

@ -15,6 +15,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import importlib
import logging
import beancount.core.data as bc_data
@ -42,11 +43,14 @@ from .core import (
HookName,
)
from ..errors import (
ConfigurationError,
Error,
)
__plugins__ = ['run']
logger = logging.getLogger('conservancy_beancount.plugin')
class HookRegistry:
INCLUDED_HOOKS: Dict[str, Optional[List[str]]] = {
'.meta_approval': None,
@ -135,6 +139,15 @@ def run(
t.__name__: [] for t in bc_data.ALL_DIRECTIVES # type:ignore[attr-defined]
}
user_config = configmod.Config()
try:
user_config.load_file()
except OSError as error:
logger.debug("error reading configuration file %s: %s",
error.filename, error.strerror, exc_info=True)
errors.append(ConfigurationError(
f"error reading configuration file {error.filename}: {error.strerror}",
source={'filename': error.filename},
))
for key, hook_type in hook_registry.group_by_directive(config):
try:
hook = hook_type(user_config)

View file

@ -5,7 +5,7 @@ from setuptools import setup
setup(
name='conservancy_beancount',
description="Plugin, library, and reports for reading Conservancy's books",
version='1.2.2',
version='1.2.3',
author='Software Freedom Conservancy',
author_email='info@sfconservancy.org',
license='GNU AGPLv3+',