diff --git a/api/s34_sa_cal.py b/api/s34_sa_cal.py index 078fcc8..41fabd4 100644 --- a/api/s34_sa_cal.py +++ b/api/s34_sa_cal.py @@ -115,7 +115,7 @@ def _calculate_service_area(name: str, inp, time_index: int = 0) -> dict[str, li def calculate_service_area(name: str) -> list[dict[str, list[str]]]: - inp = json.loads(run_project(name)) + inp = json.loads(run_project(name, True)) result: list[dict[str, list[str]]] = [] diff --git a/epanet/epanet.py b/epanet/epanet.py index 7cf89e1..9c8bf24 100644 --- a/epanet/epanet.py +++ b/epanet/epanet.py @@ -3,6 +3,7 @@ import platform import os import sys import json +import base64 from typing import Any sys.path.append("..") from api import project @@ -232,10 +233,13 @@ def dump_report(path: str) -> str: def dump_output_binary(path: str) -> str: - return open(path, 'rb').read() + with open(path, 'rb') as f: + data = f.read() + bast64_data = base64.b64encode(data) + return str(bast64_data, 'utf-8') -def run_project(name: str) -> str: +def run_project(name: str, readable_output: bool = False) -> str: if not project.have_project(name): raise Exception(f'Not found project [{name}]') @@ -258,8 +262,10 @@ def run_project(name: str) -> str: data['simulation_result'] = 'failed' else: data['simulation_result'] = 'successful' - # data |= _dump_output(opt) - data['output'] = dump_output_binary(opt) + if readable_output: + data |= _dump_output(opt) + else: + data['output'] = dump_output_binary(opt) data['report'] = dump_report(rpt)