diff --git a/src/anki/config_parser.py b/src/anki/config_parser.py index af14679..90f2aa9 100644 --- a/src/anki/config_parser.py +++ b/src/anki/config_parser.py @@ -9,20 +9,20 @@ class RecursiveConfigParser: targets: set[str] results: dict[str, dict[Path, str]] - def __init__(self, dir, targets): + def __init__(self, dir, targets, recursive=True): self.dir = dir self.targets = set(targets) self.results = defaultdict(dict) - self._parse_recursive() + self._parse_dirs(recursive) - def _parse_recursive(self): + def _parse_dirs(self, recursive=True): files = [] for target in self.targets: - files.extend( - glob( - f"{self.dir}/**/{target}", include_hidden=target.startswith("."), recursive=True - ) - ) + if recursive: + dir = f"{self.dir}/**/{target}" + else: + dir = f"{self.dir}/{target}" + files.extend(glob(dir, include_hidden=target.startswith("."), recursive=recursive)) for file in files: file = Path(file) if file.name in self.targets: diff --git a/src/anki/parser.py b/src/anki/parser.py index 4ccc43b..cf3048a 100644 --- a/src/anki/parser.py +++ b/src/anki/parser.py @@ -126,7 +126,9 @@ class FlashcardParser: f"Parsing flashcards in {scan_dir if single_file is None else single_file} ...", flush=True, ) - configs = RecursiveConfigParser(root_dir, {".anki", ".anki.typ"}) + configs = RecursiveConfigParser( + root_dir, {".anki", ".anki.typ"}, recursive=single_file is None + ) for file in glob(f"{scan_dir}/**/**.typ", recursive=True): file = Path(file)