aboutsummaryrefslogtreecommitdiffstats
path: root/bsie
diff options
context:
space:
mode:
authorMatthias Baumgartner <dev@igsor.net>2022-12-15 17:17:53 +0100
committerMatthias Baumgartner <dev@igsor.net>2022-12-15 17:17:53 +0100
commit3426b4e201cf03b78d2a3f144876955fcda2f66b (patch)
tree80c2b55bdbd2330639f98174fe5f5a571fa40497 /bsie
parent5d9526783ad8432c7d6dfe18c0e9f2b37950b470 (diff)
downloadbsie-3426b4e201cf03b78d2a3f144876955fcda2f66b.tar.gz
bsie-3426b4e201cf03b78d2a3f144876955fcda2f66b.tar.bz2
bsie-3426b4e201cf03b78d2a3f144876955fcda2f66b.zip
extractor interface revision
* schema as property * predicates -> principals
Diffstat (limited to 'bsie')
-rw-r--r--bsie/base/extractor.py21
-rw-r--r--bsie/extractor/generic/constant.py8
-rw-r--r--bsie/extractor/generic/path.py7
-rw-r--r--bsie/extractor/generic/stat.py7
4 files changed, 22 insertions, 21 deletions
diff --git a/bsie/base/extractor.py b/bsie/base/extractor.py
index 678dcec..c44021b 100644
--- a/bsie/base/extractor.py
+++ b/bsie/base/extractor.py
@@ -9,8 +9,6 @@ import abc
import typing
# bsie imports
-from bsie.utils import node
-from bsie.utils.bsfs import schema as _schema, typename
from bsie.utils import bsfs, node, ns
# exports
@@ -58,10 +56,10 @@ class Extractor(abc.ABC):
CONTENT_READER: typing.Optional[str] = None
# extractor schema.
- schema: _schema.Schema
+ _schema: bsfs.schema.Schema
- def __init__(self, schema: _schema.Schema):
- self.schema = schema
+ def __init__(self, schema: bsfs.schema.Schema):
+ self._schema = schema
def __str__(self) -> str:
return bsfs.typename(self)
@@ -77,7 +75,14 @@ class Extractor(abc.ABC):
def __hash__(self) -> int:
return hash((type(self), self.CONTENT_READER, self.schema))
- def predicates(self) -> typing.Iterator[_schema.Predicate]:
+ @property
+ def schema(self) -> bsfs.schema.Schema:
+ """Return the extractor's schema."""
+ return self._schema
+
+ @property
+ def principals(self) -> typing.Iterator[bsfs.schema.Predicate]:
+ """Return the principal predicates, i.e., relations from/to the extraction subject."""
ent = self.schema.node(ns.bsfs.Entity)
return (
pred
@@ -91,8 +96,8 @@ class Extractor(abc.ABC):
self,
subject: node.Node,
content: typing.Any,
- predicates: typing.Iterable[_schema.Predicate],
- ) -> typing.Iterator[typing.Tuple[node.Node, _schema.Predicate, typing.Any]]:
+ principals: typing.Iterable[bsfs.schema.Predicate],
+ ) -> typing.Iterator[typing.Tuple[node.Node, bsfs.schema.Predicate, typing.Any]]:
"""Return (node, predicate, value) triples."""
## EOF ##
diff --git a/bsie/extractor/generic/constant.py b/bsie/extractor/generic/constant.py
index f9e3415..cdb2ef6 100644
--- a/bsie/extractor/generic/constant.py
+++ b/bsie/extractor/generic/constant.py
@@ -9,8 +9,6 @@ import typing
# bsie imports
from bsie.base import extractor
-from bsie.utils.bsfs import URI, schema as _schema
-from bsie.utils.node import Node
from bsie.utils import bsfs, node
# exports
@@ -50,10 +48,10 @@ class Constant(extractor.Extractor):
self,
subject: node.Node,
content: None,
- predicates: typing.Iterable[_schema.Predicate],
- ) -> typing.Iterator[typing.Tuple[Node, _schema.Predicate, typing.Any]]:
+ principals: typing.Iterable[bsfs.schema.Predicate],
+ ) -> typing.Iterator[typing.Tuple[node.Node, bsfs.schema.Predicate, typing.Any]]:
for pred, value in self._tuples:
- if pred in predicates:
+ if pred in principals:
yield subject, pred, value
## EOF ##
diff --git a/bsie/extractor/generic/path.py b/bsie/extractor/generic/path.py
index 00165e3..23ae80b 100644
--- a/bsie/extractor/generic/path.py
+++ b/bsie/extractor/generic/path.py
@@ -10,7 +10,6 @@ import typing
# bsie imports
from bsie.base import extractor
-from bsie.utils.bsfs import schema
from bsie.utils import bsfs, node, ns
# exports
@@ -46,9 +45,9 @@ class Path(extractor.Extractor):
self,
subject: node.Node,
content: str,
- predicates: typing.Iterable[schema.Predicate],
- ) -> typing.Iterator[typing.Tuple[node.Node, schema.Predicate, typing.Any]]:
- for pred in predicates:
+ principals: typing.Iterable[bsfs.schema.Predicate],
+ ) -> typing.Iterator[typing.Tuple[node.Node, bsfs.schema.Predicate, typing.Any]]:
+ for pred in principals:
# find callback
clbk = self._callmap.get(pred)
if clbk is None:
diff --git a/bsie/extractor/generic/stat.py b/bsie/extractor/generic/stat.py
index 0f4267f..1dcfedf 100644
--- a/bsie/extractor/generic/stat.py
+++ b/bsie/extractor/generic/stat.py
@@ -10,7 +10,6 @@ import typing
# bsie imports
from bsie.base import extractor
-from bsie.utils.bsfs import schema as _schema
from bsie.utils import bsfs, node, ns
# exports
@@ -46,9 +45,9 @@ class Stat(extractor.Extractor):
self,
subject: node.Node,
content: os.stat_result,
- predicates: typing.Iterable[_schema.Predicate],
- ) -> typing.Iterator[typing.Tuple[node.Node, _schema.Predicate, typing.Any]]:
- for pred in predicates:
+ principals: typing.Iterable[bsfs.schema.Predicate],
+ ) -> typing.Iterator[typing.Tuple[node.Node, bsfs.schema.Predicate, typing.Any]]:
+ for pred in principals:
# find callback
clbk = self._callmap.get(pred)
if clbk is None: