MocodoScripts/mocodo_script.py
2024-03-25 12:02:27 +01:00

47 lines
1.5 KiB
Python

import mcd_mocodo as mcd
from mocodo.api import mocodo
import pathlib
import os
DOSSIER_DE_SORTIE = "output"
SUPPRIMER_FICHERTEXTE = True
SUPPRIMER_GEOJSON = True
domaines = [
# (mcd.nom_du_domaine, "nom_du_fichier", seed),
(mcd.auth, "auth",4),
(mcd.activites, "activites",2),
(mcd.ressources, "ressources",2),
(mcd.test, "test",3),
(mcd.recompenses, "recompenses",3),
]
def generer_mcd(domaine:str,nom:str,ga:bool=False,seed:float=1):
"""
Generer un graphe MCD à partir d'un domaine exprimé en MCD mocodo
:param domaine: Le domaine exprimé en MCD mocodo
:type domaine: str
:param nom: Le nom du fichier de sortie
:type nom: str
:param ga: Utiliser l'algorithme génétique pour arranger les entités
:type ga: bool
:param seed: La graine pour le réarangement des entités, par défaut 1
:param seed: int
:return: None
"""
with open(f"{nom}.mcd", "w") as f:
f.write(domaine)
result = mocodo(f'-i {nom} --colors ocean -t arrange{":algo=ga" if ga else ""} --seed {seed} --detect_overlaps')
print(result)
if SUPPRIMER_FICHERTEXTE : pathlib.Path(f"{nom}.mcd").unlink(missing_ok=True)
if SUPPRIMER_GEOJSON : pathlib.Path(f"{nom}_geo.json").unlink(missing_ok=True)
if __name__ == "__main__":
pathlib.Path(DOSSIER_DE_SORTIE).mkdir(parents=True, exist_ok=True)
os.chdir(DOSSIER_DE_SORTIE)
for mcd_mocodo, nom, seed in domaines:
generer_mcd(mcd_mocodo, nom, seed=seed)