#!/usr/bin/env python import re class queue: items = {} class tree_analyser: flags = { 'N': 'new', 'S': 'slotted', 'U': 'updates', 'D': 'downgrades', 'R': 'remerges', 'F': 'fetch', 'f': 'fetched', 'B': 'blocked', } flagcounter = {} categorycounter = {} def __init__(self, data): self.data = data for flag in self.flags: self.flagcounter[flag] = 0 self._parse_data() def _parse_data(self): regex = re.compile('\[(?Pebuild|nomerge|blocks)\s+(?P[NSUDRFfB]+)\s*\](?P +)(?P[^\s]+)\s+(\[(?P[^\]]+)\]\s+)?(USE="(?P[^"]+)"\s+)?(LINGUAS="(?P[^"]+)"\s+)?(?P[0-9,]+)' % self.flags) for line in self.data: match = regex.search(line) if match: # and match.group('category') == 'www-client': for flag in self.flags: if flag in match.group('flag'): self.flagcounter[flag] += 1 print match.groupdict() print self.flagcounter def exit(): __import__('sys').exit(0) tree = tree_analyser(open('list').readlines())