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,28 +86,19 @@ class fichier_impression :
|
||||||
|
|
||||||
def gen_code(self):
|
def gen_code(self):
|
||||||
# Génération du code et écriture du code
|
# Génération du code et écriture du code
|
||||||
i=0
|
|
||||||
code=0
|
|
||||||
rand=random.Random()
|
rand=random.Random()
|
||||||
# Graine automatique avec le temps
|
# Graine automatique avec le temps
|
||||||
rand.seed()
|
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):
|
|
||||||
break
|
|
||||||
i = i+1
|
|
||||||
|
|
||||||
if code:
|
for i in range(1000):
|
||||||
# On enregistre le fichier avec le code pour numéro
|
# On génère un code
|
||||||
codefichier = open("/var/impression/codes/%d" % code, 'w')
|
code = rand.randint(100000,999999)
|
||||||
codefichier.write("Utilisateur %s\n"%(self.user_ldap.Nom()))
|
# Si le code est libre, on sort de la boucle
|
||||||
codefichier.close()
|
if not os.path.exists("/var/impression/codes/%d" % code):
|
||||||
self.code=code
|
break
|
||||||
self.list_messages_importants.append('code')
|
|
||||||
else:
|
else:
|
||||||
# Grosse erreur : on logue, on previent et on stoppe.
|
# Pas de code disponible
|
||||||
print ("ERROR: Il n'y a 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" )
|
sys.stderr.write ("ERROR: Il n'y a pas de code disponible" )
|
||||||
try:
|
try:
|
||||||
|
@ -117,6 +108,14 @@ class fichier_impression :
|
||||||
sys.stderr.write("ERROR: Impossible d'envoyer le rapport de bug.\n")
|
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: Plus de codes disponibles.\n")
|
||||||
sys.stderr.write("ERROR: Penser a ouvrir a l'adherent debite...\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):
|
def impression(self):
|
||||||
# Envoi du fichier à CUPS
|
# Envoi du fichier à CUPS
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue