def search(self, query): out_s = subprocess.check_output(['apt-cache', 'search', query]) r = [] for l in out_s.split('\n'): s = filter(None, l.split(' ')) if len(s) == 0: continue p = PackageInfo() p.name = s[0] p.state = 'i' if p.name in self.all_dict else 'r' p.description = ' '.join(s[2:]) r.append(p) return r
def _parse_dpkg(self, d): r = [] for l in d.split('\n'): s = filter(None, l.split(' ')) if len(s) == 0: continue p = PackageInfo() if s[0][0] == 'i': p.state = 'i' else: continue p.name = s[1] p.version = s[2] p.description = ' '.join(s[3:]) r.append(p) return r
def _parse_all_installed(self, d): r = [] lines = d.splitlines() infos = ['\n'.join(lines[i:i+2]) for i in range(0, len(lines), 2)] for info in infos: s = info.split('\n') if len(s) == 0: continue package = s[0].split(' ') p = PackageInfo() p.state = 'i' p.name = package[0] p.version = package[1] s[1].lstrip().rstrip() p.description = ' '.join(s[1]) r.append(p) return r