def get_functions(self): correcteur8000 = CorrecteurTeam(self.projectBasePath) temp = [] with open("./temp.json", 'r') as jsonfile: json.loads(temp, jsonfile, ensure_ascii=False) try: lastTeam = temp[-1]["équipe"] except KeyError: lastTeam = 0 for noTeam in self.goodTeams.keys(): if noTeam > lastTeam: # print(f"Fonctions du groupe : {PASS}{noTeam}{ENDC}\n") for file in self.goodTeams[noTeam].files: if file[-3:] == ".py": # print(f"\tFichier : {WARNING}{file.split('/')[-1]}{ENDC}\n") with open(file) as buff: print(" ".join(x for x in buff.readlines())) with open(file) as file_Python: for lineNb, line in enumerate(file_Python): if re.compile(r"def\s").findall(line): # print(f"Line {lineNb}: {BOLD}{line}{ENDC}") self.Teams[noTeam].functions.append( (file, line, lineNb)) if re.compile(r"class\s").findall(line): self.Teams[noTeam].classes.append( (file, line, lineNb)) # print(f"Line {lineNb}: {BOLD}{line}{ENDC}") temp.append(correcteur8000.correction_qualite(self.Teams[noTeam])) result = temp with open("./outCritere4.json", 'w') as jsonfile: json.dump(result, jsonfile, ensure_ascii=False)
def corrigeFromModules(self, modules, classes): print_wtf("\n Correction du fonctionnement\n") resultat = [] badTeam = " Bad Team are : " correcteurModules = CorrecteurTeam(self.projectBasePath) for team in tqdm.tqdm(self.Teams.values()): commentaire = "" if True: if team.NoMainFile: print_barre() print_equipe(team.noTeam) print_warning(f" FAIL : Programme non fonctionnel 2") commentaire = "<h2>Évaluation du critère 3</h2>" commentaire += "<h3>Fonctionnement général</h3>" commentaire += "<p>Votre code n'est pas fonctionnel, voici la liste de vos fichiers trouvé:</p><ul>" for file in team.files: commentaire += f"<li>{file}</li>" commentaire += "</ul>" commentaire += f"<h4>Résultat: 0%</h4>" commentaire += f"<p><strong>La correction ainsi que la composition des message est automatisé, pour toute question ou révision veuillez commenter ce fil.</strong></p>" resultat.append({ 'équipe': team.noTeam, 'score': 0, 'commentaires': commentaire }) print_final(3, 0, 100) else: test = correcteurModules.corrigeFromModules( team, modules, classes) note = test[0] commentaire = test[1] if note == 0: badTeam += f"{team.noTeam}, " if team.BadMainFile: note = note - 10 if note < 0: note = 0 commentaire += f"<p><strong><span style='color: #ff0000;'>Votre projet n'avait pas le bon nom, 10% on été retiré de la note.</span><strong></p>" commentaire += f"<h4>Résultat: {note}%</h4>" commentaire += f"<p><strong>La correction ainsi que la composition des messages est automatisé, pour toutes questions ou révision veuillez commenter ce fil.</strong></p>" resultat.append({ 'équipe': team.noTeam, 'score': note, 'commentaires': commentaire }) tqdm.tqdm.write(" ") print_wtf(badTeam) with open('./ResultatsCritère4.json', 'w') as outfile: json.dump(resultat, outfile, ensure_ascii=False)
def corrigeHelp(self, pathFolder=""): print_wtf("\n Correction de la nomenclature\n") list_ready_to_publish = [] if pathFolder != "": correcteur8000 = CorrecteurTeam(pathFolder) else: correcteur8000 = CorrecteurTeam(self.projectBasePath) for team in tqdm.tqdm(self.Teams.values()): if True: if not team.NoMainFile: list_ready_to_publish.append( correcteur8000.corrigeHelp(team)) print(list_ready_to_publish) # tqdm.tqdm.write("Enter pour continuer", end='') # input("") with open('./ResultatsNomencatureP3.json', 'w') as outfile: json.dump(list_ready_to_publish, outfile, ensure_ascii=False)
def corrige(self, pathJson, X=0): lastTeam = X b_bug = False for team in tqdm.tqdm(self.Teams.values()): if not b_bug: correcteur8000 = CorrecteurTeam(self.projectBasePath) correcteur8000.load_correction_dict(pathJson) # tqdm.tqdm.write(f"Doing team {team.noTeam}") # try: # print_ok(f"THREAD : {team.noTeam}") if team.noTeam > X: try: data = correcteur8000.corrige(team) correcteur8000.cleanAvantNouvelEleve() # data = team.rapport["1"] with open( f'{self.projectBasePath}/result/team{team.noTeam}-resultatCritere.json', 'w') as outfile: json.dump(data, outfile, ensure_ascii=False) lastTeam = team.noTeam except: b_bug = True self.corrige(pathJson, X=lastTeam) else: break
def corrigeFromJson(self, pathJson="", pathFolder=""): if pathFolder != "": correcteur8000 = CorrecteurTeam(pathFolder) else: correcteur8000 = CorrecteurTeam(self.projectBasePath) if pathJson != "": correcteur8000.loadJson(pathJson) else: correcteur8000.loadJson( f'./{self.session}{self.year}-P{self.noTP}.json') for team in self.Teams.values(): if team.main: correcteur8000.corrige(team) note_moy = 0 nb_team = len(self.Teams) data = {} for team in self.Teams.values(): note_moy += team.rapport["1"] print_note(note_moy / nb_team, 100)
def corrigeCommit(self, noCritere, pathJson="", pathFolder=""): print_wtf("\n Correction du nombre de commit\n") list_ready_to_publish = [] if pathFolder != "": correcteur8000 = CorrecteurTeam(pathFolder) else: correcteur8000 = CorrecteurTeam(self.projectBasePath) if pathJson != "": correcteur8000.load_correction_dict(pathJson) else: correcteur8000.load_correction_dict('./critere1.json') for team in tqdm.tqdm(self.Teams.values()): if not team.NoMainFile: list_ready_to_publish.append( correcteur8000.correction_commit(team, noCritere)) with open('./ResultatsCommit.json', 'w') as outfile: json.dump(list_ready_to_publish, outfile, ensure_ascii=False) print(f'{list_ready_to_publish}')
def corrigeNoms(self, pathDicNom, pathFolder=""): print_wtf("\n Correction de la nomenclature\n") jsonD = {} with open(pathDicNom) as jsonFile: jsonD = json.load(jsonFile) list_ready_to_publish = [] if pathFolder != "": correcteur8000 = CorrecteurTeam(pathFolder) else: correcteur8000 = CorrecteurTeam(self.projectBasePath) for team in tqdm.tqdm(self.Teams.values()): if True: if not team.NoMainFile: correcteur8000.show_argparse(team) # list_ready_to_publish.append(correcteur8000.corrige_nomenclature( # jsonD["action"], jsonD["arg"], team)) # tqdm.tqdm.write("Enter pour continuer", end='') # input("") with open('./ResultatsNomencature.json', 'w') as outfile: json.dump(list_ready_to_publish, outfile, ensure_ascii=False)