Je vais créer des statistiques basées sur les informations que les builds ont été réussies ou pas et combien par projet.Organiser le code python pour gérer les informations statistiques
Je crée une classe ProjectStat par nouveau projet que je vois et à l'intérieur des statistiques traitées. Pour imprimer une statistique globale, je dois passer par toutes les instances de ProjectStat. Pour imprimer les statistiques de réussite par projet, je dois les passer à nouveau et ainsi de suite, sur n'importe quel type de statistiques. Ma question est de simplifier la gestion des cycles, c'est-à-dire de ne pas passer le dictionnaire à chaque fois. Peut-être que l'utilisation de décorateurs ou de motifs décoratifs serait une façon pythonique? Comment alors ils peuvent être utilisés si le nombre d'instances de ProjectStat est dynamiquement changé?
Voici le code:
class ProjectStat(object):
projectSuccess = 0
projectFailed = 0
projectTotal = 0
def addRecord(self, record):
if len(record) == 5: record.append(None)
try:
(datetime, projectName, branchName, number, status, componentName) = record
except ValueError:
pass
self.projectTotal += 1
if status == 'true': self.projectSuccess += 1
else: self.projectFailed += 1
def addDecorator(self, decorator):
decorator = decorator
def readBuildHistoryFile():
dict = {}
f = open("filename")
print("reading the file")
try:
for line in f.readlines():
#print(line)
items = line.split()
projectName = items[1]
projectStat = dict[projectName] = dict.get(projectName, ProjectStat())
projectStat.addRecord(items)
print(items[1])
finally:
f.close()
success = 0
failed = 0
total = 0
for k in dict.keys():
projectStat = dict[k]
success += projectStat.projectSuccess
failed += projectStat.projectFailed
total += projectStat.projectTotal
print("Total: " + str(total))
print("Success: " + str(success))
print("Failed: " + str(failed))
if __name__ == '__main__':
readBuildHistoryFile()
Pouvez-vous corriger l'indentation? –
Avec quoi? C'est mon premier post et je n'ai fait que copier ce que j'ai fait car il était autorisé par l'interface. Comment puis-je spécifier les onglets sous forme d'onglets dans le code sur la page? – yart