aboutsummaryrefslogtreecommitdiffstats
path: root/bsie
diff options
context:
space:
mode:
authorMatthias Baumgartner <dev@igsor.net>2022-12-15 17:21:20 +0100
committerMatthias Baumgartner <dev@igsor.net>2022-12-15 17:21:20 +0100
commit3b41b2a4b7532c911b63b41066a75b3e1546d214 (patch)
treea9e7b4ee1b0d8f38a2d9c1a74673b465d71e37c8 /bsie
parent37510d134458bf954ca2da6d40be0d6c76661e8c (diff)
downloadbsie-3b41b2a4b7532c911b63b41066a75b3e1546d214.tar.gz
bsie-3b41b2a4b7532c911b63b41066a75b3e1546d214.tar.bz2
bsie-3b41b2a4b7532c911b63b41066a75b3e1546d214.zip
minor test improvements and information hiding in builder
Diffstat (limited to 'bsie')
-rw-r--r--bsie/tools/builder.py25
1 files changed, 12 insertions, 13 deletions
diff --git a/bsie/tools/builder.py b/bsie/tools/builder.py
index 24aea84..190d9bf 100644
--- a/bsie/tools/builder.py
+++ b/bsie/tools/builder.py
@@ -12,7 +12,6 @@ import typing
# bsie imports
from bsie import base
from bsie.base import errors
-from bsie.utils.bsfs import URI, typename
from bsie.utils import bsfs
# inner-module imports
@@ -75,20 +74,20 @@ class ReaderBuilder():
"""
# keyword arguments
- kwargs: typing.Dict[str, typing.Dict[str, typing.Any]]
+ _kwargs: typing.Dict[str, typing.Dict[str, typing.Any]]
# cached readers
- cache: typing.Dict[str, base.reader.Reader]
+ _cache: typing.Dict[str, base.Reader]
def __init__(self, kwargs: typing.Dict[str, typing.Dict[str, typing.Any]]):
- self.kwargs = kwargs
- self.cache = {}
+ self._kwargs = kwargs
+ self._cache = {}
def build(self, name: str) -> base.Reader:
"""Return an instance for the qualified class name."""
# return cached instance
- if name in self.cache:
- return self.cache[name]
+ if name in self._cache:
+ return self._cache[name]
# check name and get module/class components
module_name, class_name = _unpack_name(name)
@@ -97,14 +96,14 @@ class ReaderBuilder():
cls = _safe_load(module_name, class_name)
# get kwargs
- kwargs = self.kwargs.get(name, {})
+ kwargs = self._kwargs.get(name, {})
if not isinstance(kwargs, dict):
raise TypeError(f'expected a kwargs dict, found {bsfs.typename(kwargs)}')
try: # build, cache, and return instance
obj = cls(**kwargs)
# cache instance
- self.cache[name] = obj
+ self._cache[name] = obj
# return instance
return obj
@@ -125,19 +124,19 @@ class ExtractorBuilder():
"""
# build specifications
- specs: typing.List[typing.Dict[str, typing.Dict[str, typing.Any]]]
+ _specs: typing.List[typing.Dict[str, typing.Dict[str, typing.Any]]]
def __init__(self, specs: typing.List[typing.Dict[str, typing.Dict[str, typing.Any]]]):
- self.specs = specs
+ self._specs = specs
def __iter__(self) -> typing.Iterator[int]:
"""Iterate over extractor specifications."""
- return iter(range(len(self.specs)))
+ return iter(range(len(self._specs)))
def build(self, index: int) -> base.Extractor:
"""Return an instance of the n'th extractor (n=*index*)."""
# get build instructions
- specs = self.specs[index]
+ specs = self._specs[index]
# check specs structure. expecting[{name: {kwargs}}]
if not isinstance(specs, dict):