dev-python/documentex: Utilisation de PyInquirer

ddenoncin 3 years ago
parent 2aad22376d
commit 835d25c6a7

@ -1,5 +1,7 @@
## TODO
Passer en options toutes les chaînes de caractères naturellement initialisées à ""
Faire une documentation correcte...
Types de documents :

@ -123,3 +123,14 @@ annee_scolaire = ['09', '10', '11', '12', '01', '02', '03', '04', '05'] # mois
annee_scolaire_plus_un = ['01', '02', '03', '04', '05']
annee_scolaire_en_cours = ['09', '10', '11', '12']
annees_valables = [str(i) for i in range(2018, 2070)]
"""
Fonctions de validations génériques
"""
def entier(x):
try:
int(x)
return True
except:
return "Doit être un entier"

@ -7,6 +7,7 @@ import shutil
from . import constantes_document_latex as constantes
from . import lib_annee_scolaire as annee_scolaire
import click
from PyInquirer.prompt import prompt
template_dir = constantes.jinja_template_dir
@ -37,18 +38,20 @@ def validate_dossier(ctx, param, value):
def documentex(dossier: str, type_document: str):
"""
Entrée:
-------
dossier : chaîne de caractère spécifiant le nom du dossier à créer
type_document : chaîne de caractère spécifiant le type de document à créer
Sortie :
--------
Aucune. On crée dans le dossier $dossier tous les fichiers d'en-tête LaTeX nécessaire en
fonction du type de document à créer.
Aucune. On crée dans le dossier $dossier tous les fichiers d'en-tête LaTeX nécessaire en fonction du type de document à créer.
Exemple :
---------
documentex 01_algebre-lineaire td
@ -57,12 +60,19 @@ def documentex(dossier: str, type_document: str):
# Initialisation des variables
# contenu,tex_file,fancyhead,type_document,short_title,lycee,classe,title,auteur,semaine,liste_noms,td,ds_numero,annee
date = datetime.now().strftime("%Y-%m-%d")
title = ""
semaine = ""
nom1 = ""
nom2 = ""
nom3 = ""
classe = ""
lycee = ""
ds_numero = ""
numero, nom_fichier = dossier
tex_file = constantes.tex_file # nom du fichier dans lequel on écrit du LaTeX
contenu,td,fancyhead,appartenance = constantes.dictionnaire_type_document[type_document]
contenu, td, fancyhead, appartenance = constantes.dictionnaire_type_document[type_document]
short_title = type_document.upper()+' '+numero
title,semaine,nom1,nom2,nom3 = constantes.initialiser_variables() # c'est moche...
auteur = constantes.auteur
annee = annee_scolaire.annee_scolaire()
institution = constantes.institution
@ -76,27 +86,101 @@ def documentex(dossier: str, type_document: str):
if appartenance:
classe = constantes.classe_appartenance
lycee = constantes.lycee_appartenance
else:
classe = ''
lycee = ''
ds_numero = ''
# Initialisation des variables suivant le type d'écrit
if contenu:
title = click.prompt("Quel titre long pour ce document ? ")
short_title = click.prompt("Quel titre court pour ce document ? ")
questions = [
{
"type": "input",
"name": "title",
"message": "Titre LONG du document",
},
{
"type": "input",
"name": "title",
"message": "Titre COURT du document",
}
]
answers = prompt(questions)
title = answers["title"]
short_title = answers["short_title"]
if type_document == 'dm':
questions = [
{
"type": "input",
"name": "date",
"message": "À rendre pour le : ",
}
]
short_title += ' : à rendre pour le '
short_title += click.prompt('à rendre pour le : ? ')
answers = prompt(questions)
short_title += answers["date"]
if type_document == 'cr':
lycee = click.prompt('Quel lycée ? ')
classe = click.prompt('Quelle classe ? ')
semaine = click.prompt('Quelle semaine ? ')
nom1 = click.prompt('Premier candidat ? ')
nom2 = click.prompt('Deuxième candidat ? ')
nom3 = click.prompt('Troisième candidat ? ')
questions = [
{
"type": "list",
"name": "lycee",
"message": "Nom du lycée",
"choices": [
"LLW",
"Lycée de Cachan",
]
},
{
"type": "list",
"name": "classe",
"message": "Nom de la classe",
"choices": [
"PTSI",
"PT*",
"PT",
]
},
{
"type": "input",
"name": "semaine",
"message": "Numéro de la semaine",
"validate": constantes.entier,
},
{
"type": "input",
"name": "nom1",
"message": "Nom du premier candidat",
"default": "",
},
{
"type": "input",
"name": "nom2",
"message": "Nom du deuxième candidat",
"default": "",
},
{
"type": "input",
"name": "nom3",
"message": "Nom du troisième candidat",
"default": "",
},
]
answers = prompt(questions)
lycee = answers["lycee"]
classe = answers["classe"]
semaine = answers["semaine"]
nom1 = answers["nom1"]
nom2 = answers["nom2"]
nom3 = answers["nom3"]
if type_document == 'ob':
nom1 = click.prompt('Nom du candidat ? ')
questions = [
{
"type": "input",
"name": "nom1",
"message": "Nom du candidat ",
}
]
answers = prompt(questions)
nom1 = answers["nom1"]
os.mkdir(nom_fichier)
os.mkdir(os.path.join(nom_fichier, "Utils"))

@ -45,6 +45,11 @@ Je connais <++> car celui-ci a effectué sa deuxième année de classe préparat
% Raisonner : /5
% Dialoguer : /3
% Si pas de question de cours
% Tableau exercice : /4
% Raisonner : /11
% Dialoguer : /5
\subsection*{Question de cours :}
<++>

@ -15,6 +15,7 @@ setup(
install_requires=[
"jinja2",
"Click",
"PyInquirer",
],
author = "David Denoncin",

Loading…
Cancel
Save