Source code for projectreport.finder.combine

import os
from typing import Sequence

from projectreport.finder.base import Finder


[docs]class CombinedFinder(Finder): """ Finder which can be passed other specific finders, and will return project paths that match any of the passed finders. """
[docs] def __init__(self, finders: Sequence[Finder], recursive: bool = True): self.finders = finders super().__init__(recursive=recursive) self.file_extensions = [] for finder in self.finders: if finder.file_extensions: self.file_extensions.extend(finder.file_extensions)
[docs] def is_valid(self, path: str): is_valid = False for finder in self.finders: if finder.is_valid(path): is_valid = True return is_valid