aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Baumgartner <dev@igsor.net>2022-12-15 17:16:25 +0100
committerMatthias Baumgartner <dev@igsor.net>2022-12-15 17:16:25 +0100
commit5d9526783ad8432c7d6dfe18c0e9f2b37950b470 (patch)
tree0562bf41b675f2546cb473bb583a78865d73928b
parent8e6d27ea75d2c8d68f6dd8b3d529aaa278f291cc (diff)
downloadbsie-5d9526783ad8432c7d6dfe18c0e9f2b37950b470.tar.gz
bsie-5d9526783ad8432c7d6dfe18c0e9f2b37950b470.tar.bz2
bsie-5d9526783ad8432c7d6dfe18c0e9f2b37950b470.zip
Pipeline.prefix as Namespace instead of URI
-rw-r--r--bsie/apps/index.py5
-rw-r--r--bsie/apps/info.py4
-rw-r--r--bsie/tools/builder.py13
-rw-r--r--bsie/tools/pipeline.py4
-rw-r--r--test/lib/test_bsie.py2
-rw-r--r--test/tools/test_pipeline.py5
6 files changed, 20 insertions, 13 deletions
diff --git a/bsie/apps/index.py b/bsie/apps/index.py
index aa26d0f..e37684b 100644
--- a/bsie/apps/index.py
+++ b/bsie/apps/index.py
@@ -26,7 +26,7 @@ __all__: typing.Sequence[str] = (
def main(argv):
"""Index files or directories into BSFS."""
parser = argparse.ArgumentParser(description=main.__doc__, prog='index')
- parser.add_argument('--user', type=URI, default=URI('http://example.com/me'),
+ parser.add_argument('--user', type=bsfs.URI, default=bsfs.URI('http://example.com/me'),
help='')
parser.add_argument('--collect', action='append', default=[],
help='')
@@ -60,9 +60,8 @@ def main(argv):
)},
])
# pipeline builder
- prefix = URI(args.user + ('file#' if args.user.endswith('/') else '/file#'))
pbuild = builder.PipelineBuilder(
- prefix,
+ bsfs.Namespace(args.user + ('/' if not args.user.endswith('/') else '')),
rbuild,
ebuild,
)
diff --git a/bsie/apps/info.py b/bsie/apps/info.py
index 8cc6dca..eaf1f71 100644
--- a/bsie/apps/info.py
+++ b/bsie/apps/info.py
@@ -12,7 +12,7 @@ import typing
# bsie imports
from bsie.base import errors
from bsie.tools import builder
-from bsie.utils.bsfs import URI
+from bsie.utils import bsfs
# exports
__all__: typing.Sequence[str] = (
@@ -48,7 +48,7 @@ def main(argv):
])
# pipeline builder
pbuild = builder.PipelineBuilder(
- URI('http://example.com/me/file#'), # not actually used
+ bsfs.Namespace('http://example.com/me/'), # not actually used
rbuild,
ebuild,
)
diff --git a/bsie/tools/builder.py b/bsie/tools/builder.py
index 8c6b931..24aea84 100644
--- a/bsie/tools/builder.py
+++ b/bsie/tools/builder.py
@@ -163,15 +163,24 @@ class ExtractorBuilder():
return cls(**kwargs)
except Exception as err:
- raise errors.BuilderError(f'failed to build extractor {name} due to {typename(err)}: {err}') from err
+ raise errors.BuilderError(f'failed to build extractor {name} due to {bsfs.typename(err)}: {err}') from err
class PipelineBuilder():
"""Build `bsie.tools.pipeline.Pipeline` instances."""
+ # Prefix to be used in the Pipeline.
+ prefix: bsfs.Namespace
+
+ # builder for Readers.
+ rbuild: ReaderBuilder
+
+ # builder for Extractors.
+ ebuild: ExtractorBuilder
+
def __init__(
self,
- prefix: URI,
+ prefix: bsfs.Namespace,
reader_builder: ReaderBuilder,
extractor_builder: ExtractorBuilder,
):
diff --git a/bsie/tools/pipeline.py b/bsie/tools/pipeline.py
index 3d08993..834bd99 100644
--- a/bsie/tools/pipeline.py
+++ b/bsie/tools/pipeline.py
@@ -39,14 +39,14 @@ class Pipeline():
schema: _schema.Schema
# node prefix.
- _prefix: URI
+ _prefix: bsfs.Namespace
# extractor -> reader mapping
_ext2rdr: typing.Dict[base.extractor.Extractor, typing.Optional[base.reader.Reader]]
def __init__(
self,
- prefix: URI,
+ prefix: bsfs.Namespace,
ext2rdr: typing.Dict[base.extractor.Extractor, typing.Optional[base.reader.Reader]]
):
# store core members
diff --git a/test/lib/test_bsie.py b/test/lib/test_bsie.py
index 6720746..43e7b1d 100644
--- a/test/lib/test_bsie.py
+++ b/test/lib/test_bsie.py
@@ -40,7 +40,7 @@ class TestBSIE(unittest.TestCase):
)},
])
# build pipeline
- self.prefix = URI('http://example.com/local/file#')
+ self.prefix = bsfs.Namespace('http://example.com/local/file#')
pbuild = builder.PipelineBuilder(self.prefix, rbuild, ebuild)
self.pipeline = pbuild.build()
diff --git a/test/tools/test_pipeline.py b/test/tools/test_pipeline.py
index 611f8b0..e440ab5 100644
--- a/test/tools/test_pipeline.py
+++ b/test/tools/test_pipeline.py
@@ -11,7 +11,6 @@ import unittest
# bsie imports
from bsie.base import errors
-from bsie.utils.bsfs import URI
from bsie.utils import bsfs, node, ns
import bsie.extractor.generic.constant
import bsie.extractor.generic.path
@@ -50,7 +49,7 @@ class TestPipeline(unittest.TestCase):
bsie.extractor.generic.constant.Constant(csA, tupA): None,
bsie.extractor.generic.constant.Constant(csB, tupB): None,
}
- self.prefix = URI('http://example.com/local/file#')
+ self.prefix = bsfs.Namespace('http://example.com/local/')
def test_essentials(self):
pipeline = Pipeline(self.prefix, self.ext2rdr)
@@ -101,7 +100,7 @@ class TestPipeline(unittest.TestCase):
p_filesize = pipeline.schema.predicate(ns.bse.filesize)
p_author = pipeline.schema.predicate(ns.bse.author)
p_rating = pipeline.schema.predicate(ns.bse.rating)
- entity = pipeline.schema.node(ns.bsfs.Entity)
+ entity = pipeline.schema.node(ns.bsfs.File)
p_invalid = pipeline.schema.predicate(ns.bsfs.Predicate).get_child(ns.bse.foo, range=entity)
# extract given predicates