Example #1
0
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
Example #2
0
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:]):