2023-08-15 05:42:05 +00:00
|
|
|
"""
|
|
|
|
Jinja2 rendering utils, used to generate new strategy and configurations.
|
|
|
|
"""
|
2023-08-15 05:42:43 +00:00
|
|
|
|
|
|
|
|
2024-04-19 05:24:11 +00:00
|
|
|
from typing import Dict
|
|
|
|
|
|
|
|
|
|
|
|
def render_template(templatefile: str, arguments: Dict) -> str:
|
2023-08-15 05:42:05 +00:00
|
|
|
|
|
|
|
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: dict = {}) -> str:
|
|
|
|
"""
|
|
|
|
Use templatefile if possible, otherwise fall back to templatefallbackfile
|
|
|
|
"""
|
|
|
|
from jinja2.exceptions import TemplateNotFound
|
|
|
|
try:
|
|
|
|
return render_template(templatefile, arguments)
|
|
|
|
except TemplateNotFound:
|
|
|
|
return render_template(templatefallbackfile, arguments)
|