def cablefiles_from_directory(directory, predicate=None):
    """\
    Returns a generator which yields absoulte filenames to cable HTML files.
    
    `directory`
        The directory.
    `predicate`
        A predicate that is invoked for each cable filename.
        If the predicate evaluates to ``False`` the file is ignored.
        By default, all files with the file extension ".html" are returned.
        I.e. ``cablefiles_from_directory('./cables/', lambda f: f.startswith('09'))``
        would accept only filenames starting with ``09``. 
    """
    pred = predicate or bool
    for root, dirs, files in os.walk(directory):
        for name in (n for n in files if '.html' in n and pred(n[:-5])):
            yield os.path.join(os.path.abspath(root), name)