Skip to content
Snippets Groups Projects
Commit ad1490f1 authored by AxelCarayon's avatar AxelCarayon
Browse files

resolution bug chemin lors de la reproduction

parent ecf9173c
No related branches found
No related tags found
1 merge request!20Amelioration execution
......@@ -12,8 +12,10 @@ repo = None
folder = None
commandsFile = None
instructionFile = None
inputFiles = []
outputFiles = []
beforeHash = None
......@@ -37,7 +39,7 @@ def init(repository,branch) -> None :
os.chdir(folder)
def getParameters() -> None :
global commandsFile, inputFiles, outputFiles, beforeHash
global commandsFile, inputFiles, outputFiles, beforeHash, instructionFile
if not (os.path.exists('experimentResume.yaml')):
raise Exception("No exeperimentResume.yaml file found, the branch is not an exeperiment")
with open('experimentResume.yaml', 'r') as stream:
......@@ -46,6 +48,7 @@ def getParameters() -> None :
outputFiles = parameters.get('outputs')
inputFiles = parameters.get('inputs')
beforeHash = parameters.get('checksums')
instructionFile = parameters.get('instructions')
def runExperiment() -> None :
......@@ -56,6 +59,15 @@ def runExperiment() -> None :
process.check_returncode()
print("done")
def checkForInstructions() -> None :
if (instructionFile != None) :
print("You can check the instructions for the experiment in the file : " + instructionFile)
else :
warnings.warn("No instructions for the experiment found in the repository")
print("Run the exepriment and then press enter when it's done")
done = "nope"
while (done != "") :
done = input()
def genChecksum(file) -> str :
hash_md5 = hashlib.md5()
......@@ -68,7 +80,7 @@ def genChecksums() -> list[dict]:
checksums = []
for file in os.listdir(OUTPUT_FOLDER) :
if not file.endswith(".gitkeep"):
checksums.append({file : genChecksum(f'outputs/{file}')})
checksums.append({f"{OUTPUT_FOLDER}/{file}" : genChecksum(f'{OUTPUT_FOLDER}/{file}')})
return checksums
......@@ -77,7 +89,7 @@ def compareChecksums() -> bool:
for (dict1, dict2) in zip(beforeHash, genChecksums()):
for (key, value) in dict1.items():
if dict2.get(key) != value :
warnings.warn(f"{OUTPUT_FOLDER}/{key} has changed")
warnings.warn(f"{key} has changed")
changes = True
return changes
......@@ -88,9 +100,14 @@ def run(repository, branch) -> None :
print("Getting the experiment parameters ...")
getParameters()
print("Running the experiment ...")
runExperiment()
if (commandsFile != None) :
runExperiment()
else :
checkForInstructions()
print("Comparing checksums of the outputs ...")
if (compareChecksums()) :
print("The exepriment was reproduced with succes but some output files are differents.")
else :
print("The exepriment was reproduced with succes !")
\ No newline at end of file
print("The exepriment was reproduced with succes !")
#TODO : sur la mainExperiment15, on a du changement quand on reproduit l'expérience ...
\ No newline at end of file
......@@ -188,19 +188,15 @@ def writeInYaml() -> None:
with open('experimentResume.yaml', 'w') as yamlFile:
yaml.safe_dump(cur_yaml, yamlFile)
def successfullyCreatedNewBranch(name) -> bool :
try:
repository.git.checkout('-b',name)
return True
except Exception as e:
return False
def pushBranch(version=1) -> None:
print("Pushing branch...")
while not(successfullyCreatedNewBranch(f"{experimentName}Experiment{version}")):
while f"{experimentName}Experiment{version}" in repository.remote().refs:
print(f"{experimentName}Experiment{version} already exists")
version += 1
newTag = f"{currentTag}-e{version}"
print(f"creating {experimentName}Experiment{version} branch and pushing changes to it ...")
repository.git.checkout(b=f"{experimentName}Experiment{version}")
repository.git.add(all=True)
repository.git.commit(m=f"{experimentName}Experiment{version}")
repository.git.push('--set-upstream',repository.remote().name,f"{experimentName}Experiment{version}")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment