Commit e8f00fb1 authored by Patrik Meijer's avatar Patrik Meijer
Browse files

Update seed and save res in model

parent 9f8e6048
Loading
Loading
Loading
Loading
+21 −5
Changes for src/plugins/MyPythonPlugin/MyPythonPlugin/__init__.py: 21 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ import sys
import os
import time
import csv
import json
import logging
import subprocess
from webgme_bindings import PluginBase
@@ -127,8 +128,14 @@ class MyPythonPlugin(PluginBase):

        subprocess.check_call([omc_exe, 'simulate.mos'], cwd=sim_dir)

        csv_content = self.read_sim_results(sim_dir)
        logger.info('TimeSeries {0}'.format(csv_content))
        sim_res = self.read_sim_results(sim_dir)
        logger.info('TimeSeries {0}'.format(json.dumps(sim_res, indent=2)))

        result_hash = self.add_file('res.json', json.dumps(sim_res, indent=2))

        self.core.set_attribute(self.active_node, 'simRes', result_hash)

        self.util.save(self.root_node, self.commit_hash, 'master', 'Attached result in model')

    def write_mos_script(self, out_dir):
        mos_script = '\n'.join([
@@ -143,17 +150,26 @@ class MyPythonPlugin(PluginBase):

    def read_sim_results(self, sim_dir):
        csv_path = os.path.join(sim_dir, '{0}_res.csv'.format(self.model['name']))
        result = {
            'commitHash': self.commit_hash,
            'timeStamp': time.time(),
            'timeSeries': {}
        }

        with open(csv_path, 'r') as f_in:
            csv_reader = csv.reader(f_in, delimiter=',')
            line_count = 0
            idx_to_variable = []
            for row in csv_reader:
                if line_count == 0:
                    logger.info('Column names are {", ".join(row)}')
                    idx_to_variable = row
                    logger.info('Variable names are {", ".join(row)}')
                    for variable in row:
                        result['timeSeries'][variable] = []
                else:
                    print('RowNbr {0}: {1}'.format(line_count, row))
                    for idx, value in enumerate(row):
                        result['timeSeries'][idx_to_variable[idx]].append(float(value))
                line_count += 1
            # TODO: How to massage the data for the blob?
            result = f_in.readlines()

        return result
+287 KiB (303 KiB)

File changed.

No diff preview for this file type.