File: C:/Users/fred/anaconda3/Lib/site-packages/anaconda_project/internal/plugins.py
# -*- coding: utf-8 -*-
# -----------------------------------------------------------------------------
# Copyright (c) 2017, Anaconda, Inc. All rights reserved.
#
# Licensed under the terms of the BSD 3-Clause License.
# The full license is in the file LICENSE.txt, distributed with this software.
# -----------------------------------------------------------------------------
try:
from entrypoints import get_group_named
except ImportError: # py 2.7
from pkg_resources import iter_entry_points
def get_group_named(group_name):
"""Facade function to align old entry_points api to new one."""
return {plugin.name: plugin for plugin in iter_entry_points(group_name)}
def _get_entry_points_plugins(entry_point_group):
"""Return all the entry points plugins registered."""
return {name: plugin.load() for name, plugin in sorted(get_group_named(entry_point_group).items())}
def get_plugins(plugin_hook_type):
"""Return all the entry points plugins registered that implement that hook.
The function will return all the plugins that implement the specified
type of hook.
Args:
- plugin_hook_type(str): type of hook
Output:
(dict) with plugin name as key and plugin generator function as value
"""
command_type = 'anaconda_project.plugins.%s' % plugin_hook_type
entry_point_plugins = _get_entry_points_plugins(entry_point_group=command_type)
return entry_point_plugins