def list(self) -> Iterable[protocol.AppInfo]: appinfos = [] allpinned = self._get_pinned() for ext in self.shell.extensions.list_extensions(): for app in ext.list_apps(): appid = f"{ext.id}.{app.name}" appinfo = protocol.AppInfo( id=appid, app=app, extension=ext, pinned=appid in allpinned, ) appinfos.append(appinfo) appinfos = sorted(appinfos, key=lambda v: (-v.app.priority, v.extension.id)) return appinfos
def stub_add_app( self, id: str, app: protocol.App, ext: protocol.Extension, pinned: bool = False ) -> None: self._app_infos.append(protocol.AppInfo(id, app, ext, pinned))