parameters: (module, paths=None)
return_statement: return file, path, (suffix, mode, kind)
docstring: Just like 'imp.find_module()', but with package support
docstring_summary: Just like 'imp.find_module()', but with package support
docstring_tokens: Just like imp . find_module () but with package support
function: def find_module(module, paths=None):
      """Just like 'imp.find_module()', but with package support"""
      spec = find_spec(module, paths)
      if spec is None:
          raise ImportError("Can't find %s" % module)
      if not spec.has_location and hasattr(spec, 'submodule_search_locations'):
          spec = importlib.util.spec_from_loader('__init__.py', spec.loader)
  
      kind = -1
      file = None
      static = isinstance(spec.loader, type)
      if spec.origin == 'frozen' or static and issubclass(
              spec.loader, importlib.machinery.FrozenImporter):
          kind = PY_FROZEN
          path = None  # imp compabilty
          suffix = mode = ''  # imp compability
      elif spec.origin == 'built-in' or static and issubclass(
              spec.loader, importlib.machinery.BuiltinImporter):
          kind = C_BUILTIN
          path = None  # imp compabilty
          suffix = mode = ''  # imp compability
      elif spec.has_location:
          path = spec.origin
          suffix = os.path.splitext(path)[1]
          mode = 'r' if suffix in importlib.machinery.SOURCE_SUFFIXES else 'rb'
  
          if suffix in importlib.machinery.SOURCE_SUFFIXES:
              kind = PY_SOURCE
          elif suffix in importlib.machinery.BYTECODE_SUFFIXES:
              kind = PY_COMPILED
          elif suffix in importlib.machinery.EXTENSION_SUFFIXES:
              kind = C_EXTENSION
  
          if kind in {PY_SOURCE, PY_COMPILED}:
              file = open(path, mode)
      else:
          path = None
          suffix = mode = ''
  
      return file, path, (suffix, mode, kind)
function_tokens: def find_module ( module , paths = None ) : spec = find_spec ( module , paths ) if spec is None : raise ImportError ( "Can't find %s" % module ) if not spec . has_location and hasattr ( spec , 'submodule_search_locations' ) : spec = importlib . util . spec_from_loader ( '__init__.py' , spec . loader ) kind = - 1 file = None static = isinstance ( spec . loader , type ) if spec . origin == 'frozen' or static and issubclass ( spec . loader , importlib . machinery . FrozenImporter ) : kind = PY_FROZEN path = None # imp compabilty suffix = mode = '' # imp compability elif spec . origin == 'built-in' or static and issubclass ( spec . loader , importlib . machinery . BuiltinImporter ) : kind = C_BUILTIN path = None # imp compabilty suffix = mode = '' # imp compability elif spec . has_location : path = spec . origin suffix = os . path . splitext ( path ) [ 1 ] mode = 'r' if suffix in importlib . machinery . SOURCE_SUFFIXES else 'rb' if suffix in importlib . machinery . SOURCE_SUFFIXES : kind = PY_SOURCE elif suffix in importlib . machinery . BYTECODE_SUFFIXES : kind = PY_COMPILED elif suffix in importlib . machinery . EXTENSION_SUFFIXES : kind = C_EXTENSION if kind in { PY_SOURCE , PY_COMPILED } : file = open ( path , mode ) else : path = None suffix = mode = '' return file , path , ( suffix , mode , kind )