def any_missing_maybe(self):  
missing = []<EOL>maybe = []<EOL>for name in self.badmodules:<EOL><INDENT>if name in self.excludes:<EOL><INDENT>continue<EOL><DEDENT>i = name.rfind("<STR_LIT:.>")<EOL>if i < <NUM_LIT:0>:<EOL><INDENT>missing.append(name)<EOL>continue<EOL><DEDENT>subname = name[i + <NUM_LIT:1>:]<EOL>pkgname = name[:i]<EOL>pkg = self.modules.get(pkgname)<EOL>if pkg is not None:<EOL><INDENT>if pkgname in self.badmodules[name]:<EOL><INDENT>missing.append(name)<EOL><DEDENT>elif subname in pkg.globalnames:<EOL><INDENT>pass<EOL><DEDENT>elif pkg.starimports:<EOL><INDENT>maybe.append(name)<EOL><DEDENT>else:<EOL><INDENT>missing.append(name)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>missing.append(name)<EOL><DEDENT><DEDENT>missing.sort()<EOL>maybe.sort()<EOL>return missing, maybe<EOL>
Return two lists, one with modules that are certainly missing
        and one with modules that *may* be missing. The latter names could
        either be submodules *or* just global names in the package.

        The reason it can't always be determined is that it's impossible to
        tell which names are imported when ``from module import *`` is done
        with an extension module, short of actually importing it.