Ensure each basedir is only added to the search path once

Fixes #1790.
This commit is contained in:
Daniel Hokka Zakrisson 2012-12-20 14:17:12 +01:00
commit d4c63e3300

View file

@ -58,10 +58,15 @@ class PluginLoader(object):
"""Return a list of paths to search for plugins in """Return a list of paths to search for plugins in
The list is searched in order.""" The list is searched in order."""
return self._extra_dirs + \ ret = []
[os.path.join(basedir, self.subdir) for basedir in _basedirs] + \ ret += self._extra_dirs
self.config.split(os.pathsep) + \ for basedir in _basedirs:
self._get_package_path() fullpath = os.path.join(basedir, self.subdir)
if fullpath not in ret:
ret.append(fullpath)
ret += self.config.split(os.pathsep)
ret += self._get_package_path()
return ret
def add_directory(self, directory): def add_directory(self, directory):
"""Adds an additional directory to the search path""" """Adds an additional directory to the search path"""