# 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)