From 71a047938e5ade97ded10952979b6930dafa4bed Mon Sep 17 00:00:00 2001 From: Tian Gao Date: Fri, 22 Mar 2024 16:10:05 -0700 Subject: [PATCH] Check if input file is json and give a warning if so --- src/viztracer/main.py | 6 +++++- tests/test_cmdline.py | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/viztracer/main.py b/src/viztracer/main.py index 6d106ce5..c48f18ce 100644 --- a/src/viztracer/main.py +++ b/src/viztracer/main.py @@ -6,6 +6,7 @@ import base64 import builtins import configparser +import io import json import multiprocessing.util # type: ignore import os @@ -410,8 +411,11 @@ def run_command(self) -> VizProcedureResult: search_result = self.search_file(file_name) if not search_result: return False, f"No such file as {file_name}" + if file_name.endswith(".json"): + return False, f"viztracer can't run json file, did you mean \"vizviewer {file_name}\"?" file_name = search_result - with open(file_name, "rb") as f: + + with io.open_code(file_name) as f: code_string = f.read() if options.magic_comment or options.log_var or options.log_number or options.log_attr or \ options.log_func_exec or options.log_exception or options.log_func_entry: diff --git a/tests/test_cmdline.py b/tests/test_cmdline.py index 40bd5a64..777ccb2e 100644 --- a/tests/test_cmdline.py +++ b/tests/test_cmdline.py @@ -512,6 +512,8 @@ def test_show_version(self): def test_invalid_file(self): self.template(["viztracer", "no_such_file.py"], success=False, expected_output_file=[]) + self.template(["viztracer", "result_wrong.json"], script_name="result_wrong.json", + success=False, expected_output_file=[], expected_stdout="vizviewer result_wrong.json") def test_rcfile(self):