def _parse_tagfile(filename, function): pdict = {} if filename[-3:] == '.gz': tagfile = gunzip(filename) elif filename[-4:] == '.bz2': tagfile = bunzip(filename) else: tagfile = file(filename) parser = TagFile(tagfile) while parser.Step(): k, v = function(parser.Section) pdict[k] = v return pdict