about summary refs log tree commit diff stats
path: root/parse_data.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--parse_data.py23
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()