# You should have received a copy of the GNU General Public License # along with this program; if not, see <http://www.gnu.org/licenses/>. # ################################################################################ from __future__ import print_function import os import sys from eyed3 import core, utils from eyed3.utils import guessMimetype from eyed3.utils.console import printMsg, printError from eyed3.utils.log import getLogger _PLUGINS = {} log = getLogger(__name__) def load(name=None, reload=False, paths=None): """Returns the eyed3.plugins.Plugin *class* identified by ``name``. If ``name`` is ``None`` then the full list of plugins is returned. Once a plugin is loaded its class object is cached, and future calls to this function will returned the cached version. Use ``reload=True`` to refresh the cache.""" global _PLUGINS if len(list(_PLUGINS.keys())) and not reload: # Return from the cache if possible try: return _PLUGINS[name] if name else _PLUGINS except KeyError: