Files
wehub-resource-sync 6b7e6b44f1
Python Build and Type Check / python-ci (ubuntu-latest, 3.11) (push) Has been cancelled
Python Build and Type Check / python-ci (ubuntu-latest, 3.13) (push) Has been cancelled
Python Build and Type Check / python-ci (windows-latest, 3.11) (push) Has been cancelled
Python Build and Type Check / python-ci (windows-latest, 3.13) (push) Has been cancelled
Python Integration Tests / python-ci (ubuntu-latest, 3.13) (push) Has been cancelled
Python Integration Tests / python-ci (windows-latest, 3.13) (push) Has been cancelled
Python Notebook Tests / python-ci (ubuntu-latest, 3.13) (push) Has been cancelled
Python Notebook Tests / python-ci (windows-latest, 3.13) (push) Has been cancelled
Python Smoke Tests / python-ci (ubuntu-latest, 3.13) (push) Has been cancelled
Python Smoke Tests / python-ci (windows-latest, 3.13) (push) Has been cancelled
Python Unit Tests / python-ci (ubuntu-latest, 3.13) (push) Has been cancelled
Python Unit Tests / python-ci (windows-latest, 3.13) (push) Has been cancelled
gh-pages / build (push) Has been cancelled
Python Publish (pypi) / Upload release to PyPI (push) Has been cancelled
Spellcheck / spellcheck (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:37:31 +08:00

54 lines
1.5 KiB
Python

# Copyright (c) 2024 Microsoft Corporation.
# Licensed under the MIT License
"""Abstract base class for template engines."""
from abc import ABC, abstractmethod
from typing import TYPE_CHECKING, Any
if TYPE_CHECKING:
from graphrag_llm.templating.template_manager import TemplateManager
class TemplateEngine(ABC):
"""Abstract base class for template engines."""
@abstractmethod
def __init__(self, *, template_manager: "TemplateManager", **kwargs: Any) -> None:
"""Initialize the template engine.
Args
----
template_manager: TemplateManager
The template manager to use for loading templates.
"""
raise NotImplementedError
@abstractmethod
def render(self, template_name: str, context: dict[str, Any]) -> str:
"""Render a template with the given context.
Args
----
template_name: str
The name of the template to render.
context: dict[str, str]
The context to use for rendering the template.
Returns
-------
str: The rendered template.
Raises
------
KeyError: If the template is not found or a required key is missing in the context.
"""
raise NotImplementedError
@property
@abstractmethod
def template_manager(self) -> "TemplateManager":
"""Template manager associated with this engine."""
raise NotImplementedError