Package linda :: Package parser :: Module data
[hide private]

Source Code for Module linda.parser.data

 1  from linda.debug import dprint 
 2  from linda.parser.rfc822parser import RFC822Parser 
 3   
4 -class DataFileParser(RFC822Parser):
5 - def parse(self):
6 self.validate(('Tag:', 'Type:')) 7 output_var = {} 8 for x in self.data: 9 parse_dict = {'tag': '', 'key': '', 'value': ''} 10 for k in x: 11 if k.find(':') != -1: 12 cur_line = k.split(':') 13 parse_dict['key'] = cur_line[0] 14 parse_dict['value'] = cur_line[1][:-1].strip() 15 else: 16 dprint(_("Ignoring unknown line: \"%s\".") % k[:-1], 2) 17 if k.startswith('Tag:'): 18 parse_dict['tag'] = parse_dict['value'] 19 output_var[parse_dict['tag']] = {} 20 dprint(_("Found tag: %s.") % parse_dict['tag'], 4) 21 elif k.startswith('Type:') or k.startswith('Justification:'): 22 dprint(_("Adding %s: %s to %s") % (parse_dict['key'], \ 23 parse_dict['value'], parse_dict['tag']), 4) 24 output_var[parse_dict['tag']][parse_dict['key']] = \ 25 parse_dict['value'] 26 elif k.startswith('#'): 27 continue 28 else: 29 dprint(_("Unknown key: %s.") % parse_dict['key'], 2) 30 dprint(_("Data file (%s): %s") % (self.file, output_var), 3) 31 self.data = output_var
32