makeTitre.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #
  2. from jinja2 import Environment, FileSystemLoader
  3. import os,yaml
  4. #
  5. def doTitre(d):
  6. #path= f"{os.getcwd()}/../Jinja"
  7. path= "/home/moi/Memoires/Jinja"
  8. env = Environment(loader=FileSystemLoader(path))
  9. # Load a template
  10. template = env.get_template('titre.jin')
  11. #
  12. if d["auteur"][0].lower()[0] in ("a","e","i","o","u","y"):
  13. d["de"]=" d'"
  14. else:
  15. d["de"]=" de "
  16. if d["statut"] !="":
  17. d["virgule"]=","
  18. else:
  19. d["virgule"]=""
  20. if "titre_court" not in d.keys():
  21. d["titre_court"]= d["titre"]
  22. return template.render(di=d)
  23. #
  24. if __name__ == '__main__':
  25. #---clés du fichier data.yml
  26. data_yml_mandatory_keys=['fichier', 'date', 'auteur', 'titre']
  27. data_yml_order=['date','type','auteur','statut','titre']
  28. #
  29. with open("data.yml") as f:
  30. d=yaml.safe_load(f)
  31. # on vérifie que le fichier "data.yml" est correct:
  32. for x in data_yml_mandatory_keys: #vérifier la présence des
  33. #clés obligatoires
  34. if not x in d.keys():
  35. raise Exception(f"\n\n Il manque la clé {x} dans data.yml\n\n")
  36. # si statut est défini, type doit l'être aussi:
  37. if "statut" in d.keys(): # membre t=itulaire, correspondant, d'honneur...
  38. if "type" not in d.keys():
  39. raise Exception(f"\n\n statut est défini, mais pas type\n\n")
  40. add_virgule = True
  41. else: # si statut n'est pas défini, on le définit à
  42. # " " et type à "Conférence".
  43. add_virgule =False
  44. d["statut"]=" "
  45. if "type" not in d.keys():
  46. d["type"]="Conférence"
  47. #
  48. add_virgule = True
  49. print("data_yml lu")
  50. T=doTitre(d)
  51. #print(T)
  52. with open("titre.tex","w") as f:
  53. f.write(T)