From 6ff467a52852ed52cc0888c4e3462f58ee43fb92 Mon Sep 17 00:00:00 2001 From: Daniel Weschke Date: Sun, 10 Feb 2019 11:15:19 +0100 Subject: [PATCH] transfer read material to own def and handle errors --- src/materials.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/materials.py b/src/materials.py index daa2fb9..1b9d38f 100755 --- a/src/materials.py +++ b/src/materials.py @@ -58,11 +58,22 @@ def read_file(filename): """\ Read file as string """ + with open(filename) as data_file: + return data_file.read() + + +def read_material(materialname, fullpath=True): + """\ + Read material file as string + """ + filename = os.path.join('data', materialname + '.json') + if fullpath: + filename = absolute_path(filename) try: - with open(filename) as data_file: - return data_file.read() + return read_file(filename) except (OSError, IOError) as err: - print(str(err)) + print("Error: Material '%s' not found" % materialname, file=sys.stderr) + print(str(err), file=sys.stderr) sys.exit(2) @@ -171,8 +182,7 @@ def main(): print_dict(data_dict, False, 2) elif args.command == 'get': - filename = os.path.join('data', args.materialname.lower() + '.json') - data = read_file(absolute_path(filename)) + data = read_material(args.materialname) if args.debug: print("filename: " + filename) if args.const_collection: