diff options
author | Matthias Baumgartner <dev@igsor.net> | 2022-10-31 14:14:57 +0100 |
---|---|---|
committer | Matthias Baumgartner <dev@igsor.net> | 2022-10-31 14:14:57 +0100 |
commit | 9389c741bdbbca9adbff6099d440706cd63deac4 (patch) | |
tree | 48ee0e912e2f19f51bd684d790f0bcc2d906e887 /bsie/extractor/generic/constant.py | |
parent | d4023fa972af379a4235f51783954671de974372 (diff) | |
parent | 2da348c638ac5058d5acf09ab5df323ee04503d5 (diff) | |
download | bsie-9389c741bdbbca9adbff6099d440706cd63deac4.tar.gz bsie-9389c741bdbbca9adbff6099d440706cd63deac4.tar.bz2 bsie-9389c741bdbbca9adbff6099d440706cd63deac4.zip |
Merge branch 'mb/extractors' into develop
Diffstat (limited to 'bsie/extractor/generic/constant.py')
-rw-r--r-- | bsie/extractor/generic/constant.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/bsie/extractor/generic/constant.py b/bsie/extractor/generic/constant.py new file mode 100644 index 0000000..e243131 --- /dev/null +++ b/bsie/extractor/generic/constant.py @@ -0,0 +1,52 @@ +"""The Constant extractor produces pre-specified triples. + +Part of the bsie module. +A copy of the license is provided with the project. +Author: Matthias Baumgartner, 2022 +""" +# imports +import typing + +# inner-module imports +from bsie.base import extractor +from bsie.utils.bsfs import URI +from bsie.utils.node import Node + +# exports +__all__: typing.Sequence[str] = ( + 'Constant', + ) + + +## code ## + +class Constant(extractor.Extractor): + """Extract information from file's path.""" + + CONTENT_READER = None + + def __init__( + self, + schema: str, + tuples: typing.Iterable[typing.Tuple[URI, typing.Any]], + ): + self._schema = schema + self._tuples = tuples + # FIXME: use schema instance for predicate checking + #self._tuples = [(pred, value) for pred, value in tuples if pred in schema] + # FIXME: use schema instance for value checking + + def schema(self) -> str: + return self._schema + + def extract( + self, + subject: Node, + content: None, + predicates: typing.Iterable[URI], + ) -> typing.Iterator[typing.Tuple[Node, URI, typing.Any]]: + for pred, value in self._tuples: + if pred in predicates: + yield subject, pred, value + +## EOF ## |