On utilise toutes les possibilits de Python :
- on utilise for quand c'est un for, et while quand c'est du while - on utilise le else de for/while = execut la fin de la boucle si il n'y a pas eu de break avant) On vite trop de bug : - le break doit tre lanc si le code est libre (d'ou le not ajout), avant deux erreurs se compensaient (Vince a traduit les bugs, ils ne viennent pas de lui) A l'avenir : - sortir la fonction gen_code de la classe, c'est une fonction part entire, elle n'a rien a faire dans une classe. On pourrait en avoir besoin d'autres endroits. - grer les erreurs avec les exceptions : s'il n'y a pas de code dispo, on lve une exception, ca sert rien de continuer - utiliser les outils adquats pour logguer les erreurs, et si on veut crire plein de trucs sur stderr, on peut faire : erreur = sys.stderr.write erreur('bidule') erreur('machine') ... Comme ca le jour o on veut logguer les erreurs un autre endroit, on fait erreur = open('fichier','w+').write (ou un truc du genre) C'tat des ides comme ca, ca permettrait d'laguer encore pas mal le code, Francois en a fait un bon bout mais il faudrait continuer. Je pense que c'est le manque d'habitude de Python, mais avec le temps le code sera bien lisible. darcs-hash:20060129161108-4ec08-57f4e8e916e990d6fcfe9e70233a672a2b0797ab.gz
This commit is contained in:
parent
6b4be0e285
commit
f960f4ba33
1 changed files with 19 additions and 20 deletions
|
@ -86,38 +86,37 @@ class fichier_impression :
|
|||
|
||||
def gen_code(self):
|
||||
# Génération du code et écriture du code
|
||||
i=0
|
||||
code=0
|
||||
rand=random.Random()
|
||||
# Graine automatique avec le temps
|
||||
rand.seed()
|
||||
while(i<1000) :
|
||||
# On génère le numéro de session
|
||||
code = rand.randint(100000,999999) #pour avoir six chiffres
|
||||
# On verifie que le code n'est déja pas utilisé
|
||||
if os.path.exists("/var/impression/codes/%d" % code):
|
||||
|
||||
for i in range(1000):
|
||||
# On génère un code
|
||||
code = rand.randint(100000,999999)
|
||||
# Si le code est libre, on sort de la boucle
|
||||
if not os.path.exists("/var/impression/codes/%d" % code):
|
||||
break
|
||||
i = i+1
|
||||
|
||||
if code:
|
||||
# On enregistre le fichier avec le code pour numéro
|
||||
codefichier = open("/var/impression/codes/%d" % code, 'w')
|
||||
codefichier.write("Utilisateur %s\n"%(self.user_ldap.Nom()))
|
||||
codefichier.close()
|
||||
self.code=code
|
||||
self.list_messages_importants.append('code')
|
||||
else :
|
||||
# Grosse erreur : on logue, on previent et on stoppe.
|
||||
|
||||
else:
|
||||
# Pas de code disponible
|
||||
print ("ERROR: Il n'y a pas de code disponible" )
|
||||
sys.stderr.write ("ERROR: Il n'y a pas de code disponible" )
|
||||
try:
|
||||
self.list_messages_importants.append('erreur gen_code')
|
||||
sys.stderr.write("DEBUG: Un rapport de bug a ete automatiquement envoye.\n")
|
||||
except :
|
||||
except:
|
||||
sys.stderr.write("ERROR: Impossible d'envoyer le rapport de bug.\n")
|
||||
sys.stderr.write("ERROR: Plus de codes disponibles.\n")
|
||||
sys.stderr.write("ERROR: Penser a ouvrir a l'adherent debite...\n")
|
||||
|
||||
return
|
||||
|
||||
# On enregistre le fichier avec le code pour numéro
|
||||
codefichier = open("/var/impression/codes/%d" % code, 'w')
|
||||
codefichier.write("Utilisateur %s\n" % self.user_ldap.Nom())
|
||||
codefichier.close()
|
||||
self.code=code
|
||||
self.list_messages_importants.append('code')
|
||||
|
||||
def impression(self):
|
||||
# Envoi du fichier à CUPS
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue