예제 #1
0
def _filter_files(files: Iterable[Path],
                  cumulative_data: CumulativeData) -> Iterable[Path]:
    filters = (
        LabelFilter("TARGET", cumulative_data.labels),
        LabelFilter("FEATURE", cumulative_data.features),
        LabelFilter("COMPONENT", cumulative_data.components),
    )
    return filter_files(files, filters)
예제 #2
0
def _filter_files(files: Iterable[Path],
                  filter_data: FileFilterData) -> Iterable[Path]:
    filters = (
        LabelFilter("TARGET", filter_data.labels),
        LabelFilter("FEATURE", filter_data.features),
        LabelFilter("COMPONENT", filter_data.components),
        RequiresFilter(filter_data.requires),
    )
    return filter_files(files, filters)
예제 #3
0
def _filter_files(files: Iterable[Path], labels: Iterable[str],
                  features: Iterable[str],
                  components: Iterable[str]) -> Iterable[Path]:
    filters = (
        LabelFilter("TARGET", labels),
        LabelFilter("FEATURE", features),
        LabelFilter("COMPONENT", components),
    )
    return filter_files(files, filters)
예제 #4
0
    def test_respects_given_filters(self):
        matching_paths = [
            Path("foo", "file.txt"),
            Path("hello", "world", "file.txt"),
        ]
        excluded_paths = [
            Path("bar", "file.txt"),
            Path("foo", "foo-bar", "file.txt"),
        ]

        def my_filter(path):
            return "bar" not in str(path)

        subject = filter_files((matching_paths + excluded_paths), [my_filter])

        self.assertEqual(len(subject), len(matching_paths))
        for path in matching_paths:
            self.assertIn(path, subject)
예제 #5
0
def _filter_files(
    files: Iterable[Path],
    labels: Iterable[str],
    features: Iterable[str],
    components: Iterable[str],
    requires: Iterable[str],
) -> Iterable[Path]:
    filters = (
        LabelFilter("TARGET", labels),
        LabelFilter("FEATURE", features),
        LabelFilter("COMPONENT", components),
    )
    filtered_files = filter_files(files, filters)

    if not requires:
        return filtered_files
    else:
        requires_filter = RequiresFilter(requires)
        return requires_filter(filtered_files)