blob: 0d682a7fe151f20d5fa2aa6e37abbbcf7087f7c5 (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# ------------------------------------
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
# ------------------------------------
# mypy: disable-error-code="union-attr,assignment,arg-type"
from pathlib import Path
from ._core import Prompty
from ._invoker import Invoker, InvokerFactory
from ._mustache import render
@InvokerFactory.register_renderer("mustache")
class MustacheRenderer(Invoker):
"""Render a mustache template."""
def __init__(self, prompty: Prompty) -> None:
super().__init__(prompty)
self.templates = {}
cur_prompt = self.prompty
while cur_prompt:
self.templates[Path(cur_prompt.file).name] = cur_prompt.content
cur_prompt = cur_prompt.basePrompty
self.name = Path(self.prompty.file).name
def invoke(self, data: str) -> str:
generated = render(self.prompty.content, data) # type: ignore
return generated
async def invoke_async(self, data: str) -> str:
return self.invoke(data)
|