Source code for tessif.tropp
# src/tessif/tropp.py
"""Tessif's TRansform Optimize and Post-Process warppers."""
import importlib
import json
import tessif.frused.configurations
[docs]def transform(tessif_system_model, plugin, trans_ops=None, node_uid_style="name"):
"""
Transform a tessif system model into one of the registered ESSMOS plugins.
Parameters
----------
tessif_system_model : :class:`tessif.system_model`
Tessif system model to be transformed.
plugin : str
String specifying on of the supported ESSMOS plugins.
trans_ops : dict
Dictionairy holding transformation options. Passed to plugin transform
utility as keyword arguments.
node_uid_style: str, default="name"
Node uid style used for identifying the individual components.
See also :attr:`tessif.frused.namedtuples.node_uid_styles`
"""
# perform runtime import
module_name = plugin.replace("-", "_")
plugin_module = importlib.import_module(module_name)
# respect udi style
tessif.frused.configurations.node_uid_style = node_uid_style
# parse trans_ops
if not trans_ops:
trans_ops = {}
# is this is called via the cli interface, transops neeed to be
# reinitiated as dict
if isinstance(trans_ops, str):
trans_ops = json.loads(trans_ops)
tool_system_model = plugin_module.transform(tessif_system_model, **trans_ops)
return tool_system_model
[docs]def optimize(plugin_system_model, plugin, opt_ops=None):
"""Optimize the ESSMOS system model.
Parameters
----------
opt_ops : dict
Dictionairy holding solver options.
"""
module_name = plugin.replace("-", "_")
plugin_module = importlib.import_module(module_name)
optimized_system_model = plugin_module.optimize(plugin_system_model)
return optimized_system_model
[docs]def post_process(optimized_plugin_system_model, plugin):
"""Help."""
module_name = plugin.replace("-", "_")
# plugin_module = importlib.import_module(module_name)
post_process = importlib.import_module(f"{module_name}.post_process")
global_resultier = post_process.IntegratedGlobalResultier(
optimized_plugin_system_model
)
all_resultier = post_process.AllResultier(optimized_plugin_system_model)
return global_resultier, all_resultier