__init__.py 文件源码

python
阅读 19 收藏 0 点赞 0 评论 0

项目:girlfriend 作者: chihongze 项目源码 文件源码
def register_entry_points_plugins(entry_point="girlfriend.plugin"):
    """???entry_point??????????????
       :param entry_point: ?????entry_point
    """

    global plugin_manager

    third_party_plugin_mgr = extension.ExtensionManager(
        namespace=entry_point, invoke_on_load=False)

    for ext in third_party_plugin_mgr:
        plugin_object, plugin = ext.plugin, None

        # ??????
        if isinstance(plugin_object, Plugin):
            plugin = plugin_object

        # ????
        elif isinstance(plugin_object, types.ModuleType):
            plugin = Plugin.wrap_module(plugin_object)

        # ????
        elif isinstance(plugin_object, types.FunctionType):
            plugin = Plugin.wrap_function(
                ext.name, plugin_object.__doc__, plugin_object)

        # ???
        elif isinstance(plugin_object, (types.ClassType, types.TypeType)):
            plugin = Plugin.wrap_class(plugin_object)

        # ?????????
        else:
            raise InvalidPluginException(
                u"?? '{}' ??? '{}'????".format(
                    ext.name,
                    type(plugin_object).__name__)
            )

        plugin_manager.register(plugin)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号