r"""IO and Model drivers."""
from yggdrasil.components import import_component
_non_component_modules = ['lpy_model.py']
[docs]def create_driver(driver=None, name=None, args=None, **kwargs):
r"""Dynamically create a driver based on a string and other driver
properties.
Args:
driver (str): Name of the driver that should be created.
name (str): Name to give the driver.
args (object, optional): Second argument for drivers which take a
minimum of two arguments. If None, the driver is assumed to take a
minimum of one argument. Defaults to None.
**kwargs: Additional keyword arguments are passed to the driver
class.
Returns:
object: Instance of the requested driver.
"""
class_ = import_component('model', driver, without_schema=True)
if args is None:
instance = class_(name, **kwargs)
else:
instance = class_(name, args, **kwargs)
return instance
__all__ = ['create_driver', 'Driver',
'ModelDriver', 'PythonModelDriver', 'RModelDriver',
'CModelDriver', 'CPPModelDriver',
'MakeModelDriver', 'MatlabModelDriver', 'LPyModelDriver',
'ConnectionDriver', 'InputDriver', 'OutputDriver',
'FileInputDriver', 'FileOutputDriver']