Hi Une brioche doree , en plus d'accueillir des gens , qui vont proposer des prensentations , qui vont commencer exactement a 19 heures , et j'imagine que a 20 heures ont va manger des Pizzas :) et parler de sujets extras comme le Pycon-africa :) , Hein Geno :) ,
alors comment doit on ecrire tout ca en Python ? En plus de la class BriocheDoree qui va acceillir , distribtions Pizzas , et ..... Les membres de DakarLug qui viendront a la brioche doree le Dimanche 13 Novembre a 19 heures 30 . 1 . Si presentation n'est pas vide , la personne propose de faire une presentation Exemple : Waly Ndiaye fait une presentation sur PyUnicode dont son attribut presentation = "PyUnicode" 2 . Si un membre est venu pour suivre une presentation alors son attribut presentation ="" et leaner = 1 3. Si la personne est venu juste pour bouffer nos pizzas alors presentation = "" et learner = 0 L'exection de ca : __________________ ['alioune', '0'] ['Lien', '1'] ['Pat', '1'] ['Elwan', 'PyUnicode'] L'exection donnera: ___________________ <Mamber presentation =0 , name =alioune , > gain = [] <Mamber presentation =1 , name =Lien , > gain = ["'PyUnicode'"] <Mamber presentation =1 , name =Pat , > gain =["'PyUnicode'"] <Mamber presentation ='PyUnicode' , name =Elwan , > [] On conclut que Alioune qui ete juste venu pour manger de Pizzas aura comme gains = [] :) , Lien Rag et Patt qui sont venu suivre la presention [PyUnicode] de Elwan ont des gains de gain =["'PyUnicode'"] Tellement fier de mon freestyle_brioche.py que je viens de la mettre sut git . https://github.com/Dakarlug/freestyle_brioche/blob/master/freestyle_brioche.py import Queue, thread, datetime, time class BriocheDoree: __name__ = "MerMoz Dakar" def __init__(self , args=None): self.members = [] # Allons nous avoir 50 pizzas , Joeri :), Alioune :) ...... self.pizzas = 50 # les pizzas waiters self.pizza_waiters =Queue.Queue() # les speakers self.speakers =Queue.Queue() # les learners list not queue self.learners =[] def add_member(self, member): # ajouter un membre self.members.append(member) def del_member(self, member): # Un membre doit pouvoir quitter la brioche doree a tout instant # avant que sa femme ne vienne la chercher :) self.members.remove(member) def entry(self): # entree de la brioche doree les membres sont # accuelli ici a MerMoz :) # starting theard before starting entry self.event_starting() # while True: raw = raw_input ("Accueil Brioche doree :\n\ Pesentateur : Nom, Presentation \n\ Learners :Nom,1 : \n\ Pizzas Waiters :Nom , 0:\n\ ") if raw =="stop": # stop # evitez d'arreter l'event sans que les pizzas ne soient # distribués sinion , les pizza_waiters vont tous saccager # stop apres que les pizzas soit distibues. self.start_event = False break m = Member(raw) print m # Add to member list self.members.append(m) # lorsque un membre ne fait rien d'autre que attendre les pizzas # met le dans la pile pizza_waiters if m.presentation == "0": self.pizza_waiters.put(m) # lorque un gas vient pour suivre les prensentations des speakers: if m.presentation == "1": self.learners.append(m) else: self.speakers.put(m) # lorsque un membre prose une presentation , le mettre dans la # pile des speakers def event_starting(self): # Joeri a dit que l'evenment commence a 19 heures 30 le dimanche donc # pas avant : thread.start_new_thread(self.starting_event , ()) def starting_event(self): while self.start_event: try: #print "starting events" # PIZZA WAITER try: # get nowait a_pizza_waiter = self.pizza_waiters.get(False) except Queue.Empty: a_pizza_waiter =None # un pizza waiter ne fait rien d'autre que bouffer :) # il s'en tape des presentations , Lien Rag :) # Il faut tester si il est l'heure de donner des pizzas , a 20 h 30 ? c'est bon # et lui donner sa part :) : # part = Nombre de Pizzas disponibles / (speakers + learners + pizza_waiters_queue) # la distrubtion des Pizzas commence a cette heure if datetime.datetime.now()> datetime.datetime(2013, 10, 10, 18, 58): part = self.pizzas / len(self.members) # Moins il y'aura de personnes presentes a la brioche plus il y'aura de # parts de Pizzas , Huuuuum :) . c'est le souhait des pizzas waiters # Hein Lien :) if a_pizza_waiter: a_pizza_waiter.gains.append("%s part de Pizzas" % part ) # SPEAKERS # un speaker vient donner une presention , alors il faut extraire le contenu # de la presentation et le donner a un LEARNER try: # get nowait speaker= self.speakers.get(False) except Queue.Empty: speaker =None if speaker: presentation = speaker.presentation for learner in self.learners: if presentation not in learner.gains: learner.gains.append(presentation) except: import traceback print traceback.format_exc() time.sleep(2) # event stopped , est sans doute 20 heures passes #print "stopped event" def stop_event(self): # Lorque a 20 heures , on doit finaliser l'evenement avant que Madame Dia # se pointe a la Brioche doree pour me tirer les oreils #if datetime.datetime.now()> datetime.datetime(2013, 10, 10, 18, 10): self.start_event = False def start_event(self): # Demarrage hostilites (Presentions, manageurs de Pizzas , les apprenants) self.start_event =True def reporting(self): # au sortir de cet evenement qu'est ce que un membre # a gagne , juste des Pizzas ? , a t'il benefie de l'expertis d'Elwan # sur PyUnicode , De Joerie avec Jekyll? for m in self.members: print m print m.gains """ Les membres de DakarLug qui viendront a la brioche doree le Dimanche 13 Novembre a 19 heures 30 . 1 . Si presentation n'est pas vide , la personne propose de faire une presentation Exemple : Waly Ndiaye fait une presentation sur PyUnicode dont son attribut presentation = "PyUnicode" 2 . Si un membre est venu pour suivre une presentation alors son attribut leaner = 1 3. Si la personne est venu juste pour bouffer nos pizzas alors presentation = "" et learner = "0" """ class Member: def __init__(self, raw): # raw.split() args = raw.split(",") print args if len(args)!=2: raise ValueError("Erreur saisie ") # speaker or learner : if args[1].strip() == "1": # learner: self.presentation = "1" elif args[1].strip() == "0": # pizzas waiters self.presentation = "0" else: self.presentation = args[1] self.name = args[0] # Qu'est ce que tu as gagne , a lissue de l'evenement # Brioche doree self.gains =[] def what_gain(self): """ ce que le membre qui est venu a la brioche dorée a gagne au sortir de cet evenement """ print "%s a appris a la fin de cette presentation" for gain in gains: print gain def __str__(self): return "<Mamber presentation =%s , name =%s , >"%( self.presentation, self.name) if __name__ =="__main__": # accueil brioche doree m = BriocheDoree() m.start_event = True m.entry() # au sortir de cet evenement qu'est ce que un membre # a gagne , juste des Pizzas ? , a t'il benefie de l'expertis d'Elwan # sur PyUnicode , De Joerie avec Jekyll? m.reporting() -- Ce message a été envoyé à la liste [email protected] Gestion de votre abonnement : http://dakarlug.org/liste Archives : http://news.gmane.org/gmane.org.user-groups.linux.dakarlug Le site du DakarLUG : http://dakarlug.org
