diff options
Diffstat (limited to '')
| -rw-r--r-- | parse_data.py | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/parse_data.py b/parse_data.py index 94d7f79..ac75bd5 100644 --- a/parse_data.py +++ b/parse_data.py @@ -45,17 +45,24 @@ def find_category_in_data(name: str, data: list[Category]) -> int: return index return -1 -def parse_data(program_path: str): - data = [] # List of Category objects - process = subprocess.Popen([program_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE) - stdout, stderr = process.communicate() +def read_input(path: str, is_csv: bool): + if is_csv: + with open(path, 'r') as fd: + return io.StringIO(fd.read()) + else: + process = subprocess.Popen([path], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + stdout, stderr = process.communicate() + + if stderr: + print("Error:", stderr.decode()) - if stderr: - print("Error:", stderr.decode()) + stdout_str = stdout.decode() + return io.StringIO(stdout_str) - stdout_str = stdout.decode() - stdout_file = io.StringIO(stdout_str) +def parse_data(path: str, is_csv: bool): + data = [] # List of Category objects + stdout_file = read_input(path, is_csv) csv_reader = csv.DictReader(stdout_file) # Rows are dictionaries for row in csv_reader: log_type, timestamp, category_name, number, test_description, fail_message = row.values() |