diff --git a/src/minizinc/instance.py b/src/minizinc/instance.py index 9d903b8..7f23c02 100644 --- a/src/minizinc/instance.py +++ b/src/minizinc/instance.py @@ -1000,10 +1000,11 @@ def flat( output = self._driver._run(cmd, solver=self._solver) statistics: Dict[str, Any] = {} - matches = re.findall(rb"%%%mzn-stat:? (\w*)=([^\r\n]*)", output.stdout) - for m in matches: - set_stat(statistics, m[0].decode(), m[1].decode()) - + for obj in decode_json_stream(output.stdout): + if obj["type"] == "statistics": + statistics = {k: v for k, v in obj["statistics"].items()} + break + try: yield fzn, ozn, statistics finally: