def get_module_info(self, module_path):
        """
        Get the path, description, and options from a module
        """
        try:
            spec = importlib.util.spec_from_file_location("CMEModule", module_path)
            module_spec = spec.loader.load_module().CMEModule

            module = {
                f"{module_spec.name.lower()}": {
                    "path": module_path,
                    "description": module_spec.description,
                    "options": module_spec.options.__doc__,
                    "supported_protocols": module_spec.supported_protocols,
                    "opsec_safe": module_spec.opsec_safe,
                    "multiple_hosts": module_spec.multiple_hosts,
                }
            }
            if self.module_is_sane(module_spec, module_path):
                return module
        except Exception as e:
            self.logger.fail(f"Failed loading module at {module_path}: {e}")
            self.logger.debug(traceback.format_exc())
        return None

        Get the path, description, and options from a module
        
cme/loaders/moduleloader.py