diff options
-rw-r--r-- | bsie/apps/index.py | 5 | ||||
-rw-r--r-- | bsie/apps/info.py | 4 | ||||
-rw-r--r-- | bsie/tools/builder.py | 13 | ||||
-rw-r--r-- | bsie/tools/pipeline.py | 4 | ||||
-rw-r--r-- | test/lib/test_bsie.py | 2 | ||||
-rw-r--r-- | test/tools/test_pipeline.py | 5 |
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 |