def recursive_file_walk_iterator_with_filepath_filter(root_folder, filt='', return_full_path=True):
    if isinstance(filt, str):
        filt = pattern_filter(filt)
    for name in iter_relative_files_and_folder(root_folder):
        full_path = os.path.join(root_folder, name)
        if os.path.isdir(full_path):
            for entry in recursive_file_walk_iterator_with_filepath_filter(full_path, filt, return_full_path):
                (yield entry)
        elif os.path.isfile(full_path):
            if filt(full_path):
                if return_full_path:
                    (yield full_path)
                else:
                    (yield name)
def recursive_file_walk_iterator_with_filepath_filter(root_folder, filt=, return_full_path=True):
    if isinstance(filt, str):
        filt = pattern_filter(filt)
    for name in iter_relative_files_and_folder(root_folder):
        full_path = os.path.join(root_folder, name)
        if os.path.isdir(full_path):
            for entry in recursive_file_walk_iterator_with_filepath_filter(full_path, filt, return_full_path):
                (yield entry)
        elif os.path.isfile(full_path):
            if filt(full_path):
                if return_full_path:
                    (yield full_path)
                else:
                    (yield name)