Ensure each basedir is only added to the search path once

Fixes #1790.
parent 3a36c024
...@@ -58,10 +58,15 @@ class PluginLoader(object): ...@@ -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"""
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment