#
from jinja2 import Environment, FileSystemLoader
import os,yaml

#
def doTitre(d):
    #path= f"{os.getcwd()}/../Jinja"
    path= "/home/moi/Memoires/Jinja"
    env = Environment(loader=FileSystemLoader(path))

    # Load a template
    template = env.get_template('titre.jin')
# 
    if d["auteur"][0].lower()[0] in ("a","e","i","o","u","y"):
        d["de"]=" d'"
    else:
        d["de"]=" de "

    if d["statut"] !="":
        d["virgule"]=","
    else:
        d["virgule"]=""

    if "titre_court" not in d.keys():
        d["titre_court"]= d["titre"]
        
    return template.render(di=d)
#
if __name__ == '__main__':
    #---clés du fichier data.yml
    data_yml_mandatory_keys=['fichier', 'date',  'auteur', 'titre']
    data_yml_order=['date','type','auteur','statut','titre']
    #

    with open("data.yml") as f:
        d=yaml.safe_load(f)
    # on vérifie que le fichier "data.yml" est correct:
    for x in data_yml_mandatory_keys: #vérifier la présence des
        #clés obligatoires
        if not x in d.keys():
            raise Exception(f"\n\n Il manque la clé  {x} dans data.yml\n\n")
    # si statut est défini, type doit l'être aussi:
   
    if "statut" in d.keys(): # membre t=itulaire, correspondant, d'honneur...
        if "type" not in d.keys():
            raise Exception(f"\n\n statut est défini, mais pas type\n\n")
        add_virgule = True
    else: # si statut n'est pas défini, on le définit  à
        # " " et type à "Conférence".
        add_virgule =False
        d["statut"]=" "
        if "type" not in d.keys():
            d["type"]="Conférence"
    #
    add_virgule = True
    
        
    print("data_yml lu")
    T=doTitre(d)
    #print(T)
    with open("titre.tex","w") as f:
        f.write(T)
