Load a SQL fragment by name (without .sql extension)
(self, fragment_name: str)
| 21 | self.logger = logging.getLogger('xtop.fragments') |
| 22 | |
| 23 | def load(self, fragment_name: str) -> str: |
| 24 | """Load a SQL fragment by name (without .sql extension)""" |
| 25 | if fragment_name in self.cache: |
| 26 | return self.cache[fragment_name] |
| 27 | |
| 28 | fragment_file = self.fragments_path / f"{fragment_name}.sql" |
| 29 | if not fragment_file.exists(): |
| 30 | raise FileNotFoundError(f"Fragment not found: {fragment_file}") |
| 31 | |
| 32 | with open(fragment_file, 'r') as f: |
| 33 | content = f.read() |
| 34 | |
| 35 | self.cache[fragment_name] = content |
| 36 | return content |
| 37 | |
| 38 | def clear_cache(self): |
| 39 | """Clear the fragment cache""" |
no outgoing calls
no test coverage detected