def repeatingfieldsnames(fields): """get the names of the repeating fields""" fnames = [field['field'][0] for field in fields] fnames = [bunchhelpers.onlylegalchar(fname) for fname in fnames] fnames = [fname for fname in fnames if bunchhelpers.intinlist(fname.split())] fnames = [(bunchhelpers.replaceint(fname), None) for fname in fnames] dct = dict(fnames) repnames = fnames[:len(dct.keys())] return repnames
key_txt = 'SCHEDULE:DAY:LIST' print key_txt key_i = dtls.index(key_txt.upper()) comm = commdct[key_i] # get all fields fields = [] for field in comm: if field.has_key('field'): fields.append(field) # get repeating field names fnames = [field['field'][0] for field in fields] fnames = [fname for fname in fnames if bunchhelpers.intinlist(fname.split())] fnames = [(bunchhelpers.replaceint(fname), None) for fname in fnames] dct = dict(fnames) repnames = fnames[:len(dct.keys())] first = repnames[0][0] % (1, ) # get all comments of the first repeating field names firstnames = [repname[0] % (1, ) for repname in repnames] fcomments = [field for field in fields if field['field'][0] in firstnames] fcomments = [dict(fcomment) for fcomment in fcomments] for cm in fcomments: fld = cm['field'][0] fld = bunchhelpers.replaceint(fld) cm['field'] = [fld] for i, cm in enumerate(comm[1:]):