controller.py 文件源码

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

项目:kytos 作者: kytos 项目源码 文件源码
def load_napp(self, username, napp_name):
        """Load a single app.

        Load a single NAPP based on its name.

        Args:
            username (str): NApp username present in napp's path.
            napp_name (str): Name of the NApp to be loaded.

        Raises:
            FileNotFoundError: if napps' main.py is not found.

        """
        if (username, napp_name) in self.napps:
            message = 'NApp %s/%s was already loaded'
            self.log.warning(message, username, napp_name)
        else:
            mod_name = '.'.join(['napps', username, napp_name, 'main'])
            path = os.path.join(self.options.napps, username, napp_name,
                                'main.py')
            napp_spec = spec_from_file_location(mod_name, path)
            napp_module = module_from_spec(napp_spec)
            sys.modules[napp_spec.name] = napp_module
            napp_spec.loader.exec_module(napp_module)
            napp = napp_module.Main(controller=self)

            self.napps[(username, napp_name)] = napp

            # This start method is inherited from the Threading class.
            # It is not directly defined/declared on the KytosNApp class.
            napp.start()
            self.api_server.register_napp_endpoints(napp)

            # pylint: disable=protected-access
            for event, listeners in napp._listeners.items():
                self.events_listeners.setdefault(event, []).extend(listeners)
            # pylint: enable=protected-access
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号