"""Script permettant de créer un dossier nommé numero_titre-dossier, numero ou titre dans lequel figurent les squelettes des fichiers latex correspondant au type de document demandé.
Exempled'utilisation :
documentex01_testtd
defvalidate_dossier(ctx,param,value):
ifos.path.exists(value):
raiseclick.BadParameter("Le dossier existe déjà !")
try:
iflen(value.split("_"))==2:
numero,nom=value.split("_")
int(numero)
returnnumero,f"{numero}_{nom}"
iflen(value.split("_"))==1:
try:
int(value)
returnvalue,value
except:
return"",value
else:
raiseclick.BadParameter("Le dossion doit être au format numéro_nom ou nom")
exceptValueError:
raiseclick.BadParameter("Le dossier doit être au format nom ou numéro_nom")
"""Retourne l'année scolaire en cours, si l'argument est True alors on renvoie toujours l'année scolaire en cours sauf à partir de juin où on renvoie l'année suivante
defannee_scolaire()->str:
"""
Sortie:
--------
str:Retournel'année scolaire en cours, si l'argumentestTruealorsonrenvoietoujoursl'année scolaire en cours sauf à partir de juin où on renvoie l'annéesuivante
""" Ces fonction permettent d'analyser l'argument donné en ligne de commande. Celui-ci doit être de la forme numero ou bien numero_titre ou bien titre, et numero doit être dans l'intervalle des numéros admissibles (voir constantes_document_latex)
"""
defformat(argv):
""" Formattage de l'argument
"""
arguments=argv.split('_')
iflen(arguments)==1:
arguments.append('')# garantit qu'il y a toujours au moins deux arguments, le second éventuellement vide
ifconstantes.debug:
print("fonction format")
print(f"La variable arguments est {arguments}")
returnarguments
defbon_format(argv):
"""Booléen déterminant si la chaîne de caractère argv est un argument admissible pour le script document latex
"""
arguments=format(argv)
iflen(arguments)!=2:# c'est impossible ?
returnFalse
numero,titre=arguments
ifconstantes.debug:
print("fonction bon_format")
print(f"Les variables numero,titre sont {numero} et {titre}")
try:
int(numero)#si le numéro est bien un numéro
returnnumeroinconstantes.numeros_admissibles
except:
returnTrue#si non, c'est un titre
else:
return[False]# Qu'est-ce que c'est que ce délire ??
defarguments(argv):
"""Renvoie la liste des arguments s'ils sont admissibles, et None autrement