Beispiel #1
0
    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)
Beispiel #2
0
 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)
Beispiel #3
0
 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)
Beispiel #4
0
 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
Beispiel #5
0
 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)
Beispiel #6
0
 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}')
Beispiel #7
0
 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)