docs: def _load(module, globals_dict=None, symb_list=None):
      """Loads a Python module to make variables, objects and functions
  available globally.
  
      The idea is to load the module using importlib, then copy the
  symbols to the global symbol table.
  
      """
      if globals_dict is None:
          globals_dict = six.moves.builtins.__dict__
      try:
          mod = importlib.import_module(module)
          if '__all__' in mod.__dict__:
              # import listed symbols
              for name in mod.__dict__['__all__']:
                  if symb_list is not None:
                      symb_list.append(name)
                  globals_dict[name] = mod.__dict__[name]
          else:
              # only import non-private symbols
              for name, sym in six.iteritems(mod.__dict__):
                  if _validate_local(name):
                      if symb_list is not None:
                          symb_list.append(name)
                      globals_dict[name] = sym
      except Exception:
          log_interactive.error("Loading module %s", module, exc_info=True)