denis@2006: from __future__ import absolute_import denis@2006: from os import listdir, path denis@2006: import util.paths as paths denis@2006: denis@2006: _base_path = paths.AbsDir(__file__) denis@2006: denis@2006: denis@2006: def _GetLocalConnectorClassDialog(name): denis@2006: return lambda: getattr(__import__(name, globals(), locals()), name + "_connector_dialog") denis@2006: denis@2006: def _GetLocalConnectorURITypes(name): denis@2006: return lambda: getattr(__import__(name, globals(), locals()), "URITypes", None) denis@2006: denis@2006: connectors_dialog = {name: denis@2006: {"function":_GetLocalConnectorClassDialog(name), "URITypes": _GetLocalConnectorURITypes(name)} denis@2006: for name in listdir(_base_path) denis@2006: if (path.isdir(path.join(_base_path, name)) and denis@2006: not name.startswith("__"))} denis@2006: denis@2006: def ConnectorDialog(type, confnodesroot): denis@2006: if type not in connectors_dialog: denis@2006: return None denis@2006: denis@2006: connectorclass = connectors_dialog[type]["function"]() denis@2006: return connectorclass(confnodesroot) denis@2006: denis@2006: def GetConnectorFromURI(uri): denis@2006: typeOfConnector = None denis@2006: for t in connectors_dialog: denis@2006: connectorTypes = connectors_dialog[t]["URITypes"]() denis@2006: if connectorTypes and uri in connectorTypes: denis@2006: typeOfConnector = t denis@2006: break denis@2006: denis@2006: return typeOfConnector