-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsave_for_regression.py
55 lines (43 loc) · 1.81 KB
/
save_for_regression.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# when run
# checks if there is uncommitted code
# if there is uncommitted code, ti retuns an error
# if there is no uncommitted code, it saves the dataframe as a parquet file with the commit hash in the name
import pytest
import pandas as pd
from result_data_processor import ResultDataProcessor
import os
import subprocess
def check_git_changes(repo_path):
try:
# Change to the repository directory
original_path = os.getcwd()
os.chdir(repo_path)
# Run the git status command
result = subprocess.run(['git', 'status', '--porcelain'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
# Check the result
if result.returncode != 0:
print(f"Error checking git status: {result.stderr}")
return False, False
# Check for tracked and untracked changes
tracked_changes = any(line[:2].strip() != '??' for line in result.stdout.splitlines())
untracked_changes = any(line[:2] == '??' for line in result.stdout.splitlines())
return tracked_changes, untracked_changes
finally:
# Change back to the original directory
os.chdir(original_path)
if __name__ == '__main__':
tracked_changes, untracked_changes = check_git_changes('.')
if tracked_changes:
print("There are tracked changes")
else:
print("There are no tracked changes")
df_current = ResultDataProcessor().data
last_commit = os.popen('git rev-parse HEAD').read().strip()
print(last_commit)
# save the current output to a file
df_current.to_parquet(f'dataframe_history/output_{last_commit}.parquet', index=True)
print("Saved output to file")
if untracked_changes:
print("There are untracked changes")
else:
print("There are no untracked changes")