freqtrade_origin/freqtrade/util/template_renderer.py
2024-05-13 07:10:25 +02:00

33 lines
962 B
Python

"""
Jinja2 rendering utils, used to generate new strategy and configurations.
"""
from typing import Dict, Optional
def render_template(templatefile: str, arguments: Dict) -> str:
from jinja2 import Environment, PackageLoader, select_autoescape
env = Environment(
loader=PackageLoader("freqtrade", "templates"),
autoescape=select_autoescape(["html", "xml"]),
)
template = env.get_template(templatefile)
return template.render(**arguments)
def render_template_with_fallback(
templatefile: str, templatefallbackfile: str, arguments: Optional[Dict] = None
) -> str:
"""
Use templatefile if possible, otherwise fall back to templatefallbackfile
"""
from jinja2.exceptions import TemplateNotFound
if arguments is None:
arguments = {}
try:
return render_template(templatefile, arguments)
except TemplateNotFound:
return render_template(templatefallbackfile, arguments)