Source code for poly_lithic.src.interfaces
from poly_lithic.src.utils.lazyInterfaceLoader import AbstractInterfaceLoader
[docs]
class InterfaceLoader(AbstractInterfaceLoader):
def __init__(self):
super().__init__()
[docs]
def keys(self):
return ['k2eg', 'p4p', 'p4p_server', 'h5df']
def _load_interface(self, key):
if key == 'k2eg':
return self.import_module('.interfaces.k2eg_interface', 'K2EGInterface')
elif key == 'p4p':
return self.import_module('.interfaces.p4p_interface', 'SimplePVAInterface')
elif key == 'p4p_server':
return self.import_module(
'.interfaces.p4p_interface', 'SimlePVAInterfaceServer'
)
elif key == 'h5df':
return self.import_module('.interfaces.file_interface', 'h5dfInterface')
else:
raise KeyError(f"Interface '{key}' not registered.")
registered_interfaces = InterfaceLoader()