# 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") | |