Source code for idaes.util.testutil

##############################################################################
# Institute for the Design of Advanced Energy Systems Process Systems
# Engineering Framework (IDAES PSE Framework) Copyright (c) 2018-2019, by the
# software owners: The Regents of the University of California, through
# Lawrence Berkeley National Laboratory,  National Technology & Engineering
# Solutions of Sandia, LLC, Carnegie Mellon University, West Virginia
# University Research Corporation, et al. All rights reserved.
#
# Please see the files COPYRIGHT.txt and LICENSE.txt for full copyright and
# license information, respectively. Both files are also available online
# at the URL "https://github.com/IDAES/idaes-pse".
##############################################################################
"""
Utility code for testing IDAES code.
"""
import os
import nbformat
from nbconvert.preprocessors import ExecutePreprocessor


__author__ = "Dan Gunter"


[docs]def run_notebook(path: str, name: str): """Run a specific jupyter notebook 'name' located at `path`. """ fullpath = os.path.join(path, name) with open(fullpath) as f: nb = nbformat.read(f, as_version=nbformat.NO_CONVERT) ep = ExecutePreprocessor(timeout=100) ep.allow_errors = True ep.preprocess(nb, {"metadata": {"path": path}}) failed = False for cell in nb.cells: if "outputs" in cell: for output in cell["outputs"]: if output.output_type == "error": failed = True num = cell["execution_count"] print(f"ERROR in {output['ename']} in {fullpath} [{num}]:") for tb_line in output["traceback"]: print(tb_line) return not failed