def load_external_types(self, path):
folder, filename = os.path.split(path)<EOL>try:<EOL><INDENT>fileobj, pathname, description = imp.find_module(filename, [folder])<EOL>mod = imp.load_module(filename, fileobj, pathname, description)<EOL><DEDENT>except ImportError as exc:<EOL><INDENT>raise ArgumentError("<STR_LIT>", module_path=path, parent_directory=folder, module_name=filename, error=str(exc))<EOL><DEDENT>self.load_type_module(mod)<EOL>
Given a path to a python package or module, load that module, search for all defined variables
inside of it that do not start with _ or __ and inject them into the type system.  If any of the
types cannot be injected, silently ignore them unless verbose is True.  If path points to a module
it should not contain the trailing .py since this is added automatically by the python import system