Mercurial > repos > siwaa > gama_desc
view desc.py @ 0:23b15c0eabff draft default tip
planemo upload for repository https://forgemia.inra.fr/nathalie.rousse/use/-/tree/gama/GAMA_DESC/galaxy-tools commit 6b9b95de1fe709f27a28d83797f81e91469edf79-dirty
author | siwaa |
---|---|
date | Mon, 18 Nov 2024 13:57:51 +0000 |
parents | |
children |
line wrap: on
line source
#!/usr/bin/env python # coding: utf-8 #----------------------------------------------------------------- __author__ = "Nathalie Rousse (nathalie.rousse@inrae.fr)" __copyright__ = "Copyright (C) 2024, Inrae (https://www.inrae.fr)" __license__ = "MIT" #----------------------------------------------------------------- import json # Produces a description JSON data from a GAML model file ############################################################################### def make_json_experiments_by_types(gaml_file_path): # experiments contains lists of experiment names, by type experiments = { "gui": [], "batch": [], "test": [], "memorize": [] } with open(gaml_file_path, 'r') as f: lines = f.readlines() for line in lines: experiment_name, type = None, None # default line_kept = True # default if "experiment" not in line : line_kept = False if ("type " not in line and "type:" not in line) : line_kept = False if line_kept : words = line.split() if words[0] == 'experiment' : experiment_name = words[1] else: line_kept = False if line_kept : while " :" in line: line = line.replace(" :", ":") line = line.replace(":", ": ") words = line.split() for i,word in enumerate(words) : if word == "type:" : if words[i+1] in ("gui", "batch", "test", "memorize"): type = words[i+1] if line_kept and (experiment_name is not None) and (type is not None): experiments[type].append(experiment_name) return experiments ############################################################################### GAML_FILE_PATH = "model.gaml" DESC_JSON_FILE_PATH = "desc.json" try : desc = dict() experiments = make_json_experiments_by_types(gaml_file_path=GAML_FILE_PATH) desc['experiments_by_types'] = experiments print(desc) with open(DESC_JSON_FILE_PATH, "w") as json_file: json_file.write(json.dumps(desc)) except Exception as e : errortype = type(e).__name__ errordetails = e.args print("ERROR:", errortype, errordetails) ###############################################################################