code: def load_plugins(self, plugin_path):
          
          self.logger.debug('Loading plugins from {0}'.format(plugin_path))
          plugins = {}
          plugin_dir = os.path.realpath(plugin_path)
          sys.path.append(plugin_dir)
  
          for f in os.listdir(plugin_dir):
              if f.endswith(".py"):
                  name = f[:-3]
              elif f.endswith(".pyc"):
                  name = f[:-4]
              # Possible support for plugins inside directories - worth doing?
              # elif os.path.isdir(os.path.join(plugin_dir, f)):
              #    name = f
              else:
                  continue
  
              try:
                  self.logger.debug('Adding plugin from: {0}'.format(f))
                  mod = __import__(name, globals(), locals(), [], 0)
  
                  for plugin_class in inspect.getmembers(mod):
                      if plugin_class[0][0:2] == '__':            # Skip dunder members - builtins, etc
                          continue
                      if hasattr(plugin_class[1], 'config_name'):
                          if plugin_class[1].config_name is not None:
                              # Skip plugins where config_name is None, like the base classes
                              plugins[plugin_class[1].config_name] = plugin_class[1]
                              self.logger.debug('Added plugin: {0}'.format(plugin_class[1].config_name))
  
                              # Todo: Add error checking here. If a plugin with that name already exists,
                              # log an error. Quit or continue?
  
              except ImportError as e:
                  self.logger.error(e)
                  pass            # problem importing
  
          self.logger.debug('Done loading plugins')
          return plugins
docs: Loads plugins from modules in plugin_path. Looks for the config_name property
          in each object that's found. If so, adds that to the dictionary with the
          config_name as the key. config_name should be unique between different plugins.
  
          :param plugin_path: Path to load plugins from
          :return: dictionary of plugins by config_name