def template_dir(self, template_dir):
        if template_dir is not None:
            if isinstance(template_dir, str):
                template_dir = Path(template_dir)
            if not isinstance(template_dir, Path):
                raise TypeError(f"Expected a string or a pathlib.Path object. "
                                f"Got an object of type {type(template_dir).__name__} instead.")
            if not template_dir.is_dir():
                raise ValueError(f"The directory {template_dir} could not be found.")
        self._template_dir = template_dir