fast iterator of playable file object/dicts found on disk

def iterplayables():
    ''' fast iterator of playable file object/dicts found on disk '''
    ls = DirScanner(stripdot=True)
    ## filter out just mp3 files (and dirs to support recursion)
    filt = lambda x: ( os.path.isdir(x) or x[-4:].lower() in ALLOWED_TYPES )
    ## take the last two segments of the path as the label
    func = lambda x: '/'.join(x.split('/')[-2:])
    ## iterate over all the files (excluding dirs), filtering for .mp3 and .m4a
    for x,y in ls.iteritems(want_files=True, want_dirs=False, func=func, filt=filt):
        yield {      'name': x.decode('utf-8'),
                'file_name': escape_utf8(y)     }