aboutsummaryrefslogtreecommitdiffstats
path: root/bsie/apps/index.py
diff options
context:
space:
mode:
authorMatthias Baumgartner <dev@igsor.net>2023-02-08 19:25:19 +0100
committerMatthias Baumgartner <dev@igsor.net>2023-02-08 19:25:19 +0100
commit7bf6b33fa6d6b901e4933bfe0b2a9939d7b3f3f3 (patch)
treed280d9d1e19e4f7a9d0d4b5405603c729e1fdcce /bsie/apps/index.py
parent05a841215c82ef40d4679dfc4d2c26572bd4d349 (diff)
parent0d0144466919cfb168e75c2af26d5cb74e10bfa0 (diff)
downloadbsie-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.py23
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