2012-03-09 21:39:12 +00:00
|
|
|
#! /usr/bin/env python
|
|
|
|
|
|
|
|
|
|
|
|
import xml.dom.minidom as md
|
|
|
|
import os
|
|
|
|
|
|
|
|
import config
|
2012-04-29 13:03:57 +00:00
|
|
|
import divers
|
2012-03-09 21:39:12 +00:00
|
|
|
|
|
|
|
|
|
|
|
# --------------------------------------------------
|
|
|
|
#
|
|
|
|
# Classe leçon
|
|
|
|
#
|
|
|
|
# --------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
class Lecon():
|
|
|
|
""" Pour les lecons
|
|
|
|
"""
|
|
|
|
|
|
|
|
def __init__(self, ):
|
|
|
|
""" Initialisation de la leçon
|
|
|
|
"""
|
|
|
|
|
|
|
|
self.nom = None
|
|
|
|
self.book=[]
|
|
|
|
self.dev=[]
|
|
|
|
|
|
|
|
def from_file(self, file):
|
|
|
|
""" Importe les informations depuis un fichier
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
- `self`:
|
|
|
|
- `file`: fichier au format xml
|
|
|
|
"""
|
|
|
|
|
|
|
|
try:
|
|
|
|
self.document=md.parse(file)
|
|
|
|
except:
|
|
|
|
print("Le fichier ", file , " est inconnu")
|
|
|
|
else:
|
|
|
|
self.file = file
|
|
|
|
|
|
|
|
# Extraction du nom du developpement
|
|
|
|
self.num = self.document.getElementsByTagName('lecon')[0].getAttribute("num")
|
|
|
|
self.nom = self.document.getElementsByTagName('lecon')[0].getAttribute("nom")
|
|
|
|
|
|
|
|
# Extraction des devloppements
|
|
|
|
for dev in self.document.getElementsByTagName('dev'):
|
|
|
|
self.dev += [dev.getAttribute("nom")]
|
|
|
|
|
|
|
|
# des bouquins
|
|
|
|
for book in self.document.getElementsByTagName('book'):
|
|
|
|
self.book += [book.getAttribute("nom")]
|
|
|
|
|
|
|
|
# print("Dans cette lecon on peut faire les développement ", self.dev, " et on aura de besoin des bouquins ", self.book)
|
|
|
|
|
|
|
|
|
|
|
|
def from_scratch(self, num = '101'):
|
|
|
|
""" Créé la lecon depuis rien
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
- `self`:
|
|
|
|
- `num` : numero de la lecon
|
|
|
|
"""
|
|
|
|
self.num = str(num)
|
|
|
|
|
2012-04-29 13:03:57 +00:00
|
|
|
if self.num in divers.dico_nom_lecon:
|
|
|
|
self.nom = divers.dico_nom_lecon[self.num]
|
2012-03-09 21:39:12 +00:00
|
|
|
|
|
|
|
self.document=md.Document()
|
|
|
|
racine = self.document.createElement("lecon")
|
|
|
|
racine.setAttribute("num", self.num)
|
|
|
|
racine.setAttribute("nom", self.nom)
|
|
|
|
self.document.appendChild(racine)
|
|
|
|
|
|
|
|
else:
|
|
|
|
print("{num} est un numero de lecon inconnu".format(num = self.num))
|
|
|
|
|
|
|
|
# print(self.document.toprettyxml())
|
|
|
|
|
|
|
|
def add_book(self, book = ["nom", "auth", "isbn", "pg"] ):
|
|
|
|
""" Bouquin associé à la lecon
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
- `self`:
|
|
|
|
- `book`: sous la forme suivante ["nom", "auth", "isbn", "pg"]
|
|
|
|
"""
|
|
|
|
self.book += book
|
|
|
|
|
|
|
|
element = self.document.createElement("book")
|
|
|
|
element.setAttribute("nom", book[0])
|
|
|
|
element.setAttribute("auth", book[1])
|
|
|
|
element.setAttribute("isbn", book[2])
|
|
|
|
element.setAttribute("pg", book[3])
|
|
|
|
|
|
|
|
racine = self.document.getElementsByTagName('lecon')[0]
|
|
|
|
racine.appendChild(element)
|
|
|
|
|
|
|
|
# print(self.document.toprettyxml())
|
|
|
|
|
|
|
|
def add_dev(self, dev = None):
|
|
|
|
""" developpement associé à la lecon
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
- `self`:
|
|
|
|
- `dev`: le nom du developpement
|
|
|
|
"""
|
|
|
|
self.dev += [dev]
|
|
|
|
|
|
|
|
element = self.document.createElement("dev")
|
|
|
|
|
|
|
|
element.setAttribute("nom", str(dev))
|
|
|
|
|
|
|
|
racine = self.document.getElementsByTagName('lecon')[0]
|
|
|
|
racine.appendChild(element)
|
|
|
|
|
|
|
|
# print(self.document.toprettyxml())
|
|
|
|
|
|
|
|
def print_nom(self):
|
|
|
|
""" Affiche le nom et le numero de la lecon
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
- `self`:
|
|
|
|
"""
|
|
|
|
print("{num} : {nom} ".format(num = self.num , nom = self.nom))
|
|
|
|
|
|
|
|
def print_nbr_dev(self):
|
|
|
|
""" Affiche le nombre de développement lié à la lecon
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
- `self`:
|
|
|
|
"""
|
|
|
|
print("{nbr} --- {num} : {nom} ".format(num = self.num , nom = self.nom , nbr = len(self.dev)))
|
|
|
|
|
|
|
|
|
|
|
|
def print_dev(self):
|
|
|
|
""" Affiche les developpements qui lui sont associés
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
- `self`:
|
|
|
|
"""
|
|
|
|
print(" \n ---------- Développements de la lecon {num}: {nom} ---------- \n".format(num = self.num , nom = self.nom))
|
|
|
|
for d in self.dev:
|
|
|
|
print(d)
|
|
|
|
|
|
|
|
|
|
|
|
def sauve(self, destination = 0):
|
|
|
|
""" Sauve le developpement à l'endroit indiqué
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
- `self`:
|
|
|
|
- `destination`: là où on veut l'enregistrer
|
|
|
|
"""
|
|
|
|
if not destination:
|
|
|
|
nom_mod = self.nom.replace(" ", "_")
|
|
|
|
nom_mod = nom_mod.replace(".", "")
|
|
|
|
destination = "{num}-{nom}.agregLecon".format(num = self.num , nom = nom_mod)
|
|
|
|
|
|
|
|
fichier = open(destination, 'w')
|
|
|
|
fichier.write(self.document.toprettyxml())
|
|
|
|
fichier.close()
|
|
|
|
print("Le développement à été sauvé dans \"", destination, "\" voila son contenu")
|
|
|
|
print(self.document.toprettyxml())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
lecon = Lecon()
|
|
|
|
# lecon.from_file("j'aime_les_maths_et_les_carottes_rappées.agregLecon")
|
|
|
|
lecon.from_scratch(103)
|
|
|
|
lecon.add_book(("pipo", "popi", "chipo", "pouet"))
|
|
|
|
lecon.add_book(("pipoi", "popii", "chipoi", "poueti"))
|
|
|
|
lecon.add_dev()
|
|
|
|
lecon.add_dev("Chouette")
|
|
|
|
lecon.sauve()
|
|
|
|
|