Source code for errors

"""
This file contains custom errors used by BESOS
"""
import platform


[docs]class ModeError(ValueError): """An error for when an invalid mode is encountered.""" def __init__(self, mode=None, message=None): # pragma: no cover if message is None: message = f'Invalid mode {mode}. Expected "idf" or "json"' super().__init__(message)
[docs]class InstallationError(ValueError): """ idf version X does not match with installed EP, please supply ep_path to correct EP version. We expect EP to be installed in {}. """ def __init__(self, version=None, ep_path=None, message=None): if message is None and ep_path and version: message = f"EnergyPlus in IDF does not match ep_path EP version, please supply correct ep_path to v{version}" message += f"\n ep_path: {ep_path}\n Version: {version}" elif message is None and version: message = f"\n Could not locate EnergyPlus V{version}" version = version.replace(".", "-") if platform.system() == "Windows": ep_directory = f"Detected Windows OS: C:/EnergyPlusV{version}" elif platform.system() == "Linux": ep_directory = f"Detected Linux OS: /usr/local/EnergyPlus-{version}" else: ep_directory = f"Detected MacOS: /Applications/EnergyPlus-{version}" message += f"\n We expected EnergyPlus to be installed in the following path\n {ep_directory}\n Or specify in ep_path argument\n" super().__init__(message)