__init__.py 文件源码

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

项目:Prism 作者: Stumblinbear 项目源码 文件源码
def _verify_dependencies(self):
        # These will always be initialized.
        logging.up('Verifying dependencies')
        installed_packages_list = sorted([i.key for i in pip.get_installed_distributions()])
        for plugin_id, plugin_info in self.available_plugins.items():
            if not plugin_info['_is_core']:
                if 'dependencies' not in plugin_info:
                    continue

                if 'os' in plugin_info['dependencies']:
                    if get_general_os() in plugin_info['dependencies']['os']:
                        plugin_info['dependencies'] = data_merge(plugin_info['dependencies'], plugin_info['dependencies']['os'][get_general_os()])

                if 'plugin' in plugin_info['dependencies']:
                    for depend_name in plugin_info['dependencies']['plugin']:
                        installed = 'prism_' + depend_name in self.available_plugins
                        if not installed:
                            plugin_info['_is_satisfied'] = False
                        plugin_info['_dependencies'].append(('plugin', depend_name, installed))

                if 'binary' in plugin_info['dependencies']:
                    for depend_name in plugin_info['dependencies']['binary']:
                        installed = is_package_installed(depend_name)
                        if not installed:
                            plugin_info['_is_satisfied'] = False
                        plugin_info['_dependencies'].append(('binary', depend_name, installed))

                if 'module' in plugin_info['dependencies']:
                    for depend_name in plugin_info['dependencies']['module']:
                        installed = (depend_name in installed_packages_list)
                        if not installed:
                            plugin_info['_is_satisfied'] = False
                        plugin_info['_dependencies'].append(('module', depend_name, installed))

                if not plugin_info['_is_satisfied']:
                    # Create a dummy plugin container
                    self._insert_dummy_plugin(plugin_info)
                    logging.error('Dependency unsatisfied. Offender: %s' % plugin_id)
        logging.down()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号