All pastes #227753 Raw Edit

Miscellany

public python v1 · immutable
#227753 ·published 2006-10-29 15:17 UTC
rendered paste body
#!/usr/bin/env pythonimport reclass 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('\[(?P<action>ebuild|nomerge|blocks)\s+(?P<flag>[NSUDRFfB]+)\s*\](?P<indent> +)(?P<package>[^\s]+)\s+(\[(?P<oldversion>[^\]]+)\]\s+)?(USE="(?P<use>[^"]+)"\s+)?(LINGUAS="(?P<linguas>[^"]+)"\s+)?(?P<size>[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.flagcounterdef exit(): __import__('sys').exit(0)tree = tree_analyser(open('list').readlines())