docstr: Get the names of all modules in the search_path. This means file names
  and not names defined in the files.
docstr_tok: ["Get","the","names","of","all","modules","in","the","search_path",".","This","means","file","names","and","not","names","defined","in","the","files","."]
code: def _get_module_names(self, search_path=None, in_module=None):
      """
      Get the names of all modules in the search_path. This means file names
      and not names defined in the files.
      """
      sub = self._evaluator.compiled_subprocess
  
      names = []
      # add builtin module names
      if search_path is None and in_module is None:
          names += [
              self._generate_name(name)
              for name in sub.get_builtin_module_names()
          ]
  
      if search_path is None:
          search_path = self.sys_path_with_modifications()
  
      for name in sub.list_module_names(search_path):
          names.append(self._generate_name(name, in_module=in_module))
      return names
  
imports: import os
  from parso.python import tree
  from parso.tree import search_ancestor
  from parso import python_bytes_to_unicode
  from jedi._compatibility import FileNotFoundError, ImplicitNSInfo, force_unicode, unicode
  from jedi import debug
  from jedi import settings
  from jedi.parser_utils import get_cached_code_lines
  from jedi.evaluate import sys_path
  from jedi.evaluate import helpers
  from jedi.evaluate import compiled
  from jedi.evaluate import analysis
  from jedi.evaluate.utils import unite
  from jedi.evaluate.cache import evaluator_method_cache
  from jedi.evaluate.filters import AbstractNameDefinition
  from jedi.evaluate.base_context import ContextSet, NO_CONTEXTS
label_desc: Use image node_id 7 for calling the Importer obj's underlying member method code with example usage: obj._get_module_names(search_path, in_module) and returns: names