aboutsummaryrefslogtreecommitdiffstats
path: root/bsie/tools/builder.py
diff options
context:
space:
mode:
Diffstat (limited to 'bsie/tools/builder.py')
-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):