def find_module(modname, path=None):
    """Find a module, also handling subpackages.
    Similar to imp.find_module(), except works with subpackages.
    This does not load the module, so no side effects from the module. It
    does load the package, so any contents of __init__.py are run and may
    have side effects.

    Returns:
        fo     -- Open file object.
        fname  -- file name of the file found
        desc   -- a 3-tuple of extension, mode, and file type.
    """
    if "." in modname:
        pkgname, modname = modname.rsplit(".", 1)
        pkg = find_package(pkgname)
        return find_module(modname, pkg.__path__)
    try:
        info = imp.find_module(modname, path)
    except __HOLE__:
        return None
    return info
dataset/ETHPy150Open kdart/pycopia/aid/pycopia/module.py/find_module