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

1# SPDX-FileCopyrightText: 2021-2026 Arcangelo Massari <arcangelo.massari@unibo.it> 

2# 

3# SPDX-License-Identifier: ISC 

4 

5from argparse import ArgumentParser 

6 

7from oc_ocdm.graph import GraphSet 

8 

9from oc_meta.core.editor import MetaEditor 

10 

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)