diff options
author | Matthias Baumgartner <dev@igsor.net> | 2023-02-08 19:25:19 +0100 |
---|---|---|
committer | Matthias Baumgartner <dev@igsor.net> | 2023-02-08 19:25:19 +0100 |
commit | 7bf6b33fa6d6b901e4933bfe0b2a9939d7b3f3f3 (patch) | |
tree | d280d9d1e19e4f7a9d0d4b5405603c729e1fdcce /bsie/apps/index.py | |
parent | 05a841215c82ef40d4679dfc4d2c26572bd4d349 (diff) | |
parent | 0d0144466919cfb168e75c2af26d5cb74e10bfa0 (diff) | |
download | bsie-7bf6b33fa6d6b901e4933bfe0b2a9939d7b3f3f3.tar.gz bsie-7bf6b33fa6d6b901e4933bfe0b2a9939d7b3f3f3.tar.bz2 bsie-7bf6b33fa6d6b901e4933bfe0b2a9939d7b3f3f3.zip |
Merge branch 'previews' into develop
Diffstat (limited to 'bsie/apps/index.py')
-rw-r--r-- | bsie/apps/index.py | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/bsie/apps/index.py b/bsie/apps/index.py index 21c2318..8798c49 100644 --- a/bsie/apps/index.py +++ b/bsie/apps/index.py @@ -11,9 +11,9 @@ import typing # bsie imports from bsie.extractor import ExtractorBuilder -from bsie.lib import BSIE, PipelineBuilder +from bsie.lib import BSIE, PipelineBuilder, DefaultNamingPolicy from bsie.reader import ReaderBuilder -from bsie.utils import bsfs, errors +from bsie.utils import bsfs, errors, node as node_ # exports __all__: typing.Sequence[str] = ( @@ -26,7 +26,9 @@ __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=bsfs.URI, default=bsfs.URI('http://example.com/me'), + parser.add_argument('--host', type=bsfs.URI, default=bsfs.URI('http://example.com'), + help='') + parser.add_argument('--user', type=str, default='me', help='') parser.add_argument('--collect', action='append', default=[], help='') @@ -47,6 +49,9 @@ def main(argv): rbuild = ReaderBuilder() # extractor builder ebuild = ExtractorBuilder([ + {'bsie.extractor.preview.Preview': { + 'max_sides': [50], + }}, {'bsie.extractor.generic.path.Path': {}}, {'bsie.extractor.generic.stat.Stat': {}}, {'bsie.extractor.generic.constant.Constant': dict( @@ -66,16 +71,19 @@ def main(argv): ]) # pipeline builder pbuild = PipelineBuilder( - bsfs.Namespace(args.user + ('/' if not args.user.endswith('/') else '')), rbuild, ebuild, ) # build pipeline pipeline = pbuild.build() + # build the naming policy + naming_policy = DefaultNamingPolicy( + host=args.host, + user=args.user, + ) # build BSIE frontend - bsie = BSIE(pipeline, args.collect, args.discard) - + bsie = BSIE(pipeline, naming_policy, args.collect, args.discard) def walk(handle): """Walk through given input files.""" @@ -83,7 +91,6 @@ def main(argv): # FIXME: simplify code (below but maybe also above) # FIXME: How to handle dependencies between data? # E.g. do I still want to link to a tag despite not being permitted to set its label? - # FIXME: node renaming? # index input paths for path in args.input_file: @@ -112,6 +119,8 @@ def main(argv): store.migrate(bsie.schema) # process files def handle(node, pred, value): + if isinstance(value, node_.Node): + value = store.node(value.node_type, value.uri) store.node(node.node_type, node.uri).set(pred.uri, value) walk(handle) # return store |