Nouvelle tentative
This commit is contained in:
commit
f0a0a0837a
BIN
__pycache__/book.cpython-32.pyc
Normal file
BIN
__pycache__/book.cpython-32.pyc
Normal file
Binary file not shown.
BIN
__pycache__/config.cpython-32.pyc
Normal file
BIN
__pycache__/config.cpython-32.pyc
Normal file
Binary file not shown.
BIN
__pycache__/dev.cpython-32.pyc
Normal file
BIN
__pycache__/dev.cpython-32.pyc
Normal file
Binary file not shown.
BIN
__pycache__/divers.cpython-32.pyc
Normal file
BIN
__pycache__/divers.cpython-32.pyc
Normal file
Binary file not shown.
BIN
__pycache__/lecon.cpython-32.pyc
Normal file
BIN
__pycache__/lecon.cpython-32.pyc
Normal file
Binary file not shown.
243
agreg.py
Executable file
243
agreg.py
Executable file
@ -0,0 +1,243 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
# Mes classes
|
||||
import lecon
|
||||
import dev
|
||||
import book
|
||||
import divers
|
||||
import config
|
||||
|
||||
# celles des autres
|
||||
import glob
|
||||
from operator import itemgetter
|
||||
import os
|
||||
import optparse
|
||||
|
||||
|
||||
liste_lecon = ( 101 , 103 , 104 , 105 , 106 , 107 , 108 , 109 , 110 , 111 , 112 , 113 , 114 , 116 , 117 , 119 , 120 , 123 , 124 , 125 , 126 , 127 , 128 , 130 , 131 , 132 , 133 , 135 , 136 , 137 , 139 , 140 , 141 , 144 , 145 , 146 , 148 , 149 , 201 , 202 , 203 , 204 , 205 , 206 , 207 , 208 , 213 , 214 , 215 , 216 , 217 , 218 , 219 , 220 , 221 , 223 , 224 , 226 , 228 , 229 , 230 , 232 , 234 , 235 , 236 , 238 , 239 , 240 , 241 , 242 , 243 , 245 , 246 , 247 , 249 , 250 , 251 , 252 , 253 , 254 , 255 , 256 )
|
||||
|
||||
|
||||
class Agreg():
|
||||
""" Gere les bouquins, les developpements et les leçons
|
||||
"""
|
||||
|
||||
def __init__(self, ):
|
||||
"""
|
||||
"""
|
||||
|
||||
self.book = []
|
||||
self.dev = []
|
||||
|
||||
self.init_lecon()
|
||||
|
||||
|
||||
def init_lecon(self):
|
||||
""" Initialise la liste des lecons
|
||||
|
||||
Arguments:
|
||||
- `self`:
|
||||
"""
|
||||
self.lecon = {}
|
||||
|
||||
for num in liste_lecon:
|
||||
num = str(num)
|
||||
l = lecon.Lecon()
|
||||
l.from_scratch(num)
|
||||
self.lecon[num] = l
|
||||
|
||||
# -------------------- Import et extraction
|
||||
|
||||
def import_dev(self, folder = ""):
|
||||
""" Import les dev contenus dans folder
|
||||
|
||||
Arguments:
|
||||
- `self`:
|
||||
- `folder`: Dossier ou les developpements sont stockés
|
||||
"""
|
||||
|
||||
# for d in glob.glob(folder + '*.agregDev'):
|
||||
for d in glob.glob(folder + '*'):
|
||||
devel = dev.Dev()
|
||||
devel.from_file(d)
|
||||
self.dev += [devel]
|
||||
|
||||
|
||||
def extract_from_dev(self):
|
||||
""" Remplit les liste lecon et book à partir des informations contenu dans dev
|
||||
|
||||
Arguments:
|
||||
- `self`:
|
||||
"""
|
||||
for d in self.dev:
|
||||
|
||||
# Extraction des leçons
|
||||
for l in d.lecon:
|
||||
self.lecon[l].add_dev(d.nom)
|
||||
|
||||
# # Extraction des bouquins
|
||||
# for b in d.book:
|
||||
# self.book Faudra le faire mais j'ai la flemme pour le moment
|
||||
|
||||
|
||||
def import_lecon(self, folder = ""):
|
||||
""" Import les lecons contenus dans folder
|
||||
|
||||
Arguments:
|
||||
- `self`:
|
||||
- `folder`: Dossier ou les lecons sont stockés
|
||||
"""
|
||||
|
||||
for l in glob.glob(folder + '*.agregLecon'):
|
||||
le = lecon.Lecon()
|
||||
le.from_file(l)
|
||||
self.lecon += [le]
|
||||
|
||||
def import_book(self, folder = ""):
|
||||
""" Import les bouquins contenus dans folder
|
||||
|
||||
Arguments:
|
||||
- `self`:
|
||||
- `folder`: Dossier ou les developpements sont stockés
|
||||
"""
|
||||
|
||||
for b in glob.glob(folder + '*.agregBook'):
|
||||
bo = book.Book()
|
||||
bo.from_file(b)
|
||||
self.book += [bo]
|
||||
|
||||
# -------------------- Analyse
|
||||
|
||||
def nbr_dev(self):
|
||||
""" Calcul et trie le nombre de developpement par lecon et stock la liste dans lecon_nbr_dev
|
||||
|
||||
Arguments:
|
||||
- `self`:
|
||||
"""
|
||||
self.lecon_nbr_dev = []
|
||||
for l in self.lecon.values():
|
||||
self.lecon_nbr_dev += [(l.num , len(l.dev))]
|
||||
|
||||
self.lecon_nbr_dev = sorted(self.lecon_nbr_dev, reverse=True, key=itemgetter(1))
|
||||
|
||||
def score_dev(self):
|
||||
""" Calcul le score/avancement dans nos lecons
|
||||
|
||||
Arguments:
|
||||
- `self`:
|
||||
"""
|
||||
|
||||
# Calcul du nombre de développement effectué (pas plus de 2 par lecon sinon c'est triché!)
|
||||
score = 0
|
||||
for l in self.lecon.values():
|
||||
score += min(2, len(l.dev))
|
||||
|
||||
# Nombre total de développement nécessaire
|
||||
nbr_dev_tot = 2 * len(self.lecon)
|
||||
|
||||
self.score = score / nbr_dev_tot * 100
|
||||
|
||||
|
||||
|
||||
# -------------------- Affichage
|
||||
|
||||
def print_analyse_dev(self):
|
||||
""" Affiche le nombre de developpement par lecon en ordre décroissant
|
||||
|
||||
Arguments:
|
||||
- `self`:
|
||||
"""
|
||||
# On calcul et trie le nombre de dev
|
||||
self.nbr_dev()
|
||||
|
||||
for i, n in self.lecon_nbr_dev:
|
||||
self.lecon[i].print_nbr_dev()
|
||||
|
||||
self.score_dev()
|
||||
if self.score != 100:
|
||||
print("\n Courage! Ton score est de {score}% c'est déjà pas mal non?".format(score = self.score))
|
||||
else:
|
||||
print("\n Bien joué! Toutes les lecons au moins deux développements!")
|
||||
|
||||
def print_lecon_from_int(self, num = 101):
|
||||
""" Écrit le nom des développements en relation avec la leçonà partir du numero de la lecon
|
||||
|
||||
Arguments:
|
||||
- `self`:
|
||||
- `num`: le numero d'une lecon
|
||||
"""
|
||||
num = str(num)
|
||||
|
||||
if num in self.lecon:
|
||||
self.lecon[num].print_dev()
|
||||
else:
|
||||
print("Leçon inconnue!")
|
||||
|
||||
|
||||
def print_lecon_from_name(self, chaine):
|
||||
""" Écrit le nom des développements en relation avec la leçon à partir d'une partie du nom de la lecon
|
||||
|
||||
Arguments:
|
||||
- `self`:
|
||||
- `chaine`: Une partie du nom de la (ou des!) lecons
|
||||
"""
|
||||
|
||||
for l in [l for l in self.lecon.values() if divers.normalise_str(chaine) in divers.normalise_str(l.nom)]:
|
||||
l.print_dev()
|
||||
|
||||
|
||||
def print_dev(self, chaine):
|
||||
""" Affiche les informations sur les développements dont le nom contient "chaine"
|
||||
|
||||
Arguments:
|
||||
- `self`:
|
||||
- `chaine`: chaine de caracteres à partir duquel on va séléctionner les dév
|
||||
"""
|
||||
# Pour chaque nom de dev on selectionne ceux qui contienne la chaine
|
||||
|
||||
for d in [d for d in self.dev if divers.normalise_str(chaine) in divers.normalise_str(d.nom)]:
|
||||
d.print_info()
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# agreg = Agreg()
|
||||
# agreg.import_dev('/media/documents/Cours/Agreg/developpement/mes_dev/')
|
||||
# # agreg.analyse_dev()
|
||||
# # for num in dico_nom_lecon:
|
||||
# # agreg.print_lecon_dev(num)
|
||||
# agreg.extract_from_dev()
|
||||
# # agreg.print_analyse_dev()
|
||||
# agreg.print_lecon_dev(213)
|
||||
# agreg.print_lecon_dev(201)
|
||||
# agreg.print_lecon_dev(234)
|
||||
# agreg.print_lecon_dev(245)
|
||||
|
||||
# Pour analyser les options qu'on lui demande
|
||||
parser = optparse.OptionParser()
|
||||
|
||||
# options proposée
|
||||
parser.add_option("-a","--analyse",action="store_true",dest="analyse", help="Donne le nombre de developpement pour les leçons")
|
||||
parser.add_option("-l","--lecon",action="store",type="string",dest="lecon", help="Affiche les développements associés à aux lecons qui contiennent la chaine mis en argument.")
|
||||
parser.add_option("-L","--lecons",action="store",type="string",dest="list_lecons", help="Affiche les développements associés aux lecons mis en argument (Entre guillemets séparé par un espace ou sans rien s'il n'y a qu'une lecon)")
|
||||
parser.add_option("-d","--dev",action="store",type="string",dest="dev", help="Affiche la liste des developpements et propose d'en selectionner une à décrire")
|
||||
|
||||
|
||||
# Digestion
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
agreg = Agreg()
|
||||
agreg.import_dev(config.lieu_dev)
|
||||
agreg.extract_from_dev()
|
||||
|
||||
if options.analyse:
|
||||
agreg.print_analyse_dev()
|
||||
|
||||
if options.lecon:
|
||||
agreg.print_lecon_from_name(options.lecon)
|
||||
|
||||
if options.list_lecons:
|
||||
for l in options.list_lecons.split(" "):
|
||||
agreg.print_lecon_from_int(str(l))
|
||||
|
||||
if options.dev:
|
||||
agreg.print_dev(options.dev)
|
134
book.py
Normal file
134
book.py
Normal file
@ -0,0 +1,134 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
|
||||
import xml.dom.minidom as md
|
||||
import os
|
||||
|
||||
|
||||
class Book():
|
||||
""" Pour les bouquins
|
||||
"""
|
||||
|
||||
def __init__(self, ):
|
||||
""" Initialisation du bouquins
|
||||
"""
|
||||
self.infos = {"nom":None , "auth":None , "isbn": None}
|
||||
|
||||
self.dev=[]
|
||||
self.lecon=[]
|
||||
|
||||
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 des infos sur le bouquin en question
|
||||
for cle in self.infos.keys():
|
||||
self.infos[cle] = self.document.getElementsByTagName('lecon')[0].getAttribute(cle)
|
||||
|
||||
# Extraction des lecons liées
|
||||
for lecon in self.document.getElementsByTagName('lecon'):
|
||||
self.lecon += [lecon.getAttribute("num")]
|
||||
|
||||
# Extraction des devloppements
|
||||
for dev in self.document.getElementsByTagName('dev'):
|
||||
self.dev += [dev.getAttribute("nom")] # Manque d'extraire la page qui le concerne
|
||||
|
||||
# print("Ce bouquin est utile dans les leçons ", self.lecon, "et pour les développements", self.dev)
|
||||
|
||||
|
||||
def from_scratch(self, book = {"nom":None , "auth":None , "isbn": None}):
|
||||
""" Créé le bouquin depuis rien
|
||||
|
||||
Arguments:
|
||||
- `self`:
|
||||
- `book`: sous la forme suivante {"nom":val , "auth": val , "isbn": val }
|
||||
"""
|
||||
self.infos = book
|
||||
|
||||
self.document=md.Document()
|
||||
racine = self.document.createElement("book")
|
||||
|
||||
for cle in self.infos.keys():
|
||||
racine.setAttribute(cle, self.infos[cle])
|
||||
|
||||
self.document.appendChild(racine)
|
||||
|
||||
# print(self.document.toprettyxml())
|
||||
|
||||
def add_lecon(self, lecon = 0):
|
||||
""" Ajoute une lecon où apparait ce developpement
|
||||
|
||||
Arguments:
|
||||
- `self`:
|
||||
- `lecon`: le numero de la lecon
|
||||
"""
|
||||
self.lecon += [lecon]
|
||||
|
||||
element = self.document.createElement("lecon")
|
||||
element.setAttribute("num", str(lecon))
|
||||
|
||||
racine = self.document.getElementsByTagName('book')[0]
|
||||
racine.appendChild(element)
|
||||
|
||||
# print(self.document.toprettyxml())
|
||||
|
||||
def add_dev(self, dev = None, pg = None):
|
||||
""" Ajoute une lecon où apparait ce developpement
|
||||
|
||||
Arguments:
|
||||
- `self`:
|
||||
- `dev`: le nom du developpement
|
||||
- `pg`: page ou on peut le retrouver
|
||||
"""
|
||||
self.dev += [dev]
|
||||
|
||||
element = self.document.createElement("dev")
|
||||
|
||||
element.setAttribute("nom", str(dev))
|
||||
element.setAttribute("pg", str(pg))
|
||||
|
||||
racine = self.document.getElementsByTagName('book')[0]
|
||||
racine.appendChild(element)
|
||||
|
||||
# print(self.document.toprettyxml())
|
||||
|
||||
|
||||
def sauve(self, destination = 0):
|
||||
""" Sauve le developpement à l'endroit indiqué
|
||||
|
||||
Arguments:
|
||||
- `self`:
|
||||
- `destination`: là où on veut l'enregistrer
|
||||
"""
|
||||
if not destination:
|
||||
destination = self.infos["nom"].replace(" ", "_") + ".agregBook"
|
||||
|
||||
fichier = open(destination, 'w')
|
||||
fichier.write(self.document.toprettyxml())
|
||||
fichier.close()
|
||||
print("Le bouquin à été sauvé dans \"" + str(destination) + "\" voila son contenu")
|
||||
print(self.document.toprettyxml())
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
book = Book()
|
||||
# book.from_file("ici")
|
||||
book.from_scratch( {"nom":"super book" , "auth": "super autheur" , "isbn": "super isbn" })
|
||||
book.add_dev("j'aime les maths et les carottes rapées", 76)
|
||||
book.add_lecon("123")
|
||||
book.sauve()
|
||||
|
5
config.py
Normal file
5
config.py
Normal file
@ -0,0 +1,5 @@
|
||||
# Fichier configuration
|
||||
|
||||
lieu_dev = "../developpement/mes_dev/"
|
||||
lieu_lecon = "../lecons/"
|
||||
lieu_bouquin = "../Bouquins/"
|
44
creationFiches.sh
Normal file
44
creationFiches.sh
Normal file
@ -0,0 +1,44 @@
|
||||
#!/bin/sh
|
||||
IFS="
|
||||
"
|
||||
|
||||
lieu_fiches="lecons_notes"
|
||||
|
||||
|
||||
if [ ! -e $lieu_fiches ]
|
||||
then
|
||||
echo "Création du répertoire"
|
||||
mkdir $lieu_fiches
|
||||
fi
|
||||
|
||||
|
||||
for lecon in `cat liste_lecon`; do
|
||||
numero=${lecon:0:3}
|
||||
nom=${lecon:5} # On extrait le nom de la lecon
|
||||
nom_mod=${nom//./} # On remplace les "." par rien
|
||||
nom_mod=${nom_mod// /_} # On remplace les espaces par des _
|
||||
echo "Création de $lecon"
|
||||
|
||||
fichier="$lieu_fiches/$numero"
|
||||
|
||||
printf "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>
|
||||
|
||||
<lecon num=\"%s\" nom=\"%s\">
|
||||
|
||||
|
||||
</lecon>
|
||||
|
||||
<!-- Syntaxe
|
||||
|
||||
Commentaires sur la lecon
|
||||
<com src=str > </com>
|
||||
|
||||
Developpements choisis ou vus ou n'importe quoi
|
||||
<dev src=str pg=int > </dev>
|
||||
|
||||
Bouquins indispensables
|
||||
<book src=str pg=int > <book>
|
||||
-->
|
||||
" $numero $nom > $fichier
|
||||
|
||||
done
|
240
dev.py
Executable file
240
dev.py
Executable file
@ -0,0 +1,240 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
|
||||
import xml.dom.minidom as md
|
||||
import os
|
||||
import optparse
|
||||
|
||||
import lecon
|
||||
import config
|
||||
|
||||
# --------------------------------------------------
|
||||
#
|
||||
# Classe des développements
|
||||
#
|
||||
# --------------------------------------------------
|
||||
|
||||
|
||||
class Dev():
|
||||
""" Pour les développements
|
||||
"""
|
||||
|
||||
def __init__(self, ):
|
||||
""" Initialisation du développement
|
||||
"""
|
||||
|
||||
self.nom = None
|
||||
self.book=[]
|
||||
self.lecon=[]
|
||||
|
||||
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.nom = self.document.getElementsByTagName('dev')[0].getAttribute("nom")
|
||||
|
||||
# des lecons
|
||||
for lecon in self.document.getElementsByTagName('lecon'):
|
||||
self.lecon += [lecon.getAttribute("num")]
|
||||
|
||||
# des bouquins
|
||||
for book in self.document.getElementsByTagName('book'):
|
||||
self.book += [book.getAttribute("nom") , book.getAttribute("auth") , book.getAttribute("isbn") , book.getAttribute("pg")]
|
||||
|
||||
|
||||
# -------------------- Création et ajout d'information sur d'un développement
|
||||
|
||||
def from_scratch(self, nom = "???"):
|
||||
""" Créé le développement depuis rien
|
||||
|
||||
Arguments:
|
||||
- `self`:
|
||||
- `nom` : nom du developpement
|
||||
"""
|
||||
self.nom = nom
|
||||
|
||||
self.document=md.Document()
|
||||
racine = self.document.createElement("dev")
|
||||
racine.setAttribute("nom", nom)
|
||||
self.document.appendChild(racine)
|
||||
|
||||
# print(self.document.toprettyxml())
|
||||
|
||||
def add_book(self, book = ["nom", "auth", "isbn", "pg"] ):
|
||||
""" Ajoute un bouquin en relation avec ce developpement
|
||||
|
||||
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('dev')[0]
|
||||
racine.appendChild(element)
|
||||
|
||||
# print(self.document.toprettyxml())
|
||||
|
||||
def add_lecon(self, lecon = 0):
|
||||
""" Ajoute une lecon où apparait ce developpement
|
||||
|
||||
Arguments:
|
||||
- `self`:
|
||||
- `lecon`: le numero de la lecon
|
||||
"""
|
||||
self.lecon += [lecon]
|
||||
|
||||
element = self.document.createElement("lecon")
|
||||
element.setAttribute("num", str(lecon))
|
||||
|
||||
racine = self.document.getElementsByTagName('dev')[0]
|
||||
racine.appendChild(element)
|
||||
|
||||
# print(self.document.toprettyxml())
|
||||
|
||||
|
||||
# -------------------- Concernant le Prompt
|
||||
|
||||
def from_prompt(self):
|
||||
""" Créé le développement depuis le prompt
|
||||
|
||||
Arguments:
|
||||
"""
|
||||
print("\n ---------- Nouveau développement ---------- ")
|
||||
|
||||
|
||||
# On crée l'objet
|
||||
d = Dev()
|
||||
|
||||
# Nom du developpement
|
||||
self.prompt_desc_dev()
|
||||
|
||||
bo = 1
|
||||
while bo:
|
||||
self.prompt_add_book()
|
||||
|
||||
print("Un autre bouquin? (vide pour non, n'importe quoi pour oui!)")
|
||||
bo = input()
|
||||
|
||||
self.prompt_add_lecon()
|
||||
|
||||
print("\n ---------- Voila fini! ----------\n ")
|
||||
|
||||
|
||||
def prompt_desc_dev(self):
|
||||
""" Pour demander la description du developpement
|
||||
"""
|
||||
print("Nom du developpement?")
|
||||
nom = input()
|
||||
self.from_scratch(nom)
|
||||
|
||||
|
||||
def prompt_add_lecon(self):
|
||||
""" Prompt pour demander la liste des leçons correspondantes
|
||||
"""
|
||||
print("\n ---------- Ajout de la liste des developpement ---------- ")
|
||||
print("Liste des leçons liées? (séparé par un espace)")
|
||||
list_lecons = input().split(" ")
|
||||
|
||||
for l in list_lecons:
|
||||
self.add_lecon(l)
|
||||
|
||||
|
||||
def prompt_add_book(self):
|
||||
""" Prompt pour demander les infos sur un bouquin
|
||||
"""
|
||||
print("\n ---------- Ajout d'un bouquin ---------- ")
|
||||
|
||||
print("Nom du bouquin")
|
||||
nom = input()
|
||||
print("Autheur (tous on va pas s'embeter)")
|
||||
auth = input()
|
||||
print("Réference")
|
||||
ref = input()
|
||||
print("page")
|
||||
pg = input()
|
||||
|
||||
self.add_book([nom , auth , ref , pg])
|
||||
|
||||
|
||||
# -------------------- Affichage
|
||||
|
||||
def print_info(self):
|
||||
""" Affiche les infos sur le dev
|
||||
|
||||
Arguments:
|
||||
- `self`:
|
||||
"""
|
||||
print(" \n ---------- Informations sur :{nom} ".format(nom = self.nom))
|
||||
print(" --- Leçons --- ")
|
||||
for l in self.lecon:
|
||||
lec = lecon.Lecon()
|
||||
lec.from_scratch(l)
|
||||
lec.print_nom()
|
||||
|
||||
# print(" --- Bouquins --- ")
|
||||
|
||||
|
||||
# -------------------- Sauvegarde
|
||||
|
||||
def sauve(self, folder = ""):
|
||||
""" Sauve le developpement à l'endroit indiqué
|
||||
|
||||
Arguments:
|
||||
- `self`:
|
||||
- `folder`: là où on veut l'enregistrer (et oui pas le choix du nom!!)
|
||||
"""
|
||||
destination = folder + self.nom.replace(" ", "_") + ".agregDev"
|
||||
|
||||
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__':
|
||||
# dev = Dev()
|
||||
# dev.from_file("/media/documents/Cours/Agreg/developpement/mes_dev/Lp_Banach")
|
||||
# # dev.from_scratch("j'aime les maths et les carottes rappées")
|
||||
# dev.add_book(("pipo", "popi", "chipo", "pouet"))
|
||||
# dev.add_book(("pipoi", "popii", "chipoi", "poueti"))
|
||||
# dev.add_lecon("123")
|
||||
# dev.add_lecon("128")
|
||||
# dev.add_lecon("122")
|
||||
# dev.sauve()
|
||||
|
||||
|
||||
# Pour analyser les options qu'on lui demande
|
||||
parser = optparse.OptionParser()
|
||||
|
||||
# options proposée
|
||||
parser.add_option("-n","--new",action="store_true",dest="new", help='Pour créer un nouveau développement')
|
||||
#parser.add_option("-o","--output",action="store",type="string",dest="outputFilename")
|
||||
|
||||
# Digestion
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
if options.new:
|
||||
dev = Dev()
|
||||
dev.from_prompt()
|
||||
dev.sauve(config.lieu_dev)
|
16
divers.py
Normal file
16
divers.py
Normal file
@ -0,0 +1,16 @@
|
||||
#! /usr/bin/env python
|
||||
# Ici on met tout ce qui n'a rien à faire ailleurs et qui est trop petit pour avec sa propre place!
|
||||
|
||||
|
||||
# ----------------------------------------
|
||||
# Pour les chaines de caractères
|
||||
|
||||
import unicodedata
|
||||
|
||||
def normalise_str(chaine):
|
||||
""" renvoie un chaine ou ù on a enlevé les majuscules et les accents de la chaine
|
||||
|
||||
Arguments:
|
||||
- `chaine`:
|
||||
"""
|
||||
return unicodedata.normalize('NFKD', chaine).encode('ASCII', 'ignore').lower()
|
82
liste_lecon
Normal file
82
liste_lecon
Normal file
@ -0,0 +1,82 @@
|
||||
101 Groupe opérant sur un ensemble. Exemples et applications.
|
||||
103 Exemples et applications des notions de sous-groupe distingué et de groupes quotient.
|
||||
104 Groupes finis. Exemples et applications.
|
||||
105 Groupe des permutations d'un ensemble fini. Applications.
|
||||
106 Groupe linéaire d'un espace vectoriel de dimension finie E, sous-groupes de GL(E). Applications
|
||||
107 Représentations et caractères des groupes finis sur un espace vectoriel complexe
|
||||
108 Exemples de parties génératrices d'un groupe. Applications.
|
||||
109 Anneau Z/nZ. Applications.
|
||||
110 Nombres premiers. Applications.
|
||||
111 Anneaux principaux. Applications
|
||||
112 Corps finis. Applications.
|
||||
113 Groupe des nombres complexes de module 1. Sous-groupes des racines de l'unité. Applications.
|
||||
114 Anneau des séries formelles. Applications
|
||||
116 Polynômes irréductibles à une indéterminée. Corps de rupture. Exemples et applications.
|
||||
117 Algèbre des polynômes à plusieurs inderterminées; aspects théoriques et applications
|
||||
119 Exemples d'actions de groupes sur les espaces de matrices
|
||||
120 Dimension d'un espace vectoriel (on se limitera au cas de dimension finie). Rang. Exemples et applications.
|
||||
123 Déterminant. Exemples et applications.
|
||||
124 Polynôme d'endomorphismes en dimension finie. Applications à la réduction d'un endomorphisme en dimension finie.
|
||||
125 Sous-espaces stables d'un endomorphisme ou d'une famille d'endomorphisme d'un espace vectoriel de dimension finie. Applications.
|
||||
126 Endomorphismes diagonalisables en dimension finie
|
||||
127 Exponentielle de matrices. Applications.
|
||||
128 Endomorphismes trigonalisables. Endomorphismes nilpotents.
|
||||
130 Matrices symétriques réelles, matrices hermitiennes.
|
||||
131 Formes quadratiques sur un espace vectoriel de dimension finie. Orthogonalité, isotropie. Applications
|
||||
132 Formes linéaires et hyperplans en dimension finie. Exemples et applications.
|
||||
133 Endomorphismes remarquables d'un espace vectoriel euclidien de dimension finie.
|
||||
135 Isométries d'un espace affine euclidien de dim finie. Formes réduites. Applications en dim 2 et 3.
|
||||
136 Coniques. Applications.
|
||||
137 Barycentres dans un espace affine réel de dimension finie, convexité. Applications
|
||||
139 Application des nombres complexes à la géométrie
|
||||
140 Systèmes linéaires;opérations, aspects algorithmiques et conséquences théoriques
|
||||
141 Utilisation des groupes en géométrie.
|
||||
144 Problèmes d'angles et de distances en dimension 2 ou 3.
|
||||
145 Méthodes combinatoires, problèmes de dénombrement.
|
||||
146 Résultant. Applications
|
||||
148 Formes quadratiques réelles. Exemples et applications.
|
||||
149 Représentations des groupes finis de petit cardinal
|
||||
201 Espaces de fonctions. Exemples et applications.
|
||||
202 Exemples de parties denses et applications.
|
||||
203 Utilisation de la notion de compacité.
|
||||
204 Connexité. Exemples et applications.
|
||||
205 Espaces complets. Exemples et applications.
|
||||
206 Théorèmes de point fixe. Exemples et applications.
|
||||
207 Prolongement de fonctions. Exemples et applications.
|
||||
208 Espaces vectoriels normés, applications linéaires continues . Exemples
|
||||
213 Espaces de Hilbert, bases hilbertiennes. Exemples et applications.
|
||||
214 Théorème d'inversion locale, théorème des fonctions implicites. Exemples et applications.
|
||||
215 Applications différentiables définies sur un ouvert de Rn. Exemples et applications.
|
||||
216 Etude métrique des courbes. Exemples
|
||||
217 Sous-variétés de Rn, exemples
|
||||
218 Applications des formules de Taylor.
|
||||
219 Problèmes d'extremum.
|
||||
220 Equations différentielles X ' = f(t, X), exemples d'études qualitatives des solutions.
|
||||
221 Equations différentielles linéaires. Systèmes d'équations différentielles linéaires. Exemples et applications.
|
||||
223 Convergence des suites numériques. Exemples et applications.
|
||||
224 Comportement asymptotique des suites numériques. Rapidité de convergence. Exemples.
|
||||
226 Comportement d'une suite réelle ou vectorielle définie par une itération un+1 = f (un). Exemples.
|
||||
228 Continuité et dérivabilité des fonctions réelles d'une variable réelle. Exemples et contrexemples.
|
||||
229 Fonctions monotones. Fonctions convexes. Exemples et applications.
|
||||
230 Séries de nombres réels ou complexes. Comportement des restes ou des sommes partielles des séries numériques. Exemples.
|
||||
232 Méthodes d'approximation des solutions d'une équation F(X) = 0. Exemples.
|
||||
234 Espaces Lp.
|
||||
235 Suites et séries de fonctions intégrables. Exemples et applications.
|
||||
236 Illustrer par des exemples quelques méthodes de calcul d'intégrales de fonctions d'une ou plusieurs variables réelles.
|
||||
238 Méthodes de calcul approché d'intégrales et d'une solution d'équation différentielle.
|
||||
239 Fonctions définies par une intégrale dépendant d'un paramètre. Exemples et applications
|
||||
240 Transformation de Fourier, produit de convolution. Applications.
|
||||
241 Suites et Séries de fonctions. Exemples et contre-exemples.
|
||||
242 Utilisation en probabilités des transformations de Fourier ou de Laplace et du produit de convolution
|
||||
243 Convergence des séries entières, propriétés de la somme. Exemples et applications.
|
||||
245 Fonctions holomorphes et méromorphes sur un ouvert de C.
|
||||
246 Séries de Fourier. Exemples et applications.
|
||||
247 Exemples de problèmes d'interversion de limites.
|
||||
249 Suites de variables de Bernoulli indépendantes.
|
||||
250 Loi des grands nombres, théorème de la limite centrale. Applications.
|
||||
251 Indépendance d'événements et de variables aléatoires. Exemples.
|
||||
252 loi binomiale, loi de Poisson - Applications
|
||||
253 Utilisation de la notion de convexité en analyse.
|
||||
254 Espace de Schwartz et distributions tempérées.
|
||||
255 Dérivation au sens des distributions . Exemples et applications.
|
||||
256 Transformation de Fourier dans S(Rd) et S'(Rd).
|
37
new_book.sh
Normal file
37
new_book.sh
Normal file
@ -0,0 +1,37 @@
|
||||
#!/bin/sh
|
||||
|
||||
NOM=${*:?"Et le nom?!?!"}
|
||||
NOM_mod=${NOM// /_}
|
||||
echo $NOM_mod
|
||||
|
||||
while [ -z $AUTH ]; do
|
||||
echo "Auteurs? (N'importe quoi si la flemme)"
|
||||
read AUTH
|
||||
done
|
||||
|
||||
while [ -z $ISBN ]; do
|
||||
echo "ISBN? (N'importe quoi si la flemme)"
|
||||
read ISBN
|
||||
done
|
||||
|
||||
printf "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>
|
||||
|
||||
<book nom=\"$NOM\" auth=\"$AUTH\" isbn=\"$ISBN\">
|
||||
|
||||
</book>
|
||||
|
||||
<!-- Syntaxe
|
||||
|
||||
Commentaires sur la lecon
|
||||
<com pg=int > </com>
|
||||
|
||||
Developpements choisis ou vus ou n'importe quoi
|
||||
<dev pg=int lecon=int > </dev>
|
||||
|
||||
Lecon correspondante
|
||||
<lecon num=int />
|
||||
-->
|
||||
" > $NOM_mod
|
||||
|
||||
echo "$NOM_mod a été créé et voici son contenu"
|
||||
cat $NOM_mod
|
63
new_dev.sh
Normal file
63
new_dev.sh
Normal file
@ -0,0 +1,63 @@
|
||||
#!/bin/sh
|
||||
|
||||
NOM=${*:?"Et le nom?!?!"}
|
||||
NOM_mod=${NOM// /_}
|
||||
|
||||
echo "Création du developpement $NOM"
|
||||
|
||||
while [ -z $SRC ]; do
|
||||
echo "Nom d'un bouquin? (Commencez par le premier!)"
|
||||
read SRC
|
||||
done
|
||||
|
||||
while [ -z $AUTH ]; do
|
||||
echo "Son auteur? (Celui du bouquin que vous venez d'entrer)"
|
||||
read AUTH
|
||||
done
|
||||
|
||||
while [ -z $PG ]; do
|
||||
echo "La page où le trouver? (N'importe quoi si la flemme mais c'est pas chouette)"
|
||||
read PG
|
||||
done
|
||||
|
||||
while [ -z $LECON ]; do
|
||||
echo "liste des leçons associés? (suite de numero séparés par un espace)"
|
||||
read LECON
|
||||
done
|
||||
|
||||
# En tête du fichier
|
||||
printf "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>
|
||||
|
||||
<dev nom=\"$NOM\">
|
||||
|
||||
<book nom=\"$SRC\" auth=\"$AUTH\" isbn="???" pg=\"$PG\" > </book>
|
||||
|
||||
" >> $NOM_mod
|
||||
|
||||
echo $LECON
|
||||
for lecon in $LECON; do
|
||||
printf "<lecon num=\"$lecon\" />
|
||||
" >> $NOM_mod
|
||||
done
|
||||
# Bas du fichier
|
||||
|
||||
printf "
|
||||
|
||||
</dev>
|
||||
|
||||
<!-- Syntaxe
|
||||
|
||||
Commentaires sur la lecon
|
||||
<com> </com>
|
||||
|
||||
Developpements choisis ou vus ou n'importe quoi
|
||||
<book nom=tr auth=str isbn=int pg=int > </book>
|
||||
|
||||
Lecon correspondante
|
||||
<lecon num=int />
|
||||
-->
|
||||
" >> $NOM_mod
|
||||
|
||||
echo "$NOM_mod a été créé et voici son contenu"
|
||||
echo "----------------------------------------"
|
||||
cat $NOM_mod
|
Loading…
Reference in New Issue
Block a user