diff options
| author | crupest <crupest@outlook.com> | 2024-11-11 01:12:29 +0800 | 
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-01-18 17:38:07 +0800 | 
| commit | 41f735ed9ddc9d96d27f7e1f2a6ca34af9cce9d9 (patch) | |
| tree | ae0e509d11b974b6fda8fbef985f1e538913e6fd /tools/cru-py/cru/template.py | |
| parent | c0ba4d9d8d19d3faa7b4d2b3509546e37dd32364 (diff) | |
| download | crupest-41f735ed9ddc9d96d27f7e1f2a6ca34af9cce9d9.tar.gz crupest-41f735ed9ddc9d96d27f7e1f2a6ca34af9cce9d9.tar.bz2 crupest-41f735ed9ddc9d96d27f7e1f2a6ca34af9cce9d9.zip  | |
HALF WORK: 2024.1.18
Diffstat (limited to 'tools/cru-py/cru/template.py')
| -rw-r--r-- | tools/cru-py/cru/template.py | 16 | 
1 files changed, 9 insertions, 7 deletions
diff --git a/tools/cru-py/cru/template.py b/tools/cru-py/cru/template.py index a07ca23..6e2cf24 100644 --- a/tools/cru-py/cru/template.py +++ b/tools/cru-py/cru/template.py @@ -4,6 +4,8 @@ import os.path  from pathlib import Path  from string import Template +from cru._path import CruPath +  from ._iter import CruIterator  from ._error import CruException @@ -77,7 +79,7 @@ class TemplateTree:          wrongly handled.          """          self._prefix = prefix -        self._files: list[tuple[str, CruTemplate]] = [] +        self._files: list[tuple[CruPath, CruTemplate]] = []          self._source = source          self._template_file_suffix = template_file_suffix          self._load() @@ -87,7 +89,7 @@ class TemplateTree:          return self._prefix      @property -    def templates(self) -> list[tuple[str, CruTemplate]]: +    def templates(self) -> list[tuple[CruPath, CruTemplate]]:          return self._files      @property @@ -99,24 +101,24 @@ class TemplateTree:          return self._template_file_suffix      @staticmethod -    def _scan_files(root_path: str) -> list[str]: -        result: list[str] = [] +    def _scan_files(root_path: str) -> list[CruPath]: +        result: list[CruPath] = []          for root, _dirs, files in os.walk(root_path):              for file in files:                  path = Path(root, file)                  path = path.relative_to(root_path) -                result.append(str(path.as_posix())) +                result.append(CruPath(path))          return result      def _load(self) -> None:          files = self._scan_files(self.source)          for file_path in files: -            template_file = os.path.join(self.source, file_path) +            template_file = Path(self.source) / file_path              with open(template_file, "r") as f:                  content = f.read()              template = CruTemplate(self.prefix, content)              if self.template_file_suffix is not None: -                should_be_template = file_path.endswith(self.template_file_suffix) +                should_be_template = file_path.name.endswith(self.template_file_suffix)                  if should_be_template and not template.has_variables:                      raise CruTemplateError(                          f"Template file {file_path} has no variables."  | 
