code: def _make_skel_func(code, cell_count, base_globals=None):
      
      if base_globals is None:
          base_globals = {}
      elif isinstance(base_globals, string_types):
          base_globals_name = base_globals
          try:
              # First try to reuse the globals from the module containing the
              # function. If it is not possible to retrieve it, fallback to an
              # empty dictionary.
              if importlib is not None:
                  base_globals = vars(importlib.import_module(base_globals))
              elif sys.modules.get(base_globals, None) is not None:
                  base_globals = vars(sys.modules[base_globals])
              else:
                  raise ImportError
          except ImportError:
              base_globals = _dynamic_modules_globals.get(
                      base_globals_name, None)
              if base_globals is None:
                  base_globals = _DynamicModuleFuncGlobals()
              _dynamic_modules_globals[base_globals_name] = base_globals
  
      base_globals['__builtins__'] = __builtins__
  
      closure = (
          tuple(_make_empty_cell() for _ in range(cell_count))
          if cell_count >= 0 else
          None
      )
      return types.FunctionType(code, base_globals, None, None, closure)
docs: Creates a skeleton function object that contains just the provided
          code and the correct number of cells in func_closure.  All other
          func attributes (e.g. func_globals) are empty.