47 lines
1.5 KiB
Python
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)
|