def main(): # Note: We parse the args here once to find the log printer to use. # Also, commands like -h (help) and -v (version) are executed here. # The args are again parsed later to find the settings and configs # to use during analysis. arg_parser = default_arg_parser() args = arg_parser.parse_args() log_printer = None if args.text_logs else ListLogPrinter() results, exitcode = run_coala(log_printer=log_printer, autoapply=False) retval = {"results": results} if not args.text_logs: retval["logs"] = log_printer.logs JSONEncoder = create_json_encoder(use_relpath=args.relpath) if args.output: filename = str(args.output) with open(filename, 'w+') as fp: json.dump(retval, fp, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': ')) else: print(json.dumps(retval, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': '))) return exitcode
def main(): # Note: We parse the args here once to find the log printer to use. # Also, commands like -h (help) and -v (version) are executed here. # The args are again parsed later to find the settings and configs # to use during analysis. arg_parser = default_arg_parser() args = arg_parser.parse_args() log_printer = None if args.text_logs else ListLogPrinter() results, exitcode, _ = run_coala(log_printer=log_printer, autoapply=False) retval = {"results": results} if not args.text_logs: retval["logs"] = log_printer.logs JSONEncoder = create_json_encoder(use_relpath=args.relpath) if args.output: filename = str(args.output[0]) with open(filename, 'w+') as fp: json.dump(retval, fp, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': ')) else: print( json.dumps(retval, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': '))) return exitcode
def print_bears(bears, show_description, show_params, console_printer, args=None): """ Presents all bears being used in a stylized manner. :param bears: It's a dictionary with bears as keys and list of sections containing those bears as values. :param show_description: This parameter is deprecated. :param show_params: This parameter is deprecated. :param console_printer: Object to print messages on the console. :param args: Args passed to coala command. """ check_deprecation(OrderedDict([ ('show_description', show_description), ('show_params', show_params)])) if not bears and not (args and args.json): console_printer.print('No bears to show. Did you forget to install ' 'the `coala-bears` package? Try `pip3 install ' 'coala-bears`.') return results = [bear for bear, _ in sorted(bears.items(), key=lambda bear_tuple: bear_tuple[0].name.lower())] if args and args.json: from coalib.output.JSONEncoder import create_json_encoder JSONEncoder = create_json_encoder(use_relpath=args.relpath) json_output = {} if args.show_details: json_output['bears'] = results else: json_output['bears'] = [bear.name for bear in results] import json json_formatted_output = json.dumps(json_output, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': ')) if args.output: filename = args.output[0] with open(filename, 'w') as fp: fp.write(json_formatted_output) else: print(json_formatted_output) elif args and args.format: print_bears_formatted(results) else: for bear in results: show_bear(bear, show_description, show_params, console_printer, args)
def main(): arg_parser = get_args() args = arg_parser.parse_args() dir_path = create_dir(os.path.abspath(args.dir)) if len(list(os.walk(dir_path))) > 0: copy_files(get_file(Constants.COALA_HTML_BASE), dir_path) if not args.noupdate: log_printer = ListLogPrinter() results, exitcode, file_dict = run_coala( log_printer=log_printer, autoapply=False, arg_parser=arg_parser) result_data = {"results": results} result_data["logs"] = log_printer.logs JSONEncoder = create_json_encoder(use_relpath=False) result_file = get_file(Constants.CONFIGS['results_file'], dir_path) file_data = get_file(Constants.CONFIGS['file_data'], dir_path) file_tree_data = get_file(Constants.CONFIGS['files'], dir_path) with open(file_tree_data, 'w') as fp: file_graph = build_file_graph(file_dict, dir_path) json.dump(file_graph, fp, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': ')) with open(result_file, 'w') as fp: json.dump(result_data, fp, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': ')) with open(file_data, 'w') as fp: json.dump(parse_file_dict(file_dict), fp, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': ')) if not args.nolaunch: # Launch server with reference point dir_path os.chdir(dir_path) if not os.path.exists('bower_components'): res = call(['bower', 'install']) if res != 0: print("Bower is required. Install from `http://bower.io/`") sys.exit(1) Handler = http.server.SimpleHTTPRequestHandler httpd = socketserver.TCPServer(("", Constants.PORT), Handler) print("serving at ", Constants.URL) print("Press Ctrl+C to end the coala-html session") httpd.serve_forever() webbrowser.open(Constants.URL, new=2)
def print_bears(bears, show_description, show_params, console_printer, args=None): """ Presents all bears being used in a stylized manner. :param bears: It's a dictionary with bears as keys and list of sections containing those bears as values. :param show_description: This parameter is deprecated. :param show_params: This parameter is deprecated. :param console_printer: Object to print messages on the console. :param args: Args passed to coala command. """ check_deprecation( OrderedDict([('show_description', show_description), ('show_params', show_params)])) if not bears and not (args and args.json): console_printer.print('No bears to show. Did you forget to install ' 'the `coala-bears` package? Try `pip3 install ' 'coala-bears`.') return results = [ bear for bear, _ in sorted( bears.items(), key=lambda bear_tuple: bear_tuple[0].name.lower()) ] if args and args.json: from coalib.output.JSONEncoder import create_json_encoder JSONEncoder = create_json_encoder(use_relpath=args.relpath) json_output = {} if args.show_details: json_output['bears'] = results else: json_output['bears'] = [bear.name for bear in results] import json json_formatted_output = json.dumps(json_output, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': ')) if args.output: filename = args.output[0] with open(filename, 'w') as fp: fp.write(json_formatted_output) else: print(json_formatted_output) elif args and args.format: print_bears_formatted(results) else: for bear in results: show_bear(bear, show_description, show_params, console_printer, args)
class JSONEncoderTest(unittest.TestCase): JSONEncoder = create_json_encoder(use_relpath=True) kw = {"cls": JSONEncoder, "sort_keys": True} def test_builtins(self): self.assertEquals('"test"', json.dumps("test", **self.kw)) self.assertEquals('1', json.dumps(1, **self.kw)) self.assertEquals('true', json.dumps(True, **self.kw)) self.assertEquals('null', json.dumps(None, **self.kw)) def test_iter(self): self.assertEquals('[0, 1]', json.dumps([0, 1], **self.kw)) self.assertEquals('[0, 1]', json.dumps((0, 1), **self.kw)) self.assertEquals('[0, 1]', json.dumps(range(2), **self.kw)) def test_dict(self): self.assertEquals('{"0": 1}', json.dumps({0: 1}, **self.kw)) self.assertEquals('{"0": 1}', json.dumps({"0": 1}, **self.kw)) self.assertEquals('{"0": "1"}', json.dumps({"0": "1"}, **self.kw)) def test_time(self): tf = datetime.today() self.assertEquals('"' + tf.isoformat() + '"', json.dumps(tf, **self.kw)) def test_re_object(self): uut = re.compile('x') self.assertEqual('"' + uut.pattern + '"', json.dumps(uut, **self.kw)) def test_class1(self): tc1 = TestClass1() self.assertEquals('{"a": 0}', json.dumps(tc1, **self.kw)) self.assertEquals('[{"a": 0}]', json.dumps([tc1], **self.kw)) self.assertEquals('{"0": {"a": 0}}', json.dumps({0: tc1}, **self.kw)) def test_class2(self): tc2 = TestClass2() self.assertEquals('{"a": 0, "b": {"a": 0}}', json.dumps(tc2, **self.kw)) def test_class3(self): tc3 = TestClass3() self.assertEquals('{"key": "val"}', json.dumps(tc3, **self.kw)) def test_propertied_class(self): uut = PropertiedClass() self.assertEqual('{"prop": 5}', json.dumps(uut, **self.kw)) def test_jsonable_class(self): uut = JSONAbleClass() self.assertEqual('["dont", "panic"]', json.dumps(uut, **self.kw)) def test_type_error(self): with self.assertRaises(TypeError): json.dumps(1j, **self.kw)
def mode_json(args, debug=False): import json from coalib.coala_main import run_coala from coalib.misc.DictUtilities import inverse_dicts from coalib.misc.Exceptions import get_exitcode from coalib.output.Logging import configure_json_logging from coalib.output.JSONEncoder import create_json_encoder if args.log_json: log_stream = configure_json_logging() JSONEncoder = create_json_encoder(use_relpath=args.relpath) results = [] if args.show_bears: try: from coalib.parsing.FilterHelper import FilterHelper local_bears, global_bears = FilterHelper.apply_filter( 'language', args.filter_by_language) bears = inverse_dicts(local_bears, global_bears) for bear, _ in sorted(bears.items(), key=lambda bear_tuple: bear_tuple[0].name): results.append(bear) except BaseException as exception: # pylint: disable=broad-except return get_exitcode(exception) else: results, exitcode, _ = run_coala(args=args, debug=debug) retval = {'bears': results} if args.show_bears else {'results': results} if args.log_json: retval['logs'] = [ json.loads(line) for line in log_stream.getvalue().splitlines() ] if args.output: filename = str(args.output[0]) with open(filename, 'w+') as fp: json.dump(retval, fp, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': ')) else: print( json.dumps(retval, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': '))) return 0 if args.show_bears else exitcode
def test_json_export(self): JSONEncoder = create_json_encoder() a = ['first\n', 'second\n', 'third\n'] b = ['first\n', 'third\n'] diff = Diff.from_string_arrays(a, b) self.assertEqual( json.dumps(diff, cls=JSONEncoder, sort_keys=True), '"--- \\n' '+++ \\n' '@@ -1,3 +1,2 @@\\n' ' first\\n' '-second\\n' ' third\\n"')
def test_json_diff(self): file_dict = {'f_a': ['1', '2', '3'], 'f_b': ['1', '2', '3']} diff = Diff(file_dict['f_a']) diff.delete_line(2) diff.change_line(3, '3', '3_changed') uut = Result('origin', 'msg', diffs={'f_a': diff}).__json__(True) self.assertEqual( uut['diffs']['f_a'].__json__(), '--- \n' '+++ \n' '@@ -1,3 +1,2 @@\n' ' 1-2-3+3_changed') JSONEncoder = create_json_encoder(use_relpath=True) json_dump = json.dumps(diff, cls=JSONEncoder, sort_keys=True) self.assertEqual(json_dump, '"--- \\n+++ \\n@@ -1,3 +1,2 @@\\n 1-2-3+3_changed"')
def test_json_diff(self): file_dict = {"f_a": ["1", "2", "3"], "f_b": ["1", "2", "3"]} expected_file = {"f_a": ["1", "3_changed"], "f_b": ["1", "2", "3"]} diff = Diff(file_dict['f_a']) diff.delete_line(2) diff.change_line(3, "3", "3_changed") uut = Result("origin", "msg", diffs={"f_a": diff}).__json__(True) self.assertEqual( uut["diffs"]['f_a'].__json__(), "--- \n" "+++ \n" "@@ -1,3 +1,2 @@\n" " 1-2-3+3_changed") JSONEncoder = create_json_encoder(use_relpath=True) json_dump = json.dumps(diff, cls=JSONEncoder, sort_keys=True) self.assertEqual(json_dump, '"--- \\n+++ \\n@@ -1,3 +1,2 @@\\n 1-2-3+3_changed"')
def main(): # Note: We parse the args here once to find the log printer to use. # Also, commands like -h (help) and -v (version) are executed here. # The args are again parsed later to find the settings and configs # to use during analysis. arg_parser = default_arg_parser() args = arg_parser.parse_args() log_printer = None if args.text_logs else ListLogPrinter() JSONEncoder = create_json_encoder(use_relpath=args.relpath) results = [] if args.show_bears: try: local_bears, global_bears = get_filtered_bears( args.filter_by_language, log_printer) bears = inverse_dicts(local_bears, global_bears) for bear, _ in sorted(bears.items(), key=lambda bear_tuple: bear_tuple[0].name): results.append(bear) except BaseException as exception: # pylint: disable=broad-except return get_exitcode(exception, log_printer) else: results, exitcode, _ = run_coala(log_printer=log_printer, autoapply=False) retval = {"bears": results} if args.show_bears else {"results": results} if not args.text_logs: retval["logs"] = log_printer.logs if args.output: filename = str(args.output[0]) with open(filename, 'w+') as fp: json.dump(retval, fp, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': ')) else: print( json.dumps(retval, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': '))) return 0 if args.show_bears else exitcode
def main(): # Note: We parse the args here once to find the log printer to use. # Also, commands like -h (help) and -v (version) are executed here. # The args are again parsed later to find the settings and configs # to use during analysis. arg_parser = default_arg_parser() args = arg_parser.parse_args() log_printer = None if args.text_logs else ListLogPrinter() JSONEncoder = create_json_encoder(use_relpath=args.relpath) results = [] if args.show_bears: try: local_bears, global_bears = get_filtered_bears( args.filter_by_language, log_printer) bears = inverse_dicts(local_bears, global_bears) for bear, _ in sorted(bears.items(), key=lambda bear_tuple: bear_tuple[0].name): results.append(bear) except BaseException as exception: # pylint: disable=broad-except return get_exitcode(exception, log_printer) else: results, exitcode, _ = run_coala( log_printer=log_printer, autoapply=False) retval = {"bears": results} if args.show_bears else {"results": results} if not args.text_logs: retval["logs"] = log_printer.logs if args.output: filename = str(args.output[0]) with open(filename, 'w+') as fp: json.dump(retval, fp, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': ')) else: print(json.dumps(retval, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': '))) return 0 if args.show_bears else exitcode
def test_json_diff(self): file_dict = { "f_a": ["1", "2", "3"], "f_b": ["1", "2", "3"] } diff = Diff(file_dict['f_a']) diff.delete_line(2) diff.change_line(3, "3", "3_changed") uut = Result("origin", "msg", diffs={"f_a": diff}).__json__(True) self.assertEqual(uut["diffs"]['f_a'].__json__(), "--- \n" "+++ \n" "@@ -1,3 +1,2 @@\n" " 1-2-3+3_changed") JSONEncoder = create_json_encoder(use_relpath=True) json_dump = json.dumps(diff, cls=JSONEncoder, sort_keys=True) self.assertEqual( json_dump, '"--- \\n+++ \\n@@ -1,3 +1,2 @@\\n 1-2-3+3_changed"')
def test_json_diff(self): file_dict = { 'f_a': ['1', '2', '3'], 'f_b': ['1', '2', '3'] } diff = Diff(file_dict['f_a']) diff.delete_line(2) diff.change_line(3, '3', '3_changed') uut = Result('origin', 'msg', diffs={'f_a': diff}).__json__(True) self.assertEqual(uut['diffs']['f_a'].__json__(), '--- \n' '+++ \n' '@@ -1,3 +1,2 @@\n' ' 1-2-3+3_changed') JSONEncoder = create_json_encoder(use_relpath=True) json_dump = json.dumps(diff, cls=JSONEncoder, sort_keys=True) self.assertEqual( json_dump, '"--- \\n+++ \\n@@ -1,3 +1,2 @@\\n 1-2-3+3_changed"')
def mode_json(args): import json from coalib.coala_main import run_coala from coalib.misc.DictUtilities import inverse_dicts from coalib.misc.Exceptions import get_exitcode from coalib.output.JSONEncoder import create_json_encoder from coalib.output.printers.LogPrinter import LogPrinter from coalib.settings.ConfigurationGathering import get_filtered_bears JSONEncoder = create_json_encoder(use_relpath=args.relpath) results = [] if args.show_bears: try: local_bears, global_bears = get_filtered_bears( args.filter_by_language, LogPrinter()) bears = inverse_dicts(local_bears, global_bears) for bear, _ in sorted(bears.items(), key=lambda bear_tuple: bear_tuple[0].name): results.append(bear) except BaseException as exception: # pylint: disable=broad-except return get_exitcode(exception) else: results, exitcode, _ = run_coala() retval = {'bears': results} if args.show_bears else {'results': results} if args.output: filename = str(args.output[0]) with open(filename, 'w+') as fp: json.dump(retval, fp, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': ')) else: print( json.dumps(retval, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': '))) return 0 if args.show_bears else exitcode
def mode_json(args): import json from coalib.coala_main import run_coala from coalib.misc.DictUtilities import inverse_dicts from coalib.misc.Exceptions import get_exitcode from coalib.output.JSONEncoder import create_json_encoder from coalib.output.printers.LogPrinter import LogPrinter from coalib.parsing.DefaultArgParser import default_arg_parser from coalib.settings.ConfigurationGathering import get_filtered_bears JSONEncoder = create_json_encoder(use_relpath=args.relpath) results = [] if args.show_bears: try: local_bears, global_bears = get_filtered_bears( args.filter_by_language, LogPrinter()) bears = inverse_dicts(local_bears, global_bears) for bear, _ in sorted(bears.items(), key=lambda bear_tuple: bear_tuple[0].name): results.append(bear) except BaseException as exception: # pylint: disable=broad-except return get_exitcode(exception) else: results, exitcode, _ = run_coala() retval = {'bears': results} if args.show_bears else {'results': results} if args.output: filename = str(args.output[0]) with open(filename, 'w+') as fp: json.dump(retval, fp, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': ')) else: print(json.dumps(retval, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': '))) return 0 if args.show_bears else exitcode
def mode_json(args): import json from coalib.coala_main import run_coala from coalib.misc.DictUtilities import inverse_dicts from coalib.misc.Exceptions import get_exitcode from coalib.output.Logging import configure_json_logging from coalib.output.JSONEncoder import create_json_encoder from coalib.output.printers.LogPrinter import LogPrinter from coalib.settings.ConfigurationGathering import get_filtered_bears if args.log_json: log_stream = configure_json_logging() JSONEncoder = create_json_encoder(use_relpath=args.relpath) results = [] if args.show_bears: try: local_bears, global_bears = get_filtered_bears(args.filter_by_language, LogPrinter()) bears = inverse_dicts(local_bears, global_bears) for bear, _ in sorted(bears.items(), key=lambda bear_tuple: bear_tuple[0].name): results.append(bear) except BaseException as exception: # pylint: disable=broad-except return get_exitcode(exception) else: results, exitcode, _ = run_coala() retval = {"bears": results} if args.show_bears else {"results": results} if args.log_json: retval["logs"] = [json.loads(line) for line in log_stream.getvalue().splitlines()] if args.output: filename = str(args.output[0]) with open(filename, "w+") as fp: json.dump(retval, fp, cls=JSONEncoder, sort_keys=True, indent=2, separators=(",", ": ")) else: print(json.dumps(retval, cls=JSONEncoder, sort_keys=True, indent=2, separators=(",", ": "))) return 0 if args.show_bears else exitcode
def mode_json(args, debug=False): import json from coalib.coala_main import run_coala from coalib.output.Logging import configure_json_logging from coalib.output.JSONEncoder import create_json_encoder if args.log_json: log_stream = configure_json_logging() JSONEncoder = create_json_encoder(use_relpath=args.relpath) results, exitcode, _ = run_coala(args=args, debug=debug) retval = {'results': results} if args.log_json: retval['logs'] = [ json.loads(line) for line in log_stream.getvalue().splitlines() ] if args.output: filename = str(args.output[0]) with open(filename, 'w') as fp: json.dump(retval, fp, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': ')) else: print( json.dumps(retval, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': '))) return 0 if args.show_bears else exitcode
def mode_json(args, debug=False): import json from coalib.coala_main import run_coala from coalib.output.Logging import configure_json_logging from coalib.output.JSONEncoder import create_json_encoder if args.log_json: log_stream = configure_json_logging() JSONEncoder = create_json_encoder(use_relpath=args.relpath) results, exitcode, _ = run_coala(args=args, debug=debug) retval = {'results': results} if args.log_json: retval['logs'] = [json.loads(line) for line in log_stream.getvalue().splitlines()] if args.output: filename = str(args.output[0]) with open(filename, 'w') as fp: json.dump(retval, fp, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': ')) else: print(json.dumps(retval, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': '))) return 0 if args.show_bears else exitcode
results = [ Result( origin='TestBear', message='This is wrong', affected_code=(SourceRange.from_values(args['filename'], 1),), severity=RESULT_SEVERITY.MAJOR), Result( origin='TestBear', message='This is wrong too', affected_code=(SourceRange.from_values(args['filename'], 3),), severity=RESULT_SEVERITY.INFO)] if settings['set_normal_severity']: for res in results: res.severity = RESULT_SEVERITY.NORMAL if settings['set_sample_dbg_msg']: results[0].debug_msg = 'Sample debug message' if not settings['not_set_different_msg']: results[1].message = 'Different message' out = {} out['results'] = results JSONEncoder = create_json_encoder() json_dump = json.dumps(out, cls=JSONEncoder) sys.stdout.write(json_dump)
def main(): arg_parser = get_args() args = arg_parser.parse_args() dir_path = create_dir(os.path.abspath(args.dir)) main_package = gen_file_set(get_file(Constants.COALA_HTML_BASE)) local_package = gen_file_set(dir_path) if not main_package.issubset(local_package): # pragma: no cover copy_files(get_file(Constants.COALA_HTML_BASE), dir_path) if not args.noupdate: log_printer = ListLogPrinter() results, exitcode, file_dict = run_coala(log_printer=log_printer, arg_parser=arg_parser) result_data = {"results": results} result_data["logs"] = log_printer.logs JSONEncoder = create_json_encoder(use_relpath=False) result_file = get_file(Constants.CONFIGS['results_file'], dir_path) file_data = get_file(Constants.CONFIGS['file_data'], dir_path) file_tree_data = get_file(Constants.CONFIGS['files'], dir_path) with open(file_tree_data, 'w') as fp: file_graph = build_file_graph(file_dict, dir_path) json.dump(file_graph, fp, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': ')) with open(result_file, 'w') as fp: json.dump(result_data, fp, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': ')) with open(file_data, 'w') as fp: json.dump(parse_file_dict(file_dict), fp, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': ')) if not args.nolaunch: # Launch server with reference point dir_path os.chdir(dir_path) if not os.path.exists('bower_components'): res = call(['bower', 'install']) if res != 0: # pragma: no cover print("Bower is required. Install from `http://bower.io/`") sys.exit(1) Handler = http.server.SimpleHTTPRequestHandler socketserver.TCPServer.allow_reuse_address = True httpd = socketserver.TCPServer(("", Constants.PORT), Handler) print("serving at ", Constants.URL) print("Press Ctrl+C to end the coala-html session") webbrowser.open(Constants.URL, new=2) try: httpd.serve_forever() except KeyboardInterrupt: httpd.server_close()
def mode_statan(args, debug=False): import json import sys from coalib.coala_main import run_coala from coalib.output.Logging import configure_json_logging from coalib.output.JSONEncoder import create_json_encoder from coalib.results.AnalyzerResult import AnalyzerResult from coalib.settings.ConfigurationGathering import load_configuration from coalib.output.database import StoreException, AnalyzerResultStore JSONEncoder = create_json_encoder(use_relpath=args.relpath) results, exitcode, _ = run_coala(args=args, debug=debug) arg_parser=None arg_list = [] if args is None: # Note: arg_list can also be []. Hence we cannot use # `arg_list = arg_list or default_list` arg_list = sys.argv[1:] if arg_list is None else arg_list sections, targets = load_configuration(arg_list, arg_parser=arg_parser, args=args) lan = sections['cli'].get('language', '') lan_v = sections['cli'].get('language_version', '') prj = sections['cli'].get('project', '') prj_v = sections['cli'].get('project_version', '') params = sections['cli'].get('params', '') messages = results['cli'] analyzer_results = [] for message in messages: dif = json.dumps(message.diffs, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': ')) ''' analyzer_results.append(AnalyzerResult(message.origin, lan.value, lan_v.value, prj.value, prj_v.value, message.affected_code[0].file, message.message, message.severity, dif, message.confidence)) ''' try: with AnalyzerResultStore() as result_store: result_store.addResult(AnalyzerResult(message.origin, lan.value, lan_v.value, prj.value, prj_v.value, message.affected_code[0].file, message.message, params.value, message.affected_code[0].start.line, message.severity, dif, message.confidence)) result_store.complete() except StoreException as e: print(e) ''' retval = {'results': results} if args.output: filename = str(args.output[0]) with open(filename, 'w') as fp: json.dump(retval, fp, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': ')) else: print(json.dumps(retval, cls=JSONEncoder, sort_keys=True, indent=2, separators=(',', ': '))) ''' return 0 if args.show_bears else exitcode