docs: def loadPlugins(cls):
          """
          Initializes the plugins by loading modules from the inputted paths.
          """
          plugs = getattr(cls, '_%s__plugins' % cls.__name__, None)
          if plugs is not None:
              return
  
          plugs = {}
          setattr(cls, '_%s__plugins' % cls.__name__, plugs)
          typ = cls.pluginRegisterType()
  
          for path in cls.pluginPath():
              base_package = projex.packageFromPath(path)
              base_path = os.path.normpath(projex.packageRootPath(path))
  
              # make sure it is at the front of the path
              if base_path in sys.path:
                  sys.path.remove(base_path)
  
              sys.path.insert(0, base_path)
              processed = ['__init__']
  
              # load support for registries
              if typ & Plugin.Type.RegistryFile:
                  files = glob.glob(os.path.join(path, '*/register.xml'))
                  for file_ in files:
                      name = os.path.normpath(file_).split(os.path.sep)[-2]
                      processed.append(name)
  
                      try:
                          proxy = PluginProxy.fromFile(cls, file_)
                          cls.register(proxy)
  
                      except Exception, e:
                          name = projex.text.pretty(name)
                          err = Plugin(name)
                          err.setError(e)
                          err.setFilepath(file_)
  
                          cls.register(err)
  
                          # log the error
                          msg = "%s.plugin('%s') failed to load from %s."
                          logger.warning(msg % (cls.__name__, name, file_))
                          logger.error(e)
  
              # load support for packages
              if typ & Plugin.Type.Package:
                  files = glob.glob(os.path.join(path, '*/__init__.py'))
                  for file_ in files:
                      name = os.path.normpath(file_).split(os.path.sep)[-2]
                      if name in processed:
                          continue
  
                      processed.append(name)
                      package = '.'.join([base_package, name]).strip('.')
                      if not package:
                          continue
  
                      try:
                          __import__(package)
  
                      except Exception, e:
                          name = projex.text.pretty(name)
                          err = Plugin(name)
                          err.setError(e)
                          err.setFilepath(file_)
  
                          cls.register(err)
  
                          # log the error
                          msg = "%s.plugin('%s') failed to load from %s."
                          logger.warning(msg % (cls.__name__, name, file_))
                          logger.error(e)
  
              # load support for modules
              if typ & Plugin.Type.Module:
                  files = glob.glob(os.path.join(path, '*.py'))
                  for file_ in files:
                      name = os.path.basename(file_).split('.')[0]
                      if name in processed:
                          continue
  
                      processed.append(name)
                      package = '.'.join([base_package, name]).strip('.')
                      if not package:
                          continue
  
                      try:
                          __import__(package)
  
                      except Exception, e:
                          name = projex.text.pretty(name)
                          err = Plugin(name)
                          err.setError(e)
                          err.setFilepath(file_)
  
                          cls.register(err)
  
                          # log the error
                          msg = "%s.plugin('%s') failed to load from %s."
                          logger.warning(msg % (cls.__name__, name, file_))
                          logger.error(e)