Source code for doitoml.loaders

"""Custom loaders for doit tasks."""
from pathlib import Path
from typing import Any, Dict

from doit.cmd_base import DodoTaskLoader

from .doitoml import DoiTOML


[docs] class DoitomlLoader(DodoTaskLoader): """A loader that looks for all known config files.""" doitoml: DoiTOML
[docs] def setup(self, opt_values: Dict[str, Any]) -> None: """Discover tasks in all config files.""" cwd = Path(opt_values["cwdPath"]) if opt_values["cwdPath"] else Path.cwd() self.doitoml = DoiTOML(cwd=opt_values["cwdPath"], discover_config_paths=True) if (cwd / "dodo.py").exists(): super().setup(opt_values) tasks = self.doitoml.tasks() if getattr(self, "namespace", None): self.namespace.update(tasks) # type: ignore else: self.namespace = tasks