code: def load_plugins_dir(path, category=None, overwrite=False):
      
      # get potential plugin python files
      if hasattr(path, 'glob'):
          pypaths = path.glob('*.py')
      else:
          pypaths = glob.glob(os.path.join(path, '*.py'))
  
      load_errors = []
      for pypath in pypaths:
          # use uuid to ensure no conflicts in name space
          mod_name = str(uuid.uuid4())
          try:
              if hasattr(pypath, 'resolve'):
                  # Make the path absolute, resolving any symlinks
                  pypath = pypath.resolve()
  
              with warnings.catch_warnings(record=True):
                  warnings.filterwarnings("ignore", category=ImportWarning)
  
                  # for MockPaths
                  if hasattr(pypath, 'maketemp'):
                      with pypath.maketemp() as f:
                          module = load_source(mod_name, f.name)
                  else:
                      module = load_source(mod_name, str(pypath))
  
          except Exception as err:
              load_errors.append((str(pypath), 'Load Error: {}'.format(err)))
              continue
  
          # only get classes that are local to the module
          class_members = inspect.getmembers(module, inspect.isclass)
          classes = [klass for klass_name, klass in class_members if
                     klass.__module__ == mod_name]
          load_errors += load_plugin_classes(classes, category, overwrite)
  
      return load_errors
docs: load plugins from a directory
  
      Parameters
      ----------
      path : str or path_like
      category : None or str
          if str, apply for single plugin category
      overwrite : bool
          if True, allow existing plugins to be overwritten