1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
# PROPRIÉTAIRES
# VALEUR 20
cpdef (dict, dict, dict, dict) etude_proprietaire_moy_quinte(self,\
param, choixProno, dico_points_base, dico_points_discipline,\
dico_points_similaire, dico_points_similaire_inscrits,\
liste_ttesId_Finalisees, liste_Id_Discipline,\
liste_Id_Partants_Discipline, liste_Id_Similaire_Inscrits,\
discipline, nbPartants, liste, courseId, combin_algo, dateArrInscr):
cdef list dateArrInscr, liste_proprietaires
cdef char discipline, nomProprietaire
cdef int proprietaire, proprietaireId, participation, succes, detenteur, chance, tuPle[0], inscrit[1], proprietaire[2], combin_algo
cdef dict dico_proprietairesDisci
liste_proprietaires =self.exeReq(("SELECT PartantNumero, ChevalId, ProprietaireId FROM PARTANT NATURAL JOIN CHEVAL WHERE CourseId ={0}").format(courseId))
if cdef int choixProno ==1: # SUR LES COURSES PRÉCÉDENTES DE MÊME DISCIPLINE
if combin_algo ==0:
self.changeText0('\n\n\n')
self.changeText0('PROPRIÉTAIRES MOYENNE:','tagSouligné')
self.changeText0(' courses de {0}\n\n'.format(discipline.upper()))
dico_proprietairesDisci ={} # créat° dictionnaire proprietaires
for proprietaire in liste_proprietaires:
proprietaireId =proprietaire[2]
participation =0 # variable pr identifier nb particip° aux courses du propri. étudié
succes =0
# variable pr établir nb succès du propri. étudié
for tuPle in dateArrInscr:
for inscrit in tuPle[2]:
detenteur =self.exeReq("SELECT ProprietaireId \
FROM PROPRIETAIRE_HISTO \
WHERE ChevalId={0} AND ProprietaireDebut <={1} AND ProprietaireFin >={2}"\
.format(inscrit[1], tuPle[0], tuPle[0]))[0][0]
if proprietaireId == detenteur:
participation +=1
if inscrit[0] in tuPle[1]: succes +=1
if participation ==0: chance =0
else:
if succes ==0: chance =0
else: chance = round(succes/participation,4)
nomProprietaire =self.exeReq("SELECT ProprietaireNom FROM PROPRIETAIRE WHERE ProprietaireId ={}".format(proprietaireId))[0][0]
dico_proprietairesDisci[proprietaire[0]] =[nomProprietaire, succes, participation, chance] # on retrouve un dictionnaire:
# cle: n° du cheval
# valeurs: [0] nom propri.
# [1] nb de succes propri.
# [2] nb de particip°
# [3] chance du propri.
cdef int k
cdef list v
for k,v in dico_proprietairesDisci.items():
cdef list valproprio
cdef list valeur
valproprio =dico_proprietairesDisci[k]
valeur =dico_points_discipline.get(k) # ajout du point " moyenne proprietaire " au dictionnaire " courses même discipline "
if valeur[1] !=0:
valeur[2] =round(valeur[2] + valproprio[3],4)
valeur[20] = round(valeur[20] + valproprio[3],4)
dico_points_discipline[k] =valeur
.
.
.
return dico_points_base, dico_points_discipline, dico_points_similaire, dico_points_similaire_inscrits |