code: def find(name, path=(), parent=None):
      
      assert isinstance(path, tuple)
      head, _, tail = name.partition('.')
      try:
          tup = imp.find_module(head, list(path))
      except ImportError:
          return parent
  
      fp, modpath, (suffix, mode, kind) = tup
      if fp:
          fp.close()
  
      if parent and modpath == parent.path:
          # 'from timeout import timeout', where 'timeout' is a function but also
          # the name of the module being imported.
          return None
  
      if kind == imp.PKG_DIRECTORY:
          modpath = os.path.join(modpath, '__init__.py')
  
      module = Module(head, modpath, kind, parent)
      # TODO: this code is entirely wrong on Python 3.x, but works well enough
      # for Ansible. We need a new find_child() that only looks in the package
      # directory, never falling back to the parent search path.
      if tail and kind == imp.PKG_DIRECTORY:
          return find_relative(module, tail, path)
      return module
docs: Return a Module instance describing the first matching module found on the
      search path.
  
      :param str name:
          Module name.
      :param list path:
          List of directory names to search for the module.
      :param Module parent:
          Optional module parent.