Coverage for oc_meta / run / meta_editor.py: 17%
24 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-04-21 09:24 +0000
« prev ^ index » next coverage.py v7.13.4, created at 2026-04-21 09:24 +0000
1# SPDX-FileCopyrightText: 2021-2026 Arcangelo Massari <arcangelo.massari@unibo.it>
2#
3# SPDX-License-Identifier: ISC
5from argparse import ArgumentParser
7from oc_ocdm.graph import GraphSet
9from oc_meta.core.editor import MetaEditor
11if __name__ == '__main__':
12 arg_parser = ArgumentParser('meta_editor.py', description='This script edits OpenCitations Meta triplestore, RDF and provenance')
13 arg_parser.add_argument('-c', '--config', dest='config', required=True, help='Configuration file directory')
14 arg_parser.add_argument('-op', '--operation', dest='operation', required=True, choices=['update', 'delete', 'sync', 'merge'], help='The CRUD operation to perform')
15 arg_parser.add_argument('-s', '--subject', dest='res', required=True, help='The subject entity')
16 arg_parser.add_argument('-p', '--property', dest='property', required=False, help='The property')
17 arg_parser.add_argument('-o', '--object', dest='value', required=False, help='The value')
18 arg_parser.add_argument('-ot', '--other', dest='other', required=False, help='Other res to be merged with res')
19 arg_parser.add_argument('-r', '--resp', dest='resp_agent', required=True, help='Your ORCID')
20 args = arg_parser.parse_args()
21 meta_editor = MetaEditor(args.config, args.resp_agent)
22 if args.operation == 'update':
23 meta_editor.update_property(args.res, args.property, args.value)
24 elif args.operation == 'delete':
25 meta_editor.delete(args.res, args.property, args.value)
26 elif args.operation == 'sync':
27 meta_editor.sync_rdf_with_triplestore(args.res)
28 elif args.operation == 'merge':
29 g_set = GraphSet(
30 meta_editor.base_iri, custom_counter_handler=meta_editor.counter_handler
31 )
32 meta_editor.merge(g_set, args.res, args.other)
33 meta_editor.save(g_set)